From 46d9925f19452dc447acaa06706c2c2a87f77ad4 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 13 Apr 2022 07:24:01 -0700 Subject: fun() must expand arg; fix __fun clash issue. --- cppawk-include/base.h | 2 ++ cppawk-include/fun-priv.h | 2 +- cppawk-include/fun.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'cppawk-include') diff --git a/cppawk-include/base.h b/cppawk-include/base.h index f22f599..5472233 100644 --- a/cppawk-include/base.h +++ b/cppawk-include/base.h @@ -34,6 +34,8 @@ #define __cat(a, b) a ## b #define __xcat(a, b) __cat(a, b) +#define __str(x) # x +#define __xstr(x) __str(x) #define __g(name) __xcat(name, __LINE__) #define __error(...) { printf(__VA_ARGS__); print; exit 1 } diff --git a/cppawk-include/fun-priv.h b/cppawk-include/fun-priv.h index 56313c0..5d60bfc 100644 --- a/cppawk-include/fun-priv.h +++ b/cppawk-include/fun-priv.h @@ -41,7 +41,7 @@ #endif #define __bind(fname, env) __cons(#fname, env) -#define __fun(fname) #fname +#define __fun_(fname) __xstr(fname) #define __call(fobj, ...) (__consp(fobj) \ ? __progn(__g(f) = __car(fobj), \ @__g(f)(__cdr(fobj), __VA_ARGS__)) \ diff --git a/cppawk-include/fun.h b/cppawk-include/fun.h index 6bf38ef..d54eeab 100644 --- a/cppawk-include/fun.h +++ b/cppawk-include/fun.h @@ -33,7 +33,7 @@ #endif #define bind(fname, env) __bind(fname, env) -#define fun(fname) __fun(fname) +#define fun(fname) __fun_(fname) #define call(...) __call(__VA_ARGS__) #endif -- cgit v1.2.3