version 1.10, 2015/07/24 06:36:42 |
version 1.11, 2015/07/28 21:36:03 |
|
|
errx(1, "can't allocate args"); |
errx(1, "can't allocate args"); |
} | argslist TSTRING { |
} | argslist TSTRING { |
int nargs = arraylen($1.cmdargs); |
int nargs = arraylen($1.cmdargs); |
if (!($$.cmdargs = reallocarray($1.cmdargs, nargs + 2, sizeof(char *)))) |
if (!($$.cmdargs = reallocarray($1.cmdargs, nargs + 2, |
|
sizeof(char *)))) |
errx(1, "can't allocate args"); |
errx(1, "can't allocate args"); |
$$.cmdargs[nargs] = $2.str; |
$$.cmdargs[nargs] = $2.str; |
$$.cmdargs[nargs + 1] = NULL; |
$$.cmdargs[nargs + 1] = NULL; |
|
|
for (;; c = getc(yyfp), yylval.colno++) { |
for (;; c = getc(yyfp), yylval.colno++) { |
switch (c) { |
switch (c) { |
case '\0': |
case '\0': |
yyerror("unallowed character NUL in column %d", yylval.colno + 1); |
yyerror("unallowed character NUL in column %d", |
|
yylval.colno + 1); |
escape = 0; |
escape = 0; |
continue; |
continue; |
case '\\': |
case '\\': |
|
|
ungetc(c, yyfp); |
ungetc(c, yyfp); |
if (p == buf) { |
if (p == buf) { |
/* |
/* |
* There could be a number of reasons for empty buffer, and we handle |
* There could be a number of reasons for empty buffer, |
* all of them here, to avoid cluttering the main loop. |
* and we handle all of them here, to avoid cluttering |
|
* the main loop. |
*/ |
*/ |
if (c == EOF) |
if (c == EOF) |
return 0; |
return 0; |