From: Wolfgang (Blub) Bumiller Date: Fri, 16 Nov 2012 21:41:29 +0000 (+0100) Subject: don't error on non-EOL EOF at the end of a macro line X-Git-Tag: 0.1.9~404^2~31 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=d237ff173619bc73f10eb3d4266ecfe57b2ce2b5;p=xonotic%2Fgmqcc.git don't error on non-EOL EOF at the end of a macro line --- diff --git a/ftepp.c b/ftepp.c index cdc0d1e..ba8829d 100644 --- a/ftepp.c +++ b/ftepp.c @@ -262,7 +262,8 @@ static bool ftepp_define_body(ftepp_t *ftepp, ppmacro *macro) vec_push(macro->output, ptok); ftepp_next(ftepp); } - if (ftepp->token != TOKEN_EOL) { + /* recursive expansion can cause EOFs here */ + if (ftepp->token != TOKEN_EOL && ftepp->token != TOKEN_EOF) { ftepp_error(ftepp, "unexpected junk after macro or unexpected end of file"); return false; } @@ -444,7 +445,9 @@ static bool ftepp_macro_expand(ftepp_t *ftepp, ppmacro *macro, macroparam *param } vec_push(ftepp->output, 0); /* Now run the preprocessor recursively on this string buffer */ + /* printf("__________\n%s\n=========\n", ftepp->output); + */ inlex = lex_open_string(ftepp->output, vec_size(ftepp->output)-1, ftepp->lex->name); if (!inlex) { ftepp_error(ftepp, "internal error: failed to instantiate lexer");