* lisp/eshell/*.el: Use lexical-binding.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 12 Sep 2013 20:15:53 +0000 (16:15 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 12 Sep 2013 20:15:53 +0000 (16:15 -0400)
* test/automated/eshell.el: Move from test/eshell.el.
(eshell-test/for-loop, eshell-test/for-name-loop): New tests.

Fixes: debbugs:15231

31 files changed:
lisp/ChangeLog
lisp/eshell/em-alias.el
lisp/eshell/em-banner.el
lisp/eshell/em-basic.el
lisp/eshell/em-cmpl.el
lisp/eshell/em-dirs.el
lisp/eshell/em-glob.el
lisp/eshell/em-hist.el
lisp/eshell/em-ls.el
lisp/eshell/em-pred.el
lisp/eshell/em-prompt.el
lisp/eshell/em-rebind.el
lisp/eshell/em-script.el
lisp/eshell/em-smart.el
lisp/eshell/em-term.el
lisp/eshell/em-tramp.el
lisp/eshell/em-unix.el
lisp/eshell/em-xtra.el
lisp/eshell/esh-arg.el
lisp/eshell/esh-cmd.el
lisp/eshell/esh-ext.el
lisp/eshell/esh-io.el
lisp/eshell/esh-mode.el
lisp/eshell/esh-module.el
lisp/eshell/esh-opt.el
lisp/eshell/esh-proc.el
lisp/eshell/esh-util.el
lisp/eshell/esh-var.el
lisp/eshell/eshell.el
test/ChangeLog
test/automated/eshell.el [moved from test/eshell.el with 94% similarity]

index 5cae587..b8fc9b3 100644 (file)
@@ -1,7 +1,10 @@
+2013-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eshell/*.el: Use lexical-binding (bug#15231).
+
 2013-09-12  Kenichi Handa  <handa@gnu.org>
 
-       * composite.el (compose-gstring-for-graphic): Handle enclosing
-       mark.
+       * composite.el (compose-gstring-for-graphic): Handle enclosing mark.
 
 2013-09-12  Glenn Morris  <rgm@gnu.org>
 
index 9a9cc4c..210d71b 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-alias.el --- creation and management of command aliases
+;;; em-alias.el --- creation and management of command aliases  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 8c3eebf..3e1970d 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-banner.el --- sample module that displays a login banner
+;;; em-banner.el --- sample module that displays a login banner  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index c440bd0..fb2eb85 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-basic.el --- basic shell builtin commands
+;;; em-basic.el --- basic shell builtin commands  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 7120f63..fe7a79c 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-cmpl.el --- completion using the TAB key
+;;; em-cmpl.el --- completion using the TAB key  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
@@ -297,19 +297,16 @@ to writing a completion function."
   (define-key eshell-mode-map [(meta tab)] 'eshell-complete-lisp-symbol)
   (define-key eshell-mode-map [(meta control ?i)] 'eshell-complete-lisp-symbol)
   (define-key eshell-command-map [(meta ?h)] 'eshell-completion-help)
-  (define-key eshell-command-map [tab] 'pcomplete-expand-and-complete)
   (define-key eshell-command-map [(control ?i)]
     'pcomplete-expand-and-complete)
   (define-key eshell-command-map [space] 'pcomplete-expand)
   (define-key eshell-command-map [? ] 'pcomplete-expand)
-  (define-key eshell-mode-map [tab] 'eshell-pcomplete)
-  (define-key eshell-mode-map [(control ?i)] 'eshell-pcomplete)
+  (define-key eshell-mode-map [(control ?i)] 'pcomplete)
   (add-hook 'completion-at-point-functions
             #'pcomplete-completions-at-point nil t)
   ;; jww (1999-10-19): Will this work on anything but X?
-  (if (featurep 'xemacs)
-      (define-key eshell-mode-map [iso-left-tab] 'pcomplete-reverse)
-    (define-key eshell-mode-map [backtab] 'pcomplete-reverse))
+  (define-key eshell-mode-map (if (featurep 'xemacs) [iso-left-tab] [backtab])
+    'pcomplete-reverse)
   (define-key eshell-mode-map [(meta ??)] 'pcomplete-list))
 
 (defun eshell-completion-command-name ()
@@ -458,16 +455,7 @@ to writing a completion function."
                        (all-completions filename obarray 'functionp))
                   completions)))))))
 
-(defun eshell-pcomplete (&optional interactively)
-  "Eshell wrapper for `pcomplete'."
-  (interactive "p")
-  ;; Pretend to be pcomplete so that cycling works (bug#13293).
-  (setq this-command 'pcomplete)
-  (condition-case nil
-      (if interactively
-         (call-interactively 'pcomplete)
-       (pcomplete))
-    (text-read-only (completion-at-point)))) ; Workaround for bug#12838.
+(define-obsolete-function-alias 'eshell-pcomplete 'completion-at-point)
 
 (provide 'em-cmpl)
 
index e8fbe05..2cfd14b 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-dirs.el --- directory navigation commands
+;;; em-dirs.el --- directory navigation commands  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index b5ca811..596547c 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-glob.el --- extended file name globbing
+;;; em-glob.el --- extended file name globbing  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 694fe71..8e56de2 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-hist.el --- history list management
+;;; em-hist.el --- history list management  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 3dee1ad..0e10d98 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-ls.el --- implementation of ls in Lisp
+;;; em-ls.el --- implementation of ls in Lisp  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 14d3020..f7d7605 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-pred.el --- argument predicates and modifiers (ala zsh)
+;;; em-pred.el --- argument predicates and modifiers (ala zsh)  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 1873112..9b9c109 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-prompt.el --- command prompts
+;;; em-prompt.el --- command prompts  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index a526d59..378a57b 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-rebind.el --- rebind keys when point is at current input
+;;; em-rebind.el --- rebind keys when point is at current input  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index b073928..1a19698 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-script.el --- Eshell script files
+;;; em-script.el --- Eshell script files  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index aa9038a..e6fa463 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-smart.el --- smart display of output
+;;; em-smart.el --- smart display of output  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 2932f44..71329f0 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-term.el --- running visual commands
+;;; em-term.el --- running visual commands  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index fb816b7..bb2f440 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-tramp.el --- Eshell features that require TRAMP
+;;; em-tramp.el --- Eshell features that require TRAMP  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index b9b1c16..52d2b4d 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-unix.el --- UNIX command aliases
+;;; em-unix.el --- UNIX command aliases  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index c4cab52..c9d9d5b 100644 (file)
@@ -1,4 +1,4 @@
-;;; em-xtra.el --- extra alias functions
+;;; em-xtra.el --- extra alias functions  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index e3a12d5..f791ad6 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-arg.el --- argument processing
+;;; esh-arg.el --- argument processing  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index c292298..cc4fdd1 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-cmd.el --- command invocation
+;;; esh-cmd.el --- command invocation  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 474e536..8b312a2 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-ext.el --- commands external to Eshell
+;;; esh-ext.el --- commands external to Eshell  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 4edb47e..f620890 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-io.el --- I/O management
+;;; esh-io.el --- I/O management  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 54a3642..1a80e38 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-mode.el --- user interface
+;;; esh-mode.el --- user interface  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 5008ef7..181d08f 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-module.el --- Eshell modules
+;;; esh-module.el --- Eshell modules  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2000, 2002-2013 Free Software Foundation, Inc.
 
index c62cbc7..e9252cb 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-opt.el --- command options processing
+;;; esh-opt.el --- command options processing  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 171d70c..e77287c 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-proc.el --- process management
+;;; esh-proc.el --- process management  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 968d1eb..cac46ea 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-util.el --- general utilities
+;;; esh-util.el --- general utilities  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 75c36a6..f68b65d 100644 (file)
@@ -1,4 +1,4 @@
-;;; esh-var.el --- handling of variables
+;;; esh-var.el --- handling of variables  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index e3f8f0d..47078d1 100644 (file)
@@ -1,4 +1,4 @@
-;;; eshell.el --- the Emacs command shell
+;;; eshell.el --- the Emacs command shell  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
index 7b39097..3e42e18 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * automated/eshell.el: Rename from eshell.el.
+       (eshell-test/for-loop, eshell-test/for-name-loop): New tests (bug#15231).
+
 2013-09-01  Glenn Morris  <rgm@gnu.org>
 
        * automated/Makefile.in (setwins): Avoid leading space in $wins.
 2013-07-05  Michael Albinus  <michael.albinus@gmx.de>
 
        * automated/file-notify-tests.el
-       (file-notify-test-remote-temporary-file-directory): Use
-       `null-device' on w32.
+       (file-notify-test-remote-temporary-file-directory):
+       Use `null-device' on w32.
        (file-notify--test-tmpfile, file-notify--test-tmpfile1)
        (file-notify--test-results, file-notify--test-event)
        (file-notify--deftest-remote, file-notify--event-test)
        (file-notify--test-event-handler)
-       (file-notify--test-make-temp-name): Renamed, in order to mark them
+       (file-notify--test-make-temp-name): Rename, in order to mark them
        internal.
        (tramp-message-show-message, tramp-read-passwd): Tweak them for
        better fitting in noninteractive tests.
-       (file-notify-test00-availability): Renamed from `file-notify-test0'.
-       (file-notify-test01-add-watch): Renamed from `file-notify-test1'.
+       (file-notify-test00-availability): Rename from `file-notify-test0'.
+       (file-notify-test01-add-watch): Rename from `file-notify-test1'.
        Use `temporary-file-directory '.
        (file-notify-test01-add-watch-remote): New test.
-       (file-notify-test02-events): Renamed from `file-notify-test2'.
-       (file-notify-test02-events-remote): Renamed from `file-notify-test3'.
-       (file-notify-test03-autorevert): Renamed from
+       (file-notify-test02-events): Rename from `file-notify-test2'.
+       (file-notify-test02-events-remote): Rename from `file-notify-test3'.
+       (file-notify-test03-autorevert): Rename from
        `file-notify-test4'.  Use timeouts.
-       (file-notify-test03-autorevert-remote): Renamed from
+       (file-notify-test03-autorevert-remote): Rename from
        `file-notify-test5'.
 
 2013-07-04  Michael Albinus  <michael.albinus@gmx.de>
 2013-06-28  Kenichi Handa  <handa@gnu.org>
 
        * automated/decoder-tests.el (decoder-tests-gen-file): New arg FILE.
-       (decoder-tests-ao-gen-file): Renamed from decoder-tests-filename.
+       (decoder-tests-ao-gen-file): Rename from decoder-tests-filename.
        Callers changed.
        (decoder-tests-filename): New function.
        (decoder-tests-prefer-utf-8-read)
similarity index 94%
rename from test/eshell.el
rename to test/automated/eshell.el
index 126a472..a7df294 100644 (file)
   "Test `eshell-command-result' with an elisp command."
   (should (equal (eshell-command-result "(+ 1 2)") 3)))
 
+(ert-deftest eshell-test/for-loop ()
+  "Test `eshell-command-result' with an elisp command."
+  (should (equal (eshell-command-result "for foo in 5 { echo $foo }") 5)))
+
+(ert-deftest eshell-test/for-name-loop () ;Bug#15231
+  "Test `eshell-command-result' with an elisp command."
+  (should (equal (eshell-command-result "for name in 3 { echo $name }") 3)))
+
 (ert-deftest eshell-test/lisp-command-args ()
   "Test `eshell-command-result' with elisp and trailing args.
 Test that trailing arguments outside the S-expression are