--- Begin Message ---
Subject: |
24.3.50; eshell: variable `name' treated different from other variables |
Date: |
Sun, 01 Sep 2013 01:40:19 +0200 |
User-agent: |
Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.50.1 (i486-pc-linux-gnu) |
Dear Emacs developers,
eshell treats a variable named `name' different than a variable
named `foo' (or any(?) other name):
How to reproduce:
emacs -Q -nw -f eshell
#now type
for foo in * { echo "$foo" }
# this lists the directory Emacs was started in
#now type
for name in * { echo "$name" }
# this instead lists as many times 'name' as the above
# for statement listed objects in the directory.
E.g.:
~/src/emacs/doc $ for foo in * { echo "$foo" }
Emacs/
lispintro/
lispref/
man/
misc/
~/src/emacs/doc $ for name in * { echo "$name" }
name
name
name
name
name
~/src/emacs/doc $
This is the case with
GNU Emacs 24.3.50.1 (i486-pc-linux-gnu, X toolkit, Xaw scroll
bars) of 2013-08-31 on dex, modified by Debian
and with
GNU Emacs 23.4.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll
bars) of 2013-07-01 on binet, modified by Debian
Is this a bug?
Thanks, Gregor
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#15231: 24.3.50; eshell: variable `name' treated different from other variables |
Date: |
Thu, 12 Sep 2013 16:16:24 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
>> I've just tried to convert Eshell to use lexical-binding and it appears
>> that this problem would indeed be fixed by such a change (if someone has
>> some kind of test suite for Eshell it would be very helpful, since
>> changing it to use lexical-binding is not completely trivial and might
>> introduce unexpected regressions).
> There is test/eshell.el. Btw, shouldn't it be moved to test/automated/ ?
Cool, indeed. I moved the file, added a test to catch this bug, and
changed Eshell to use lexical-binding.
Stefan
--- End Message ---