summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-12-23 08:56:46 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-12-23 08:56:46 -0800
commitebb980b2ee0414ca4369049f489ad8e6ce1ad148 (patch)
tree8088641765a092d10f032544e14516a1a4b8eb1a /lib.c
parentc168463748d4a4913696b5b5e72578cafec4ccfb (diff)
downloadtxr-ebb980b2ee0414ca4369049f489ad8e6ce1ad148.tar.gz
txr-ebb980b2ee0414ca4369049f489ad8e6ce1ad148.tar.bz2
txr-ebb980b2ee0414ca4369049f489ad8e6ce1ad148.zip
* lib.c (func_n1ov, func_n2ov, func_n3ov): New functions.
* lib.h (func_n1ov, func_n2ov, func_n3ov): Declared.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 471d5d17..4261ec08 100644
--- a/lib.c
+++ b/lib.c
@@ -3989,6 +3989,27 @@ val func_n4o(val (*fun)(val, val, val, val), int reqargs)
return obj;
}
+val func_n1ov(val (*fun)(val, val rest), int reqargs)
+{
+ val obj = func_n1v(fun);
+ obj->f.optargs = 1 - reqargs;
+ return obj;
+}
+
+val func_n2ov(val (*fun)(val, val, val rest), int reqargs)
+{
+ val obj = func_n2v(fun);
+ obj->f.optargs = 2 - reqargs;
+ return obj;
+}
+
+val func_n3ov(val (*fun)(val, val, val, val rest), int reqargs)
+{
+ val obj = func_n3v(fun);
+ obj->f.optargs = 3 - reqargs;
+ return obj;
+}
+
val func_interp(val env, val form)
{
val obj = make_obj();