if (command) {
vec_pop(command);
while (vec_size(command)) {
- lex_ungetch(lex, vec_last(command));
+ lex_ungetch(lex, (unsigned char)vec_last(command));
vec_pop(command);
}
vec_free(command);
if (command) {
vec_pop(command);
while (vec_size(command)) {
- lex_ungetch(lex, vec_last(command));
+ lex_ungetch(lex, (unsigned char)vec_last(command));
vec_pop(command);
}
vec_free(command);
if (pragma) {
vec_pop(pragma);
while (vec_size(pragma)) {
- lex_ungetch(lex, vec_last(pragma));
+ lex_ungetch(lex, (unsigned char)vec_last(pragma));
vec_pop(pragma);
}
vec_free(pragma);
lex_tokench(lex, nextch);
lex_tokench(lex, thirdch);
}
+ }
+ else if (lex->flags.preprocessing &&
+ ch == '-' && isdigit(nextch))
+ {
+ lex->tok.ttype = lex_finish_digit(lex, nextch);
+ if (lex->tok.ttype == TOKEN_INTCONST)
+ lex->tok.constval.i = -lex->tok.constval.i;
+ else
+ lex->tok.constval.f = -lex->tok.constval.f;
+ lex_endtoken(lex);
+ return lex->tok.ttype;
} else
lex_ungetch(lex, nextch);