From f454aeaa8376d36e373eab69b877b67e8f9a661d Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Sun, 2 Jun 2013 21:21:45 -0500 Subject: Fix setting COM_Parse current line number Fix initial off-by-one error. Count lines in /* */ comments and multi-line strings. Fix counting some lines twice if text has Unix newlines. --- src/qcommon/q_shared.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/qcommon') diff --git a/src/qcommon/q_shared.c b/src/qcommon/q_shared.c index 897bdae4..9cea9bda 100644 --- a/src/qcommon/q_shared.c +++ b/src/qcommon/q_shared.c @@ -290,7 +290,7 @@ static int com_lines; void COM_BeginParseSession( const char *name ) { - com_lines = 0; + com_lines = 1; Com_sprintf(com_parsename, sizeof(com_parsename), "%s", name); } @@ -474,6 +474,10 @@ char *COM_ParseExt( char **data_p, qboolean allowLineBreaks ) data += 2; while ( *data && ( *data != '*' || data[1] != '/' ) ) { + if ( *data == '\n' ) + { + com_lines++; + } data++; } if ( *data ) @@ -500,6 +504,10 @@ char *COM_ParseExt( char **data_p, qboolean allowLineBreaks ) *data_p = ( char * ) data; return com_token; } + if ( c == '\n' ) + { + com_lines++; + } if (len < MAX_TOKEN_CHARS - 1) { com_token[len] = c; @@ -518,8 +526,6 @@ char *COM_ParseExt( char **data_p, qboolean allowLineBreaks ) } data++; c = *data; - if ( c == '\n' ) - com_lines++; } while (c>32); com_token[len] = 0; -- cgit