summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-07-21 22:14:23 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-07-21 22:14:23 -0700
commitf10ed814f895f2527b99fc6a55057617a7750ba7 (patch)
tree7e0c421f9b284f195c8e3fae239ef84463d8f0ad /lisplib.c
parent701d5ff8c6a2d4ca6023be345faf4f085db6c689 (diff)
downloadtxr-f10ed814f895f2527b99fc6a55057617a7750ba7.tar.gz
txr-f10ed814f895f2527b99fc6a55057617a7750ba7.tar.bz2
txr-f10ed814f895f2527b99fc6a55057617a7750ba7.zip
Implementing caar, cadr, cdar and friends.
* lib.c (init): Call cadr_init. * lisplib.c (dl_table, set_dlt_entries, dlt_register): Externalize. * lisplib.h (dl_table, set_dlt_entries, dlt_register): Declared. * Makefile (OBJS): Add cadr.o. * cadr.c: New file. * cadr.h: New file. * gencadr.txr: New file. * share/txr/stdlib/cadr.tl: New file. * txr.1: Document cadr accessors.
Diffstat (limited to 'lisplib.c')
-rw-r--r--lisplib.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lisplib.c b/lisplib.c
index bc00b6a1..7fc92021 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -38,9 +38,9 @@
#include "txr.h"
#include "lisplib.h"
-static val dl_table;
+val dl_table;
-static void set_dlt_entries(val dlt, val *name, val fun)
+void set_dlt_entries(val dlt, val *name, val fun)
{
for (; *name; name++) {
val sym = intern(*name, user_package);
@@ -126,9 +126,9 @@ static val txr_case_instantiate(val set_fun)
return nil;
}
-static val dlt_register(val dlt,
- val (*instantiate)(val),
- val (*set_entries)(val, val))
+val dlt_register(val dlt,
+ val (*instantiate)(val),
+ val (*set_entries)(val, val))
{
return set_entries(dl_table, func_f0(func_f1(dlt, set_entries), instantiate));
}