summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-02-17 09:10:25 -0800
committerKaz Kylheku <kaz@kylheku.com>2019-02-17 09:10:25 -0800
commitfa9b9111f795c2377ac5d338fab4f431fdd44464 (patch)
treef5919f8ca9a07562e5006c32e5acbf0216b18ab8 /lisplib.c
parentf16aaf441c112f0e6382b77ebdcd585d8c531580 (diff)
downloadtxr-fa9b9111f795c2377ac5d338fab4f431fdd44464.tar.gz
txr-fa9b9111f795c2377ac5d338fab4f431fdd44464.tar.bz2
txr-fa9b9111f795c2377ac5d338fab4f431fdd44464.zip
save-exe: new function.
* lisplib.c (save_exe_instantiate, save_exe_set_entries): New static functions. (lisplib_init): Register auto-load of save-exe module, keyed to save-exe symbol. * share/txr/stdlib/save-exe.tl: New file. * txr.1: Removing txr-embedded-arg.txr documentation and documenting save-exe in its place. * txr-embedded-arg.txr: File removed.
Diffstat (limited to 'lisplib.c')
-rw-r--r--lisplib.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/lisplib.c b/lisplib.c
index f548c360..5772845d 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -734,6 +734,24 @@ static val op_instantiate(val set_fun)
return nil;
}
+static val save_exe_instantiate(val set_fun)
+{
+ funcall1(set_fun, nil);
+ load(format(nil, lit("~asave-exe"), stdlib_path, nao));
+ return nil;
+}
+
+static val save_exe_set_entries(val dlt, val fun)
+{
+ val name[] = {
+ lit("save-exe"),
+ nil
+ };
+
+ set_dlt_entries(dlt, name, fun);
+ return nil;
+}
+
val dlt_register(val dlt,
val (*instantiate)(val),
val (*set_entries)(val, val))
@@ -782,6 +800,8 @@ void lisplib_init(void)
if (!opt_compat || opt_compat >= 185)
dlt_register(dl_table, op_instantiate, op_set_entries);
+ dlt_register(dl_table, save_exe_instantiate, save_exe_set_entries);
+
reg_fun(intern(lit("try-load"), system_package), func_n1(lisplib_try_load));
}