Subject: bug#12571: 24.2.50; Eshell for loop stuck when using shell commands

From: David Leal <[email-masked]>
Date: Wed, 03 Oct 2012 09:25:58 +0100

(Reproducible using `emacs -Q')

1. Start eshell using `M-x eshell'
2. Go into a non-empty directory
3. Try `for f in * { *echo $f }

The same file name will be repeated over and over again.

In GNU Emacs 24.2.50.1 (i686-pc-linux-gnu, GTK+ Version 3.4.2)
 of 2012-09-19 on dryad, modified by Debian
 (emacs-snapshot package, version 2:20120919-1~ppa1~precise1)
Windowing system distributor `The X.Org Foundation', version 11.0.11300000
Configured using:
 `configure '--build' 'i686-linux-gnu' '--host' 'i686-linux-gnu' '--prefix=/usr'
 '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var'
 '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.2.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.2.50/site-lisp:/usr/share/emacs/site-lisp'
 '--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/'
 '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes'
 'build_alias=i686-linux-gnu' 'host_alias=i686-linux-gnu' 'CFLAGS=-DDEBIAN
 -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed
 -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: EShell

Minor modes in effect:
  recentf-mode: t
  global-surround-mode: t
  surround-mode: t
  evil-mode: t
  evil-local-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  diff-auto-refine-mode: t
  global-hl-line-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  helm-match-plugin-mode: t
  show-paren-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  autopair-mode: t
  autopair-global-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<tab> <return> e c h o SPC C-p C-b C-M-k ESC l d % 
j p a SPC <backspace> ( f i l e - n a m e - s a n s 
- e x t e n s i o n SPC " b l a h . p n g <return> 
M-p M-p M-p M-p C-n C-n C-p C-p C-n f <backspace> C-e 
C-c C-c f o r SPC f SPC i n SPC * S-SPC { S-SPC e c 
h o SPC ( f i l e - n a m e - s a n s - e x t e n s 
i o n SPC f C-f SPC <return> M-p C-c C-c l s <return> 
M-p M-p C-a M-f M-f M-f M-f M-b M-b M-f C-f C-f . j 
p g M-f <C-backspace> c o n f i g <C-backspace> o <backspace> 
i d e n f i <backspace> <backspace> t i f y SPC $ f 
C-f C-M-k <backspace> <return> C-c C-c M-p C-a C-c 
C-c f o r SPC f SPC i n SPC * . j p g SPC { S-SPC i 
d e n t i f y SPC $ f SPC <return> C-c C-c M-p M-p 
C-n C-l M-b M-b M-b M-f M-f <C-backspace> e c h o <return> 
M-p M-b M-b M-d l s <return> w h i c h SPC l s <return> 
w h i c h SPC f o r <return> p M-p <backspace> <backspace> 
C-a C-k f o r SPC * <backspace> f SPC i n SPC * . j 
p g SPC { S-SPC * e c h o SPC $ f SPC <return> C-c 
C-v C-c C-c M-x r e p o r t - C-n C-n C-n C-n <ret
urn>

Recent messages:
History item: 147
History item: 146
History item: 148
History item: 149
History item: 148
byte-code: End of buffer
History item: 150
Type C-x 1 to delete the help window.
History item: 51

Load-path shadows:
/home/david/.emacs.d/vendor/org-mode/.dir-locals hides /home/david/.emacs.d/vendor/magit/.dir-locals
/usr/share/emacs/24.2.50/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
~/.emacs.d/lib/macros hides /usr/share/emacs/24.2.50/lisp/macros
/usr/share/emacs-snapshot/site-lisp/flim/md4 hides /usr/share/emacs/24.2.50/lisp/md4
/usr/share/emacs-snapshot/site-lisp/flim/hex-util hides /usr/share/emacs/24.2.50/lisp/hex-util
/home/david/.emacs.d/vendor/enhanced-ruby-mode/ruby-mode hides /usr/share/emacs/24.2.50/lisp/progmodes/ruby-mode
/usr/share/emacs-snapshot/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.2.50/lisp/net/sasl-cram
/usr/share/emacs-snapshot/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.2.50/lisp/net/sasl-ntlm
/usr/share/emacs-snapshot/site-lisp/flim/sasl hides /usr/share/emacs/24.2.50/lisp/net/sasl
/usr/share/emacs-snapshot/site-lisp/flim/ntlm hides /usr/share/emacs/24.2.50/lisp/net/ntlm
/usr/share/emacs-snapshot/site-lisp/flim/hmac-def hides /usr/share/emacs/24.2.50/lisp/net/hmac-def
/usr/share/emacs-snapshot/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.2.50/lisp/net/sasl-digest
/usr/share/emacs-snapshot/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.2.50/lisp/net/hmac-md5
/usr/share/emacs-snapshot/site-lisp/wl/rfc2368 hides /usr/share/emacs/24.2.50/lisp/mail/rfc2368
/home/david/.emacs.d/vendor/org-mode/.dir-locals hides /usr/share/emacs/24.2.50/lisp/gnus/.dir-locals
/usr/share/emacs-snapshot/site-lisp/semi/pgg-pgp hides /usr/share/emacs/24.2.50/lisp/obsolete/pgg-pgp
/usr/share/emacs-snapshot/site-lisp/semi/pgg hides /usr/share/emacs/24.2.50/lisp/obsolete/pgg
/usr/share/emacs-snapshot/site-lisp/semi/pgg-parse hides /usr/share/emacs/24.2.50/lisp/obsolete/pgg-parse
/usr/share/emacs-snapshot/site-lisp/semi/pgg-gpg hides /usr/share/emacs/24.2.50/lisp/obsolete/pgg-gpg
/usr/share/emacs-snapshot/site-lisp/semi/pgg-def hides /usr/share/emacs/24.2.50/lisp/obsolete/pgg-def
/usr/share/emacs-snapshot/site-lisp/semi/pgg-pgp5 hides /usr/share/emacs/24.2.50/lisp/obsolete/pgg-pgp5

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mail-utils pcmpl-unix misearch multi-isearch tramp-cache
tramp-sh recentf tree-widget wid-edit haml-mode js json imenu cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs css-mode
em-unix em-term term ehelp electric em-script em-prompt em-ls em-hist em-pred
em-glob em-dirs em-cmpl em-basic em-banner em-alias disp-table
fill-column-indicator helm-misc surround evil evil-integration evil-maps
evil-commands evil-types evil-digraphs evil-search evil-ex evil-macros
evil-repeat evil-states evil-core evil-common windmove rect evil-vars
vibrant-ink-theme yasnippet dropdown-list help-mode vc-git uniquify sql flymake
rspec-mode org warnings ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-comint ob-keys ob ob-eval org-pcomplete org-list
org-faces org-compat org-entities org-macs cal-menu calendar cal-loaddefs
org-install markdown-mode noutline outline magit-bisect magit-key-mode magit
server esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc esh-groups
eshell esh-module esh-mode esh-util ediff-merg ediff-diff ediff-wind ediff-help
ediff-util ediff-mult ediff-init ediff ido iswitchb view diff-mode log-edit
pcvs-util add-log inf-ruby ruby-mode hl-line helm-ls-git helm-mode helm-files
image-dired tramp tramp-compat tramp-loaddefs shell pcomplete format-spec
dired-x dired-aux ffap helm-buffers helm-elscreen helm-tags helm-bookmark
helm-adaptative helm-info helm-net browse-url xml url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util url-parse
auth-source eieio byte-opt bytecomp byte-compile cconv gnus-util mm-util
mail-prsvr password-cache url-vars mailcap helm-plugin bookmark pp helm-locate
helm-help helm-grep derived helm-regexp grep helm-external helm-utils dired
compile comint ansi-color ring helm-match-plugin helm helm-config easymenu
feature-mode cucumber-mode thingatpt time-date paren undo-tree diff edmacro
kmacro autopair easy-mmode ace-jump-mode advice advice-preload help-fns cl-macs
gv cl cl-lib muse-autoloads tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese case-table
epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)