ref: 03bb5105883c997471a3d6b37600eb2ad4ae1a6f
parent: 695dfe9dbd34ddf7d5541450bce41c6e67dd0fd8
author: Rangi <[email protected]>
date: Sun Jul 4 14:31:46 EDT 2021
`endCapture` shouldn't handle `lexerState->atLineStart` `startCapture` did not initialize `lexerState->atLineStart`; its final value is a consequence of the separate but similar behaviors within `lexer_CaptureRept` and `lexer_CaptureMacroBody`.
--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -2431,7 +2431,6 @@
lexerState->captureBuf = NULL;
lexerState->disableMacroArgs = false;
lexerState->disableInterpolation = false;
- lexerState->atLineStart = false;
}
bool lexer_CaptureRept(struct CaptureBody *capture)
@@ -2490,6 +2489,8 @@
finish:
endCapture(capture);
+ /* ENDR or EOF puts us past the start of the line */
+ lexerState->atLineStart = false;
/* Returns true if an ENDR terminated the block, false if it reached EOF first */
return c != EOF;
@@ -2545,6 +2546,8 @@
finish:
endCapture(capture);
+ /* ENDM or EOF puts us past the start of the line */
+ lexerState->atLineStart = false;
/* Returns true if an ENDM terminated the block, false if it reached EOF first */
return c != EOF;