Report only one error when invalid shift has argument

Not to mention that incrementing a variable in a loop is kinda dumb.
This commit is contained in:
Jakub Kądziołka
2020-10-12 03:32:49 +02:00
parent 0836f67d42
commit 045a9e8b93
5 changed files with 13 additions and 12 deletions

View File

@@ -128,12 +128,15 @@ uint32_t macro_UseNewUniqueID(void)
return maxUniqueID;
}
void macro_ShiftCurrentArgs(void)
void macro_ShiftCurrentArgs(int32_t count)
{
if (!macroArgs)
error("Cannot shift macro arguments outside of a macro\n");
else if (macroArgs->shift != macroArgs->nbArgs)
macroArgs->shift++;
else if (macroArgs->shift < macroArgs->nbArgs) {
macroArgs->shift += count;
if (macroArgs->shift > macroArgs->nbArgs)
macroArgs->shift = macroArgs->nbArgs;
}
}
uint32_t macro_NbArgs(void)