X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcpp_tokiter.c;h=51daaa9bb794a850e3ae215b152471a941255a62;hb=4926283fa0589f3f9c25616304672018dba77429;hp=2ea9adc80a6411dbff8b2d20b08c591c8404245f;hpb=ba906e039ffe9e57842ce5135aa43efa00b8a4c6;p=m6w6%2Fext-psi diff --git a/src/cpp_tokiter.c b/src/cpp_tokiter.c index 2ea9adc..51daaa9 100644 --- a/src/cpp_tokiter.c +++ b/src/cpp_tokiter.c @@ -243,13 +243,15 @@ void psi_cpp_tokiter_expand_tokens(struct psi_cpp *cpp, struct psi_plist *tokens while (psi_plist_get(tokens, i++, &tok)) { struct psi_token *new_tok; + if (tok->type == PSI_T_EOL) { + continue; + } if (tok->type == PSI_T_HASH) { - if (stringify) { - stringify = false; - paste = true; - } else { - stringify = true; - } + stringify = true; + continue; + } + if (tok->type == PSI_T_CPP_PASTE) { + paste = true; continue; } @@ -261,8 +263,6 @@ void psi_cpp_tokiter_expand_tokens(struct psi_cpp *cpp, struct psi_plist *tokens struct psi_token *cpy = psi_token_copy(tok); if (stringify) { - cpy = psi_token_append(NULL, - psi_token_prepend(NULL, cpy, 1, "\""), 1, "\""); cpy->type = PSI_T_QUOTED_STRING; } exp_tokens[n++] = cpy; @@ -272,6 +272,7 @@ void psi_cpp_tokiter_expand_tokens(struct psi_cpp *cpp, struct psi_plist *tokens fprintf(stderr, "PSI: CPP expand > "); psi_token_dump(2, tok); #endif + paste = false; stringify = false; }