preproc: handle %+ even during early token replacement
authorH. Peter Anvin <hpa@zytor.com>
Mon, 4 May 2009 17:11:22 +0000 (10:11 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 4 May 2009 17:11:22 +0000 (10:11 -0700)
Preexisting code seems to rely on %+ being processed even during early
token replacement, e.g. Syslinux contains the following code:

%macro          superb 1
bx %+ %1        equ SuperInfo+($-superblock)*8+4
bs %+ %1        equ $
                zb 1
%endmacro

... which is expected to work when invoked as:

                superb Media

As a result, set handle_paste_tokens to true at all times; assuming
this turns out to be the way things are we can really just remove it
as an option.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
preproc.c

index 0868e75..8c0863d 100644 (file)
--- a/preproc.c
+++ b/preproc.c
@@ -3583,7 +3583,7 @@ static Token *expand_mmac_params(Token * tline)
     *tail = NULL;
 
     if (changed)
-       paste_tokens(&thead, false);
+       paste_tokens(&thead, true);
 
     return thead;
 }