mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-05-20 11:31:28 +02:00
37591: 'alias -L': skip with a warning aliases with '=' in their LHS
This commit is contained in:
parent
152875ba03
commit
a8a00be442
3 changed files with 20 additions and 0 deletions
|
@ -1,5 +1,8 @@
|
|||
2016-01-13 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||
|
||||
* 37591: Src/hashtable.c, Test/A02alias.ztst: 37591: 'alias -L':
|
||||
skip with a warning aliases with '=' in their LHS
|
||||
|
||||
* 37550: Completion/BSD/Command/_cu: _cu: Support Linux
|
||||
line-device names; fail gracefully on OSes matching no known
|
||||
line-device name pattern.
|
||||
|
|
|
@ -1276,6 +1276,15 @@ printaliasnode(HashNode hn, int printflags)
|
|||
}
|
||||
|
||||
if (printflags & PRINT_LIST) {
|
||||
/* Fast fail on unrepresentable values. */
|
||||
if (strchr(a->node.nam, '=')) {
|
||||
zwarn("invalid alias '%s' encountered while printing aliases",
|
||||
a->node.nam);
|
||||
/* ### TODO: Return an error status to the C caller */
|
||||
return;
|
||||
}
|
||||
|
||||
/* Normal path. */
|
||||
printf("alias ");
|
||||
if (a->node.flags & ALIAS_SUFFIX)
|
||||
printf("-s ");
|
||||
|
|
|
@ -96,3 +96,11 @@
|
|||
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.
|
||||
|
|
Loading…
Reference in a new issue