summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-04-03 08:34:07 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-04-03 08:34:07 -0700
commit73d668988bb0ee6d4ed0d27064b0616f8d58adfd (patch)
tree754a876f8fcc30fc8d279fc27ef208f18c17fc72 /lisplib.c
parentde88f832f442dfdf6a9a23a4e8861e271a94ec28 (diff)
downloadtxr-73d668988bb0ee6d4ed0d27064b0616f8d58adfd.tar.gz
txr-73d668988bb0ee6d4ed0d27064b0616f8d58adfd.tar.bz2
txr-73d668988bb0ee6d4ed0d27064b0616f8d58adfd.zip
lib: new function for documentation lookup.
* genman.txr: dump contents of symhash into a doc-syms.tl library file, as a defvarl form. * lisplib.c (doc_instantiate, doc_set_entries): New static functions. (lisplib_init): Register autoload for doc-lookup module to symbols doc and *doc-url*. * share/txr/stdlib/doc-lookup.tl: New file. * share/txr/stdlib/doc-syms.tl: Likewise. * txr.1: Documented.
Diffstat (limited to 'lisplib.c')
-rw-r--r--lisplib.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/lisplib.c b/lisplib.c
index a425d95b..c37cb4a5 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -891,6 +891,23 @@ static val match_set_entries(val dlt, val fun)
return nil;
}
+static val doc_instantiate(val set_fun)
+{
+ funcall1(set_fun, nil);
+ load(scat2(stdlib_path, lit("doc-lookup")));
+ return nil;
+}
+
+static val doc_set_entries(val dlt, val fun)
+{
+ val name[] = {
+ lit("doc"), lit("*doc-url*"),
+ nil
+ };
+ set_dlt_entries(dlt, name, fun);
+ return nil;
+}
+
val dlt_register(val dlt,
val (*instantiate)(val),
val (*set_entries)(val, val))
@@ -946,6 +963,7 @@ void lisplib_init(void)
dlt_register(dl_table, each_prod_instantiate, each_prod_set_entries);
dlt_register(dl_table, quips_instantiate, quips_set_entries);
dlt_register(dl_table, match_instantiate, match_set_entries);
+ dlt_register(dl_table, doc_instantiate, doc_set_entries);
reg_fun(intern(lit("try-load"), system_package), func_n1(lisplib_try_load));
}