2
0
Эх сурвалжийг харах

clear

clear lines, and dont try to print lines when there is no file.
marauder2k7 1 жил өмнө
parent
commit
8140ed9b64

+ 9 - 6
Engine/source/console/torquescript/CMDgram.y

@@ -645,15 +645,18 @@ yyreport_syntax_error (const yypcontext_t *ctx)
          output += String::ToString("%s %s", i == 0 ? ": expected" : "or", yysymbol_name(expected[i]));
    }
 
-   if (lines.size() > 0) 
+   if(CMDGetCurrentFile())
    {
-      output += "\n";
-      for (int i = 0; i < lines.size(); i++)
+      if (lines.size() > 0) 
       {
-         int line = lines.size() - i;
-         output += String::ToString("%5d | ", loc->first_line - (line-1)) + lines[i] + "\n";
+         output += "\n";
+         for (int i = 0; i < lines.size(); i++)
+         {
+            int line = lines.size() - i;
+            output += String::ToString("%5d | ", loc->first_line - (line-1)) + lines[i] + "\n";
+         }
+         output += String::ToString("%5s | %*s", "", loc->first_column, "^");
       }
-      output += String::ToString("%5s | %*s", "", loc->first_column, "^");
    }
 
    yyerror(output.c_str());

+ 1 - 0
Engine/source/console/torquescript/CMDscan.cpp

@@ -2742,6 +2742,7 @@ void CMDSetScanBuffer(const char *sb, const char *fn)
    fileName = fn;
    scanIndex = 0;
    yylineno = 1;
+   lines.clear();
 }
 
 int CMDgetc()

+ 1 - 0
Engine/source/console/torquescript/CMDscan.l

@@ -292,6 +292,7 @@ void CMDSetScanBuffer(const char *sb, const char *fn)
    fileName = fn;
    scanIndex = 0;
    yylineno = 1;
+   lines.clear();
 }
 
 int CMDgetc()

+ 9 - 6
Engine/source/console/torquescript/cmdgram.cpp

@@ -3352,15 +3352,18 @@ yyreport_syntax_error (const yypcontext_t *ctx)
          output += String::ToString("%s %s", i == 0 ? ": expected" : "or", yysymbol_name(expected[i]));
    }
 
-   if (lines.size() > 0) 
+   if(CMDGetCurrentFile())
    {
-      output += "\n";
-      for (int i = 0; i < lines.size(); i++)
+      if (lines.size() > 0) 
       {
-         int line = lines.size() - i;
-         output += String::ToString("%5d | ", loc->first_line - (line-1)) + lines[i] + "\n";
+         output += "\n";
+         for (int i = 0; i < lines.size(); i++)
+         {
+            int line = lines.size() - i;
+            output += String::ToString("%5d | ", loc->first_line - (line-1)) + lines[i] + "\n";
+         }
+         output += String::ToString("%5s | %*s", "", loc->first_column, "^");
       }
-      output += String::ToString("%5s | %*s", "", loc->first_column, "^");
    }
 
    yyerror(output.c_str());