From b0eb5f85ff826bb0bab715c9a0f87821671e8a82 Mon Sep 17 00:00:00 2001 From: divverent Date: Tue, 29 Jul 2008 09:48:43 +0000 Subject: [PATCH] fix font parsing so adding more properties in the future will make them ignored, not do stupid things git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8430 d7cf8633-e32d-0410-b094-e92efae38249 --- gl_draw.c | 48 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/gl_draw.c b/gl_draw.c index 6bb31b20..655b31f4 100644 --- a/gl_draw.c +++ b/gl_draw.c @@ -638,20 +638,44 @@ static void LoadFont(qboolean override, const char *name, dp_font_t *fnt) if(!COM_ParseToken_Simple(&p, false, false)) return; - if(!strcmp(com_token, "extraspacing")) + switch(*com_token) { - if(!COM_ParseToken_Simple(&p, false, false)) - return; - extraspacing = atof(com_token); + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '+': + case '-': + case '.': + fnt->width_of[ch++] = atof(com_token) + extraspacing; + break; + default: + if(!strcmp(com_token, "extraspacing")) + { + if(!COM_ParseToken_Simple(&p, false, false)) + return; + extraspacing = atof(com_token); + } + else if(!strcmp(com_token, "scale")) + { + if(!COM_ParseToken_Simple(&p, false, false)) + return; + scale = atof(com_token); + } + else + { + Con_Printf("Warning: skipped unknown font property %s\n", com_token); + if(!COM_ParseToken_Simple(&p, false, false)) + return; + } + break; } - else if(!strcmp(com_token, "scale")) - { - if(!COM_ParseToken_Simple(&p, false, false)) - return; - scale = atof(com_token); - } - else - fnt->width_of[ch++] = atof(com_token) + extraspacing; } Mem_Free(widthbuf); -- 2.39.2