Prechádzať zdrojové kódy

Fix handling escaped escape_chars

mingodad 10 rokov pred
rodič
commit
ce737701ff
1 zmenil súbory, kde vykonal 7 pridanie a 1 odobranie
  1. 7 1
      SquiLu/squirrel/sqbaselib.cpp

+ 7 - 1
SquiLu/squirrel/sqbaselib.cpp

@@ -1522,7 +1522,13 @@ static SQRESULT string_find_delimiter(HSQUIRRELVM v) {
 
 
     for(; init < src_size; ++init) {
     for(; init < src_size; ++init) {
         if(src[init] == delimiter){
         if(src[init] == delimiter){
-             if(src[init-1] == escape_char) ++init; //skip quoted quote
+             if(src[init-1] == escape_char)
+             {
+                 const char *p = (src+ (init-1));
+                 int i = 0;
+                 for(; *p-- == escape_char; ++i);
+                 if(!(i % 2)) break; //non escaped escaped_char
+             }
              else break;
              else break;
         }
         }
     }
     }