From 8140ed9b64ae822811cb821c0bd1e48ea5f94389 Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Fri, 7 Jun 2024 20:13:56 +0100 Subject: [PATCH] clear clear lines, and dont try to print lines when there is no file. --- Engine/source/console/torquescript/CMDgram.y | 15 +++++++++------ Engine/source/console/torquescript/CMDscan.cpp | 1 + Engine/source/console/torquescript/CMDscan.l | 1 + Engine/source/console/torquescript/cmdgram.cpp | 15 +++++++++------ 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Engine/source/console/torquescript/CMDgram.y b/Engine/source/console/torquescript/CMDgram.y index 1e118ae1b..8aea2b470 100644 --- a/Engine/source/console/torquescript/CMDgram.y +++ b/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()); diff --git a/Engine/source/console/torquescript/CMDscan.cpp b/Engine/source/console/torquescript/CMDscan.cpp index 5ca6ca7d9..36baa2099 100644 --- a/Engine/source/console/torquescript/CMDscan.cpp +++ b/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() diff --git a/Engine/source/console/torquescript/CMDscan.l b/Engine/source/console/torquescript/CMDscan.l index d6a03186a..751f92936 100644 --- a/Engine/source/console/torquescript/CMDscan.l +++ b/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() diff --git a/Engine/source/console/torquescript/cmdgram.cpp b/Engine/source/console/torquescript/cmdgram.cpp index 8b7d536c6..52161e92b 100644 --- a/Engine/source/console/torquescript/cmdgram.cpp +++ b/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());