aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoam Postavsky2017-09-29 21:00:10 -0400
committerNoam Postavsky2017-09-30 20:01:33 -0400
commitba9139c501ed8220980e898f127e293e8f263ea1 (patch)
treee37da419afa420a660c37cf67ca5fd2a705cacd2
parent43fac3beae75a38cf758ec94039c0d7a4edc9399 (diff)
downloademacs-ba9139c501ed8220980e898f127e293e8f263ea1.tar.gz
emacs-ba9139c501ed8220980e898f127e293e8f263ea1.zip
Revert "Don't lose arguments to eshell aliases (Bug#27954)"
It broke the established argument handling methods provided by eshell aliases (Bug#28568). * doc/misc/eshell.texi (Aliases): Fix example, call out use of arguments in aliases. * lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias): Ignore ARGS.
-rw-r--r--doc/misc/eshell.texi9
-rw-r--r--lisp/eshell/em-alias.el6
2 files changed, 11 insertions, 4 deletions
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 8963826c4cc..8a607ef7702 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -431,13 +431,20 @@ would in an Elisp program. Eshell provides a command version of
431 431
432Aliases are commands that expand to a longer input line. For example, 432Aliases are commands that expand to a longer input line. For example,
433@command{ll} is a common alias for @code{ls -l}, and would be defined 433@command{ll} is a common alias for @code{ls -l}, and would be defined
434with the command invocation @samp{alias ll ls -l}; with this defined, 434with the command invocation @kbd{alias ll 'ls -l $*'}; with this defined,
435running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}. 435running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}.
436Aliases defined (or deleted) by the @command{alias} command are 436Aliases defined (or deleted) by the @command{alias} command are
437automatically written to the file named by @code{eshell-aliases-file}, 437automatically written to the file named by @code{eshell-aliases-file},
438which you can also edit directly (although you will have to manually 438which you can also edit directly (although you will have to manually
439reload it). 439reload it).
440 440
441Note that unlike aliases in Bash, arguments must be handled
442explicitly. Typically the alias definition would end in @samp{$*} to
443pass all arguments along. More selective use of arguments via
444@samp{$1}, @samp{$2}, etc., is also possible. For example,
445@kbd{alias mcd 'mkdir $1 && cd $1'} would cause @kbd{mcd foo} to
446create and switch to a directory called @samp{foo}.
447
441@node History 448@node History
442@section History 449@section History
443@cmindex history 450@cmindex history
diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el
index f951efa65d6..742234574f3 100644
--- a/lisp/eshell/em-alias.el
+++ b/lisp/eshell/em-alias.el
@@ -214,8 +214,8 @@ file named by `eshell-aliases-file'.")
214 214
215(defvar eshell-prevent-alias-expansion nil) 215(defvar eshell-prevent-alias-expansion nil)
216 216
217(defun eshell-maybe-replace-by-alias (command args) 217(defun eshell-maybe-replace-by-alias (command _args)
218 "If COMMAND has an alias definition, call that instead using ARGS." 218 "Call COMMAND's alias definition, if it exists."
219 (unless (and eshell-prevent-alias-expansion 219 (unless (and eshell-prevent-alias-expansion
220 (member command eshell-prevent-alias-expansion)) 220 (member command eshell-prevent-alias-expansion))
221 (let ((alias (eshell-lookup-alias command))) 221 (let ((alias (eshell-lookup-alias command)))
@@ -225,7 +225,7 @@ file named by `eshell-aliases-file'.")
225 (eshell-command-arguments ',eshell-last-arguments) 225 (eshell-command-arguments ',eshell-last-arguments)
226 (eshell-prevent-alias-expansion 226 (eshell-prevent-alias-expansion
227 ',(cons command eshell-prevent-alias-expansion))) 227 ',(cons command eshell-prevent-alias-expansion)))
228 ,(eshell-parse-command (nth 1 alias) args))))))) 228 ,(eshell-parse-command (nth 1 alias))))))))
229 229
230(defun eshell-alias-completions (name) 230(defun eshell-alias-completions (name)
231 "Find all possible completions for NAME. 231 "Find all possible completions for NAME.