From ae5e4c483a4700fed927f546eebf06d1b1e92057 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 12 Sep 2013 16:15:53 -0400 Subject: [PATCH] * lisp/eshell/*.el: Use lexical-binding. * test/automated/eshell.el: Move from test/eshell.el. (eshell-test/for-loop, eshell-test/for-name-loop): New tests. Fixes: debbugs:15231 --- lisp/ChangeLog | 7 +++++-- lisp/eshell/em-alias.el | 2 +- lisp/eshell/em-banner.el | 2 +- lisp/eshell/em-basic.el | 2 +- lisp/eshell/em-cmpl.el | 22 +++++----------------- lisp/eshell/em-dirs.el | 2 +- lisp/eshell/em-glob.el | 2 +- lisp/eshell/em-hist.el | 2 +- lisp/eshell/em-ls.el | 2 +- lisp/eshell/em-pred.el | 2 +- lisp/eshell/em-prompt.el | 2 +- lisp/eshell/em-rebind.el | 2 +- lisp/eshell/em-script.el | 2 +- lisp/eshell/em-smart.el | 2 +- lisp/eshell/em-term.el | 2 +- lisp/eshell/em-tramp.el | 2 +- lisp/eshell/em-unix.el | 2 +- lisp/eshell/em-xtra.el | 2 +- lisp/eshell/esh-arg.el | 2 +- lisp/eshell/esh-cmd.el | 2 +- lisp/eshell/esh-ext.el | 2 +- lisp/eshell/esh-io.el | 2 +- lisp/eshell/esh-mode.el | 2 +- lisp/eshell/esh-module.el | 2 +- lisp/eshell/esh-opt.el | 2 +- lisp/eshell/esh-proc.el | 2 +- lisp/eshell/esh-util.el | 2 +- lisp/eshell/esh-var.el | 2 +- lisp/eshell/eshell.el | 2 +- test/ChangeLog | 25 +++++++++++++++---------- test/{ => automated}/eshell.el | 8 ++++++++ 31 files changed, 60 insertions(+), 56 deletions(-) rename test/{ => automated}/eshell.el (94%) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5cae5873f92..b8fc9b32f98 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,10 @@ +2013-09-12 Stefan Monnier + + * eshell/*.el: Use lexical-binding (bug#15231). + 2013-09-12 Kenichi Handa - * composite.el (compose-gstring-for-graphic): Handle enclosing - mark. + * composite.el (compose-gstring-for-graphic): Handle enclosing mark. 2013-09-12 Glenn Morris diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el index 9a9cc4cd567..210d71be9c6 100644 --- a/lisp/eshell/em-alias.el +++ b/lisp/eshell/em-alias.el @@ -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. diff --git a/lisp/eshell/em-banner.el b/lisp/eshell/em-banner.el index 8c3eebf3510..3e1970d97da 100644 --- a/lisp/eshell/em-banner.el +++ b/lisp/eshell/em-banner.el @@ -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. diff --git a/lisp/eshell/em-basic.el b/lisp/eshell/em-basic.el index c440bd0a928..fb2eb85c8e9 100644 --- a/lisp/eshell/em-basic.el +++ b/lisp/eshell/em-basic.el @@ -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. diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index 7120f639a70..fe7a79cf952 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -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) diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el index e8fbe0518ac..2cfd14b5f60 100644 --- a/lisp/eshell/em-dirs.el +++ b/lisp/eshell/em-dirs.el @@ -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. diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index b5ca8119470..596547c3f5e 100644 --- a/lisp/eshell/em-glob.el +++ b/lisp/eshell/em-glob.el @@ -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. diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index 694fe71a95c..8e56de251a1 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -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. diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el index 3dee1adb58a..0e10d984f88 100644 --- a/lisp/eshell/em-ls.el +++ b/lisp/eshell/em-ls.el @@ -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. diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index 14d3020530f..f7d7605107f 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -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. diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el index 18731121c4e..9b9c1095277 100644 --- a/lisp/eshell/em-prompt.el +++ b/lisp/eshell/em-prompt.el @@ -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. diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el index a526d590307..378a57b0687 100644 --- a/lisp/eshell/em-rebind.el +++ b/lisp/eshell/em-rebind.el @@ -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. diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el index b073928738f..1a19698faa8 100644 --- a/lisp/eshell/em-script.el +++ b/lisp/eshell/em-script.el @@ -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. diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el index aa9038aafb9..e6fa463aec3 100644 --- a/lisp/eshell/em-smart.el +++ b/lisp/eshell/em-smart.el @@ -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. diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index 2932f443e4f..71329f083ee 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -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. diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el index fb816b76a7d..bb2f440313c 100644 --- a/lisp/eshell/em-tramp.el +++ b/lisp/eshell/em-tramp.el @@ -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. diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index b9b1c1635a5..52d2b4d2a2d 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el @@ -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. diff --git a/lisp/eshell/em-xtra.el b/lisp/eshell/em-xtra.el index c4cab522cf2..c9d9d5bfe2f 100644 --- a/lisp/eshell/em-xtra.el +++ b/lisp/eshell/em-xtra.el @@ -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. diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index e3a12d5ece5..f791ad66520 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -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. diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index c2922983ae2..cc4fdd15bda 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -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. diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el index 474e536de2e..8b312a2c25c 100644 --- a/lisp/eshell/esh-ext.el +++ b/lisp/eshell/esh-ext.el @@ -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. diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index 4edb47e4758..f620890ee6b 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -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. diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 54a36428d58..1a80e3894e1 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -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. diff --git a/lisp/eshell/esh-module.el b/lisp/eshell/esh-module.el index 5008ef705db..181d08f8a1d 100644 --- a/lisp/eshell/esh-module.el +++ b/lisp/eshell/esh-module.el @@ -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. diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el index c62cbc7e1dc..e9252cb540e 100644 --- a/lisp/eshell/esh-opt.el +++ b/lisp/eshell/esh-opt.el @@ -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. diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el index 171d70c0772..e77287c2f78 100644 --- a/lisp/eshell/esh-proc.el +++ b/lisp/eshell/esh-proc.el @@ -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. diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el index 968d1ebad79..cac46ea8d18 100644 --- a/lisp/eshell/esh-util.el +++ b/lisp/eshell/esh-util.el @@ -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. diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index 75c36a68544..f68b65dfd46 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -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. diff --git a/lisp/eshell/eshell.el b/lisp/eshell/eshell.el index e3f8f0d11bc..47078d142d5 100644 --- a/lisp/eshell/eshell.el +++ b/lisp/eshell/eshell.el @@ -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. diff --git a/test/ChangeLog b/test/ChangeLog index 7b39097d3b5..3e42e18b2b4 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2013-09-12 Stefan Monnier + + * 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 * automated/Makefile.in (setwins): Avoid leading space in $wins. @@ -164,25 +169,25 @@ 2013-07-05 Michael Albinus * 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 @@ -192,7 +197,7 @@ 2013-06-28 Kenichi Handa * 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) diff --git a/test/eshell.el b/test/automated/eshell.el similarity index 94% rename from test/eshell.el rename to test/automated/eshell.el index 126a47220c4..a7df2945424 100644 --- a/test/eshell.el +++ b/test/automated/eshell.el @@ -62,6 +62,14 @@ "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 -- 2.39.2