diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-10-26 00:02:59 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-10-26 00:02:59 -0700 |
commit | 0f815d2e4552c71783f302189c67db8ad34343fb (patch) | |
tree | 03b92f4c7ecaf75579e4048da9ec10063aec4903 /lisplib.c | |
parent | d066056a22bfea38901da258bd039fc4588c8251 (diff) | |
download | txr-0f815d2e4552c71783f302189c67db8ad34343fb.tar.gz txr-0f815d2e4552c71783f302189c67db8ad34343fb.tar.bz2 txr-0f815d2e4552c71783f302189c67db8ad34343fb.zip |
awk: bugfix: lack of hygiene in range implementation.
The code is using a non-hygienic variable called flag
as a placelet alias. This binding is visible to range
expressions. For instance (rng #/x/ flag) actually
references the range expression's internal flag, rather
than producing a warning about an unbound variable.
* share/txr/stdlib/awk.tl (sys:awk-mac-let): Allocate a gensym
for the flag. Then use ,flag throughout the code templates
rather than flag to insert the gensym wherever the symbol
flag previously appeared.
Diffstat (limited to 'lisplib.c')
0 files changed, 0 insertions, 0 deletions