A trailing comma in a macro call is an empty argument

which should also be counted for the purposes of .NARG.
This commit is contained in:
Olaf Seibert
2015-05-19 22:10:44 +02:00
parent 2488e02aae
commit b45cf742f7
3 changed files with 23 additions and 2 deletions

15
parse.c
View File

@@ -35,6 +35,21 @@ char *skipdelim(
return cp;
}
/* skipdelim_comma - used to advance between tokens. Whitespace
and one comma are allowed delims.
Set *comma depending on whether a comma was skipped. */
char *skipdelim_comma(
char *cp,
int *comma)
{
cp = skipwhite(cp);
if (*comma = (*cp == ',')) {
cp = skipwhite(cp + 1);
}
return cp;
}
/* Parses a string from the input stream. */
/* If not bracketed by <...> or ^/.../, then */
/* the string is delimited by trailing comma or whitespace. */