diff options
author | Zack Middleton <zturtleman@gmail.com> | 2014-08-28 20:34:05 -0500 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2015-03-17 11:38:06 +0000 |
commit | c09c6055cdd16affd85564d0d8184e2cd8d35d25 (patch) | |
tree | 141532a081cecdda80a7fa1bc20d3b0977195a35 /src | |
parent | 3c0e84cb40fbef18c79185e75b2917b8bce6e8e2 (diff) |
Port COM_ParseExt fixes to CommaParse
Diffstat (limited to 'src')
-rw-r--r-- | src/renderergl1/tr_image.c | 14 | ||||
-rw-r--r-- | src/renderergl2/tr_image.c | 14 |
2 files changed, 12 insertions, 16 deletions
diff --git a/src/renderergl1/tr_image.c b/src/renderergl1/tr_image.c index bf547ce8..d043b80d 100644 --- a/src/renderergl1/tr_image.c +++ b/src/renderergl1/tr_image.c @@ -1444,12 +1444,15 @@ static char *CommaParse( char **data_p ) { // skip double slash comments if ( c == '/' && data[1] == '/' ) { - while (*data && *data != '\n') + data += 2; + while (*data && *data != '\n') { data++; + } } // skip /* */ comments else if ( c=='/' && data[1] == '*' ) { + data += 2; while ( *data && ( *data != '*' || data[1] != '/' ) ) { data++; @@ -1482,7 +1485,7 @@ static char *CommaParse( char **data_p ) { *data_p = ( char * ) data; return com_token; } - if (len < MAX_TOKEN_CHARS) + if (len < MAX_TOKEN_CHARS - 1) { com_token[len] = c; len++; @@ -1493,7 +1496,7 @@ static char *CommaParse( char **data_p ) { // parse a regular word do { - if (len < MAX_TOKEN_CHARS) + if (len < MAX_TOKEN_CHARS - 1) { com_token[len] = c; len++; @@ -1502,11 +1505,6 @@ static char *CommaParse( char **data_p ) { c = *data; } while (c>32 && c != ',' ); - if (len == MAX_TOKEN_CHARS) - { -// ri.Printf (PRINT_DEVELOPER, "Token exceeded %i chars, discarded.\n", MAX_TOKEN_CHARS); - len = 0; - } com_token[len] = 0; *data_p = ( char * ) data; diff --git a/src/renderergl2/tr_image.c b/src/renderergl2/tr_image.c index 060eb1c4..d4ccb170 100644 --- a/src/renderergl2/tr_image.c +++ b/src/renderergl2/tr_image.c @@ -3008,12 +3008,15 @@ static char *CommaParse( char **data_p ) { // skip double slash comments if ( c == '/' && data[1] == '/' ) { - while (*data && *data != '\n') + data += 2; + while (*data && *data != '\n') { data++; + } } // skip /* */ comments else if ( c=='/' && data[1] == '*' ) { + data += 2; while ( *data && ( *data != '*' || data[1] != '/' ) ) { data++; @@ -3046,7 +3049,7 @@ static char *CommaParse( char **data_p ) { *data_p = ( char * ) data; return com_token; } - if (len < MAX_TOKEN_CHARS) + if (len < MAX_TOKEN_CHARS - 1) { com_token[len] = c; len++; @@ -3057,7 +3060,7 @@ static char *CommaParse( char **data_p ) { // parse a regular word do { - if (len < MAX_TOKEN_CHARS) + if (len < MAX_TOKEN_CHARS - 1) { com_token[len] = c; len++; @@ -3066,11 +3069,6 @@ static char *CommaParse( char **data_p ) { c = *data; } while (c>32 && c != ',' ); - if (len == MAX_TOKEN_CHARS) - { -// ri.Printf (PRINT_DEVELOPER, "Token exceeded %i chars, discarded.\n", MAX_TOKEN_CHARS); - len = 0; - } com_token[len] = 0; *data_p = ( char * ) data; |