preproc: Refactor smacro paramters expansion

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
Cyrill Gorcunov 2011-06-30 01:36:45 +04:00
parent 194ba892ca
commit 0ad6a7b293

View File

@ -4632,18 +4632,21 @@ again:
list_for_each(t, m->expansion) {
if (is_smacro_param(t)) {
Token *pcopy = tline, **ptail = &pcopy;
Token *ttt, *pt;
Token *ttt;
int i, idx;
idx = smacro_get_param_idx(t);
ttt = params[idx];
i = paramsize[idx];
while (--i >= 0) {
pt = *ptail = new_Token(tline, ttt->type,
ttt->text, 0);
ptail = &pt->next;
/*
* We need smacro paramters appended.
*/
for (i = paramsize[idx]; i > 0; i--) {
*ptail = new_Token(tline, ttt->type, ttt->text, 0);
ptail = &(*ptail)->next;
ttt = ttt->next;
}
tline = pcopy;
} else if (t->type == TOK_PREPROC_Q) {
tt = new_Token(tline, TOK_ID, mname, 0);