summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2025-06-16 07:55:49 -0700
committerKaz Kylheku <kaz@kylheku.com>2025-06-16 07:55:49 -0700
commita7c26d664010acb5d3c91f6b6b873b30f8c64f60 (patch)
tree48dca4000c64e5c2adadd7f6cff9fdd802f7f7c9
parentf562f4909bfbe1d2402ba24db5aac7dedadef9ea (diff)
downloadtxr-a7c26d664010acb5d3c91f6b6b873b30f8c64f60.tar.gz
txr-a7c26d664010acb5d3c91f6b6b873b30f8c64f60.tar.bz2
txr-a7c26d664010acb5d3c91f6b6b873b30f8c64f60.zip
autoload: bug: not clearing *expand-hook* correctly.
* autoload.c (autload_try): We must bind the symbol name expand_hook_s, not its value from the expand_hook macro. This bug causes an intraction with ifx. If a form expanded under ifx hits autoload, the infix expansion hook is in effect for that autoloaded file. Users of the compiled TXR will not experience any ill effects, but when compiled files are removed, triggering fallback on source code, bad things happen.
-rw-r--r--autoload.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/autoload.c b/autoload.c
index 32e24e5c..1f513829 100644
--- a/autoload.c
+++ b/autoload.c
@@ -1147,7 +1147,7 @@ static val autoload_try(al_ns_t ns, val sym)
dyn_env = make_env(nil, nil, dyn_env);
env_vbind(dyn_env, package_s, system_package);
env_vbind(dyn_env, package_alist_s, packages);
- env_vbind(dyn_env, expand_hook, nil);
+ env_vbind(dyn_env, expand_hook_s, nil);
opt_compat = 0;
funcall(fun);
opt_compat = saved_compat;