summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-11-13 19:20:39 -0800
committerKaz Kylheku <kaz@kylheku.com>2016-11-13 19:20:39 -0800
commite98737b05917ebeaad6a8868e8d4d3cc6e5a89b2 (patch)
tree29e2511dd53420f80f11cdd83ee8e40bb990fda3 /lisplib.c
parent7057603b4da78bb27e7688a9d74de6025132dbbc (diff)
downloadtxr-e98737b05917ebeaad6a8868e8d4d3cc6e5a89b2.tar.gz
txr-e98737b05917ebeaad6a8868e8d4d3cc6e5a89b2.tar.bz2
txr-e98737b05917ebeaad6a8868e8d4d3cc6e5a89b2.zip
New functions for command or file I/O in one call.
* lisplib.c (getput_set_entries, getput_instantiate): New static functions. (dlt_register): Register auto-loading for getput module via new functions. * share/txr/stdlib/getput.tl: New file. * txr.1: Documented new functions file-get, file-put, file-append, file-get-string, file-put-string, file-append-string, file-get-lines, file-put-lines, file-append-lines, command-get, command-put, command-get-string, command-put-string, command-get-lines, and command-put-lines.
Diffstat (limited to 'lisplib.c')
-rw-r--r--lisplib.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/lisplib.c b/lisplib.c
index 06178383..38c002ce 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -424,6 +424,27 @@ static val package_instantiate(val set_fun)
return nil;
}
+static val getput_set_entries(val dlt, val fun)
+{
+ val name[] = {
+ lit("file-get"), lit("file-put"), lit("file-append"),
+ lit("file-get-string"), lit("file-put-string"), lit("file-append-string"),
+ lit("file-get-lines"), lit("file-put-lines"), lit("file-append-lines"),
+ lit("command-get"), lit("command-put"),
+ lit("command-get-string"), lit("command-put-string"),
+ lit("command-get-lines"), lit("command-put-lines"),
+ nil
+ };
+ set_dlt_entries(dlt, name, fun);
+ return nil;
+}
+
+static val getput_instantiate(val set_fun)
+{
+ funcall1(set_fun, nil);
+ load(format(nil, lit("~agetput.tl"), stdlib_path, nao));
+ return nil;
+}
val dlt_register(val dlt,
val (*instantiate)(val),
@@ -459,6 +480,7 @@ void lisplib_init(void)
dlt_register(dl_table, trace_instantiate, trace_set_entries);
dlt_register(dl_table, getopts_instantiate, getopts_set_entries);
dlt_register(dl_table, package_instantiate, package_set_entries);
+ dlt_register(dl_table, getput_instantiate, getput_set_entries);
}
val lisplib_try_load(val sym)