diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-04-13 07:24:01 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-04-13 07:24:01 -0700 |
commit | 46d9925f19452dc447acaa06706c2c2a87f77ad4 (patch) | |
tree | 66d9ad1c79ed7df7be19595105b11f6d3db8847b /cppawk-include | |
parent | 3081448751067b32ff758f1ac04e2ec7369bfff4 (diff) | |
download | cppawk-46d9925f19452dc447acaa06706c2c2a87f77ad4.tar.gz cppawk-46d9925f19452dc447acaa06706c2c2a87f77ad4.tar.bz2 cppawk-46d9925f19452dc447acaa06706c2c2a87f77ad4.zip |
fun() must expand arg; fix __fun clash issue.
Diffstat (limited to 'cppawk-include')
-rw-r--r-- | cppawk-include/base.h | 2 | ||||
-rw-r--r-- | cppawk-include/fun-priv.h | 2 | ||||
-rw-r--r-- | cppawk-include/fun.h | 2 |
3 files changed, 4 insertions, 2 deletions
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 |