diff options
| author | Noam Postavsky | 2017-09-29 21:00:10 -0400 |
|---|---|---|
| committer | Noam Postavsky | 2017-09-30 20:01:33 -0400 |
| commit | ba9139c501ed8220980e898f127e293e8f263ea1 (patch) | |
| tree | e37da419afa420a660c37cf67ca5fd2a705cacd2 | |
| parent | 43fac3beae75a38cf758ec94039c0d7a4edc9399 (diff) | |
| download | emacs-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.texi | 9 | ||||
| -rw-r--r-- | lisp/eshell/em-alias.el | 6 |
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 | ||
| 432 | Aliases are commands that expand to a longer input line. For example, | 432 | Aliases 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 |
| 434 | with the command invocation @samp{alias ll ls -l}; with this defined, | 434 | with the command invocation @kbd{alias ll 'ls -l $*'}; with this defined, |
| 435 | running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}. | 435 | running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}. |
| 436 | Aliases defined (or deleted) by the @command{alias} command are | 436 | Aliases defined (or deleted) by the @command{alias} command are |
| 437 | automatically written to the file named by @code{eshell-aliases-file}, | 437 | automatically written to the file named by @code{eshell-aliases-file}, |
| 438 | which you can also edit directly (although you will have to manually | 438 | which you can also edit directly (although you will have to manually |
| 439 | reload it). | 439 | reload it). |
| 440 | 440 | ||
| 441 | Note that unlike aliases in Bash, arguments must be handled | ||
| 442 | explicitly. Typically the alias definition would end in @samp{$*} to | ||
| 443 | pass 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 | ||
| 446 | create 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. |