From 37b86df09ff381bcc4f60802d43e57bd9bfcac73 Mon Sep 17 00:00:00 2001 From: Ori Bernstein Date: Tue, 17 Mar 2020 22:03:25 -0700 Subject: Improve the posix preprocessor. This fixes token pasting, making it expand when it should expand, and paste before expansion when it should paste before expanding. #define CAT(a, b) a ## b #define BAR 3 #define FOO CAT(BAR, 3) FOO now produces 33, while #define CAT(a, b) a ## b #define EOF (-1) #define NOP(x) x NOP(CAT(foo, EOF)) CAT(,EOF) CAT(,) produces fooEOF (-1) respectively. --- sys/src/cmd/cpp/include.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sys/src/cmd/cpp/include.c') diff --git a/sys/src/cmd/cpp/include.c b/sys/src/cmd/cpp/include.c index c7511d9c8..edd51f3a8 100644 --- a/sys/src/cmd/cpp/include.c +++ b/sys/src/cmd/cpp/include.c @@ -18,7 +18,7 @@ doinclude(Tokenrow *trp) goto syntax; if (trp->tp->type!=STRING && trp->tp->type!=LT) { len = trp->tp - trp->bp; - expandrow(trp, "", Notinmacro); + expandrow(trp, ""); trp->tp = trp->bp+len; } if (trp->tp->type==STRING) { -- cgit v1.2.3