X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=ftepp.c;h=c574f03bb99d518191a243a8155e60f41a9e7c76;hp=44c1ebb1b5392bde5f5842a0a1d23ff8955d23f4;hb=f1650c42d950400b41be53af2da1ad9867642df4;hpb=9cc4fe1ed246e3c37af7cbd7245b0b413372f3b9 diff --git a/ftepp.c b/ftepp.c index 44c1ebb..c574f03 100644 --- a/ftepp.c +++ b/ftepp.c @@ -763,6 +763,7 @@ static bool ftepp_macro_expand(ftepp_t *ftepp, ppmacro *macro, macroparam *param lex_file *inlex; bool old_inmacro; + bool strip = false; int nextok; @@ -827,6 +828,7 @@ static bool ftepp_macro_expand(ftepp_t *ftepp, ppmacro *macro, macroparam *param if (nextok == '#') { /* raw concatenation */ ++o; + strip = true; break; } if ( (nextok == TOKEN_IDENT || @@ -835,6 +837,7 @@ static bool ftepp_macro_expand(ftepp_t *ftepp, ppmacro *macro, macroparam *param macro_params_find(macro, macro->output[o+1]->value, &pi)) { ++o; + ftepp_stringify(ftepp, ¶ms[pi]); break; } @@ -845,7 +848,14 @@ static bool ftepp_macro_expand(ftepp_t *ftepp, ppmacro *macro, macroparam *param ftepp_out(ftepp, "\n", false); break; default: - ftepp_out(ftepp, out->value, false); + buffer = out->value; + if (vec_size(macro->output) > o + 1 && macro->output[o+1]->token == '#') + buffer++; + if (strip) { + while (util_isspace(*buffer)) buffer++; + strip = false; + } + ftepp_out(ftepp, buffer, false); break; } }