summaryrefslogtreecommitdiffstats
path: root/lib.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-12-18 23:13:47 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-12-18 23:13:47 -0800
commit61a8fde2872355b4e721f1c5145c77122c92c40e (patch)
tree3eb13f0f241b2ebd565cd2ba716d207c63451083 /lib.h
parent595e55ff7fd02106e7e04bd0db3c2737643fedbd (diff)
downloadtxr-61a8fde2872355b4e721f1c5145c77122c92c40e.tar.gz
txr-61a8fde2872355b4e721f1c5145c77122c92c40e.tar.bz2
txr-61a8fde2872355b4e721f1c5145c77122c92c40e.zip
* eval.c (bindings_helper): Fix format arguments.
(eval_init): Registered new functions: symbol-function, func-get-form, func-get-env, functionp, interp-fun-p. * lib.c (nappend2, getplist_f, improper_plist_to_alist): tail variable renamed to avoid clash in macro. (func_get_form, func_get_env, interp_fun_p): New functions. * lib.h (func_get_form, func_get_env, interp_fun_p): Declared. (list_collect): Fix macro not to throw error, but handle the case. * match.c (vars_to_bindings, extract_bindings): tail variable renamed to avoid clash in macro. * txr.1: Documentation stubs.
Diffstat (limited to 'lib.h')
-rw-r--r--lib.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib.h b/lib.h
index 345c3e35..3c9781b0 100644
--- a/lib.h
+++ b/lib.h
@@ -469,7 +469,10 @@ val func_n2v(val (*fun)(val, val, val rest));
val func_n3v(val (*fun)(val, val, val, val rest));
val func_n4v(val (*fun)(val, val, val, val, val rest));
val func_interp(val env, val form);
+val func_get_form(val fun);
+val func_get_env(val fun);
val functionp(val);
+val interp_fun_p(val);
val funcall(val fun);
val funcall1(val fun, val arg);
val funcall2(val fun, val arg1, val arg2);
@@ -571,7 +574,7 @@ INLINE val eq(val a, val b) { return ((a) == (b) ? t : nil); }
#define list_collect(PTAIL, OBJ) \
do { \
if (*PTAIL) \
- internal_error("mixed collect style"); \
+ PTAIL = tail(*PTAIL); \
*PTAIL = cons(OBJ, nil); \
PTAIL = cdr_l(*PTAIL); \
} while(0)