diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-08-24 05:59:09 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-08-24 05:59:09 -0700 |
commit | b971254b74e21e42fd0b856a815fff0a2734a87c (patch) | |
tree | ac15813ec12a909219183d4e68726e56f0069ba6 /stream.h | |
parent | eee1e38f9b84618358ea7fa800f12b7a81d1d626 (diff) | |
download | txr-b971254b74e21e42fd0b856a815fff0a2734a87c.tar.gz txr-b971254b74e21e42fd0b856a815fff0a2734a87c.tar.bz2 txr-b971254b74e21e42fd0b856a815fff0a2734a87c.zip |
Fix bug: global lexicals marked special anyway.
Variables defined with defvarl or defparml are being marked
special, due to a mark_special call in the macro expander
which existed before they were introduced.
* eval.c (me_def_variable): We have to call mark_special
at macro-expansion-time for defparm and defvar, rather than
arrange for it to be called later, for the same reasons
that the (now incorrect) mark_special call had been introduced
in do_expand function for handling defvar.
(do_expand): Do not call mark_special, because the symbol
being handled here is defvarl: define lexical variable.
Diffstat (limited to 'stream.h')
0 files changed, 0 insertions, 0 deletions