shithub: rgbds

Download patch

ref: 38110a833d66bc4560e7cb864e11105a52cf974f
parent: 3cd1d46a1bf66df5fafe04dde885cc6f3dfcdb28
author: jidoc01 <jidoc01@naver.com>
date: Thu Jul 4 07:59:13 EDT 2019

Fix comment bug

There is a bug in processing the comments in source files. It's
related to #326. And this bug comes out when you comment something
with the character ';', and include the quotation mark without its
pair in it.

The lastest version of rgbds compiler has a step to parse the given
source to convert its line endings to a unified one, and it
processes quotation marks even before it processes the comments.

I edited a little bit of the source, and it works fine now.

--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -181,16 +181,10 @@
 	/* Convert all line endings to LF and spaces */
 
 	char *mem = pBuffer->pBuffer;
-	uint32_t instring = 0;
 
 	while (*mem) {
-		if (*mem == '\"')
-			instring = 1 - instring;
-
 		if ((mem[0] == '\\') && (mem[1] == '\"' || mem[1] == '\\')) {
 			mem += 2;
-		} else if (instring) {
-			mem += 1;
 		} else {
 			/* LF CR and CR LF */
 			if (((mem[0] == 10) && (mem[1] == 13))
@@ -211,7 +205,7 @@
 	/* Remove comments */
 
 	mem = pBuffer->pBuffer;
-	instring = 0;
+	uint32_t instring = 0;
 
 	while (*mem) {
 		if (*mem == '\"')