aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cppawk-include/base.h2
-rw-r--r--cppawk-include/fun-priv.h2
-rw-r--r--cppawk-include/fun.h2
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