summaryrefslogtreecommitdiffstats
path: root/lisplib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-04-06 06:44:28 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-04-06 06:44:28 -0700
commit668b7ab58822dd14ac54061373a09a1311748acf (patch)
tree9d73d49dc8cee5adfba4551f9229ea7f1e5a9635 /lisplib.c
parent0955e45650c166de341ed789885dff318e6c3d63 (diff)
downloadtxr-668b7ab58822dd14ac54061373a09a1311748acf.tar.gz
txr-668b7ab58822dd14ac54061373a09a1311748acf.tar.bz2
txr-668b7ab58822dd14ac54061373a09a1311748acf.zip
autoload: add more missing symbols.
If user code interns these symbols before the autoload takes place, things will misbehave. For instance if user code interns a symbol called "rng" in its own package, not usr, and then awk is loaded, then using (rng ...) in that awk macro won't work. * lisplib.c (ifa_set_entries): Add the it symbol. (awk_set_entries): Add numerous symbols to the intern list: all of the awk special variables and awk functions/macros.
Diffstat (limited to 'lisplib.c')
-rw-r--r--lisplib.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/lisplib.c b/lisplib.c
index 365714ed..d50b6899 100644
--- a/lisplib.c
+++ b/lisplib.c
@@ -125,7 +125,7 @@ static val ver_instantiate(val set_fun)
static val ifa_set_entries(val dlt, val fun)
{
val name[] = {
- lit("ifa"), lit("whena"), lit("conda"), lit("condlet"), nil
+ lit("ifa"), lit("whena"), lit("conda"), lit("condlet"), lit("it"), nil
};
set_dlt_entries(dlt, name, fun);
return nil;
@@ -384,7 +384,18 @@ static val awk_set_entries(val dlt, val fun)
val name[] = {
lit("awk"), nil
};
+ val name_noload[] = {
+ lit("rec"), lit("orec"), lit("f"), lit("nf"), lit("nr"), lit("fnr"),
+ lit("arg"), lit("fname"), lit("rs"), lit("krs"), lit("fs"), lit("ft"),
+ lit("fw"), lit("kfs"), lit("ofs"), lit("ors"), lit("next"), lit("again"),
+ lit("next-file"), lit("rng"), lit("-rng"), lit("rng-"), lit("-rng-"),
+ lit("--rng"), lit("--rng-"), lit("rng+"), lit("-rng+"), lit("--rng+"),
+ lit("ff"), lit("f"), lit("mf"), lit("fconv"), lit("->"), lit("->>"),
+ lit("<-"), lit("!>"), lit("<!"), lit("prn"), nil
+ };
+
set_dlt_entries(dlt, name, fun);
+ intern_only(name_noload);
return nil;
}