summaryrefslogtreecommitdiffstats
path: root/source/compiler/aslerror.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler/aslerror.c')
-rw-r--r--source/compiler/aslerror.c47
1 files changed, 33 insertions, 14 deletions
diff --git a/source/compiler/aslerror.c b/source/compiler/aslerror.c
index e00f5e4..c125dfc 100644
--- a/source/compiler/aslerror.c
+++ b/source/compiler/aslerror.c
@@ -183,6 +183,7 @@ AePrintException (
FILE *SourceFile = NULL;
long FileSize;
BOOLEAN PrematureEOF = FALSE;
+ UINT32 Total = 0;
if (Gbl_NoErrors)
@@ -300,11 +301,21 @@ AePrintException (
"[*** iASL: Read error on source code temp file %s ***]",
Gbl_Files[ASL_FILE_SOURCE_OUTPUT].Filename);
}
-
- else while (RActual && SourceByte && (SourceByte != '\n'))
+ else
{
- fwrite (&SourceByte, 1, 1, OutputFile);
- RActual = fread (&SourceByte, 1, 1, SourceFile);
+ while (RActual && SourceByte && (SourceByte != '\n') && (Total < 256))
+ {
+ fwrite (&SourceByte, 1, 1, OutputFile);
+ RActual = fread (&SourceByte, 1, 1, SourceFile);
+ Total++;
+ }
+
+ if (Total >= 256)
+ {
+ fprintf (OutputFile,
+ "\n[*** iASL: Long input line, an error occurred at column %u ***]",
+ Enode->Column);
+ }
}
}
}
@@ -381,20 +392,28 @@ AePrintException (
if (Gbl_VerboseErrors && !PrematureEOF)
{
- SourceColumn = Enode->Column + Enode->FilenameLength + 6 + 2;
- ErrorColumn = ASL_ERROR_LEVEL_LENGTH + 5 + 2 + 1;
-
- if ((MsgLength + ErrorColumn) < (SourceColumn - 1))
+ if (Total >= 256)
{
- fprintf (OutputFile, "%*s%s",
- (int) ((SourceColumn - 1) - ErrorColumn),
- MainMessage, " ^ ");
+ fprintf (OutputFile, " %s",
+ MainMessage);
}
else
{
- fprintf (OutputFile, "%*s %s",
- (int) ((SourceColumn - ErrorColumn) + 1), "^",
- MainMessage);
+ SourceColumn = Enode->Column + Enode->FilenameLength + 6 + 2;
+ ErrorColumn = ASL_ERROR_LEVEL_LENGTH + 5 + 2 + 1;
+
+ if ((MsgLength + ErrorColumn) < (SourceColumn - 1))
+ {
+ fprintf (OutputFile, "%*s%s",
+ (int) ((SourceColumn - 1) - ErrorColumn),
+ MainMessage, " ^ ");
+ }
+ else
+ {
+ fprintf (OutputFile, "%*s %s",
+ (int) ((SourceColumn - ErrorColumn) + 1), "^",
+ MainMessage);
+ }
}
}
else
OpenPOWER on IntegriCloud