diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-06-16 07:55:49 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-06-16 07:55:49 -0700 |
commit | a7c26d664010acb5d3c91f6b6b873b30f8c64f60 (patch) | |
tree | 48dca4000c64e5c2adadd7f6cff9fdd802f7f7c9 | |
parent | f562f4909bfbe1d2402ba24db5aac7dedadef9ea (diff) | |
download | txr-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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; |