Quellcode durchsuchen

Add a better management when we encounter a ']' that is not the real termination.

mingodad vor 13 Jahren
Ursprung
Commit
40d62ed700
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      squirrel/sqlexer.cpp

+ 4 - 1
squirrel/sqlexer.cpp

@@ -382,6 +382,7 @@ SQInteger SQLexer::ReadString(SQInteger ndelim,bool verbatim)
 		}
 		}
 		NEXT();
 		NEXT();
 		if(start_equals){
 		if(start_equals){
+		    bool lastBraceAdded = false;
 		    if(CUR_CHAR == _SC('=')){
 		    if(CUR_CHAR == _SC('=')){
                 SQInteger end_equals = start_equals;
                 SQInteger end_equals = start_equals;
                 NEXT();
                 NEXT();
@@ -396,9 +397,11 @@ SQInteger SQLexer::ReadString(SQInteger ndelim,bool verbatim)
                     NEXT();
                     NEXT();
                     break;
                     break;
                 }
                 }
+                APPEND_CHAR(_SC(']')); //the first NEXT() after break the while loop
                 APPEND_CHAR(_SC('='));
                 APPEND_CHAR(_SC('='));
+                lastBraceAdded = true;
 		    }
 		    }
-		    APPEND_CHAR(_SC(']')); //the first NEXT() after brek the while loop
+		    if(!lastBraceAdded) APPEND_CHAR(_SC(']')); //the first NEXT() after break the while loop
 		    APPEND_CHAR(CUR_CHAR);
 		    APPEND_CHAR(CUR_CHAR);
 		    NEXT();
 		    NEXT();
 		}
 		}