mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-04 06:14:50 +01:00
954cdd77d7
This was problematic if the expansion landed you back in command position. Delay marking the alias as out of use until the text that caused the expansion is finished.
112 lines
2.5 KiB
Text
112 lines
2.5 KiB
Text
# To get the "command not found" message when aliasing is suppressed
|
|
# we need, er, a command that isn't found.
|
|
# The other aliases are only ever used as aliases.
|
|
|
|
%prep
|
|
alias ThisCommandDefinitelyDoesNotExist=echo
|
|
|
|
alias -g bar=echo
|
|
|
|
alias '\bar=echo'
|
|
|
|
%test
|
|
ThisCommandDefinitelyDoesNotExist ThisCommandDefinitelyDoesNotExist
|
|
0:Basic aliasing
|
|
>ThisCommandDefinitelyDoesNotExist
|
|
|
|
bar bar
|
|
0:Global aliasing
|
|
>echo
|
|
|
|
\ThisCommandDefinitelyDoesNotExist ThisCommandDefinitelyDoesNotExist
|
|
127:Not aliasing
|
|
?(eval):1: command not found: ThisCommandDefinitelyDoesNotExist
|
|
|
|
\bar \bar
|
|
0:Aliasing with a backslash
|
|
>bar
|
|
|
|
(alias '!=echo This command has the argument'
|
|
eval 'print Without
|
|
! true'
|
|
setopt posixaliases
|
|
eval 'print With
|
|
! true')
|
|
1:POSIX_ALIASES option
|
|
>Without
|
|
>This command has the argument true
|
|
>With
|
|
|
|
print -u $ZTST_fd 'This test hangs the shell when it fails...'
|
|
alias cat='LC_ALL=C cat'
|
|
cat <(echo foo | cat)
|
|
0:Alias expansion works at the end of parsed strings
|
|
>foo
|
|
|
|
alias -g '&&=(){ return $?; } && '
|
|
alias not_the_print_command=print
|
|
eval 'print This is output
|
|
&& print And so is this
|
|
&& { print And this too; false; }
|
|
&& print But not this
|
|
&& print Nor this
|
|
true
|
|
&& not_the_print_command And aliases are expanded'
|
|
0:We can now alias special tokens. Woo hoo.
|
|
>This is output
|
|
>And so is this
|
|
>And this too
|
|
>And aliases are expanded
|
|
|
|
$ZTST_testdir/../Src/zsh -fis <<<'
|
|
unsetopt PROMPT_SP
|
|
PROMPT="" PS2="" PS3="" PS4="" RPS1="" RPS2=""
|
|
exec 2>&1
|
|
alias \{=echo
|
|
{ begin
|
|
{end
|
|
fc -l -2' 2>/dev/null
|
|
0:Aliasing reserved tokens
|
|
>begin
|
|
>end
|
|
*>*5*{ begin
|
|
*>*6*{end
|
|
|
|
$ZTST_testdir/../Src/zsh -fis <<<'
|
|
unsetopt PROMPT_SP
|
|
PROMPT="" PS2="" PS3="" PS4="" RPS1="" RPS2=""
|
|
exec 2>&1
|
|
alias -g S=\"
|
|
echo S a string S "
|
|
fc -l -1' 2>/dev/null
|
|
0:Global aliasing quotes
|
|
> a string S
|
|
*>*5*echo S a string S "
|
|
# Note there is a trailing space on the "> a string S " line
|
|
|
|
(
|
|
unalias -a
|
|
alias
|
|
)
|
|
0:unalias -a
|
|
|
|
alias -s foo=print
|
|
type bar.foo; type -w bar.foo
|
|
unalias -as
|
|
0:unalias -as
|
|
>foo is a suffix alias for print
|
|
>foo: suffix alias
|
|
|
|
aliases[x=y]=z
|
|
alias -L | grep x=y
|
|
echo $pipestatus[1]
|
|
0:printing invalid aliases warns
|
|
>0
|
|
?(eval):2: invalid alias 'x=y' encountered while printing aliases
|
|
# Currently, 'alias -L' returns 0 in this case. Perhaps it should return 1.
|
|
|
|
alias -s mysuff='print -r "You said it.";'
|
|
eval 'thingummy.mysuff'
|
|
127:No endless loop with suffix alias in command position
|
|
>You said it.
|
|
?(eval):1: command not found: thingummy.mysuff
|