ref: 1f579deaffe0d3d1035d46ac3bb2cbbf0002c9a4
parent: fad48326f833b7b282d76d1b79f0dc3b3ecc8d04
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Wed Feb 17 13:28:45 EST 2021
Trim right whitespace from macro args before warning about length
--- a/src/asm/lexer.c
+++ b/src/asm/lexer.c
@@ -2118,7 +2118,7 @@
/* This is essentially a modified `appendStringLiteral` */
size_t i = 0;
- /* Trim left of string... */
+ /* Trim left whitespace (stops at a block comment or line continuation) */
while (isWhitespace(peek(0)))
shiftChars(1);
@@ -2139,13 +2139,13 @@
case '\r':
case '\n':
case EOF:
+ /* Trim right whitespace */
+ while (i && isWhitespace(yylval.tzString[i - 1]))
+ i--;
if (i == sizeof(yylval.tzString)) {
i--;
warning(WARNING_LONG_STR, "Macro argument too long\n");
}
- /* Trim whitespace */
- while (i && isWhitespace(yylval.tzString[i - 1]))
- i--;
/* Empty macro args break their expansion, so prevent that */
if (i == 0) {
// If at EOF, don't shift a non-existent char.