mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-06-09 18:38:05 +02:00
26675: add POSIX_ALIASES option
This commit is contained in:
parent
919f7b12ad
commit
8e25f4449f
6 changed files with 58 additions and 3 deletions
|
@ -1,5 +1,8 @@
|
||||||
2009-03-03 Peter Stephenson <pws@csr.com>
|
2009-03-03 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
|
* Doc/Zsh/options.yo, Src/lex.c, Src/options.c, Src/zsh.h,
|
||||||
|
Test/A02alias.ztst: add POSIX_ALIASES option.
|
||||||
|
|
||||||
* 26671: Completion/Zsh/Command/_zattr, Doc/Zsh/.distfiles,
|
* 26671: Completion/Zsh/Command/_zattr, Doc/Zsh/.distfiles,
|
||||||
Src/Modules/attr.c: various minor tidy-ups (tidies up?) for
|
Src/Modules/attr.c: various minor tidy-ups (tidies up?) for
|
||||||
26670.
|
26670.
|
||||||
|
@ -11308,5 +11311,5 @@
|
||||||
|
|
||||||
*****************************************************
|
*****************************************************
|
||||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||||
* $Revision: 1.4593 $
|
* $Revision: 1.4594 $
|
||||||
*****************************************************
|
*****************************************************
|
||||||
|
|
|
@ -1708,6 +1708,43 @@ is not and will replace the first element of the array.
|
||||||
This option is for compatibility with older versions of the shell and
|
This option is for compatibility with older versions of the shell and
|
||||||
is not recommended in new code.
|
is not recommended in new code.
|
||||||
)
|
)
|
||||||
|
pindex(POSIX_ALIASES)
|
||||||
|
pindex(NO_POSIX_ALIASES)
|
||||||
|
pindex(POSIXALIASES)
|
||||||
|
pindex(NOPOSIXALIASES)
|
||||||
|
item(tt(POSIX_ALIASES) <K> <S>)(
|
||||||
|
When this option is set, reserved words are not candidates for
|
||||||
|
alias expansion: it is still possible to declare any of them as an alias,
|
||||||
|
but the alias will never be expanded. Reserved words are
|
||||||
|
tt(!),
|
||||||
|
tt([[),
|
||||||
|
tt({),
|
||||||
|
tt(}),
|
||||||
|
tt(case),
|
||||||
|
tt(coproc),
|
||||||
|
tt(do),
|
||||||
|
tt(done),
|
||||||
|
tt(elif),
|
||||||
|
tt(else),
|
||||||
|
tt(end),
|
||||||
|
tt(esac),
|
||||||
|
tt(fi),
|
||||||
|
tt(for),
|
||||||
|
tt(foreach),
|
||||||
|
tt(function),
|
||||||
|
tt(if),
|
||||||
|
tt(nocorrect),
|
||||||
|
tt(repeat),
|
||||||
|
tt(select),
|
||||||
|
tt(then),
|
||||||
|
tt(time),
|
||||||
|
tt(until),
|
||||||
|
tt(while).
|
||||||
|
|
||||||
|
Alias expansion takes place while text is being read; hence when this
|
||||||
|
option is set it does not take effect until the end of any function or
|
||||||
|
other piece of shell code evaluated as one unit.
|
||||||
|
)
|
||||||
pindex(POSIX_BUILTINS)
|
pindex(POSIX_BUILTINS)
|
||||||
pindex(NO_POSIX_BUILTINS)
|
pindex(NO_POSIX_BUILTINS)
|
||||||
pindex(POSIXBUILTINS)
|
pindex(POSIXBUILTINS)
|
||||||
|
|
|
@ -1748,9 +1748,11 @@ exalias(void)
|
||||||
|
|
||||||
if (tok == STRING) {
|
if (tok == STRING) {
|
||||||
/* Check for an alias */
|
/* Check for an alias */
|
||||||
if (!noaliases && isset(ALIASESOPT)) {
|
if (!noaliases && isset(ALIASESOPT) &&
|
||||||
|
(!isset(POSIXALIASES) ||
|
||||||
|
!reswdtab->getnode(reswdtab, zshlextext))) {
|
||||||
char *suf;
|
char *suf;
|
||||||
|
|
||||||
an = (Alias) aliastab->getnode(aliastab, zshlextext);
|
an = (Alias) aliastab->getnode(aliastab, zshlextext);
|
||||||
if (an && !an->inuse &&
|
if (an && !an->inuse &&
|
||||||
((an->node.flags & ALIAS_GLOBAL) || incmdpos || inalmore)) {
|
((an->node.flags & ALIAS_GLOBAL) || incmdpos || inalmore)) {
|
||||||
|
|
|
@ -198,6 +198,7 @@ static struct optname optns[] = {
|
||||||
{{NULL, "octalzeroes", OPT_EMULATE|OPT_SH}, OCTALZEROES},
|
{{NULL, "octalzeroes", OPT_EMULATE|OPT_SH}, OCTALZEROES},
|
||||||
{{NULL, "overstrike", 0}, OVERSTRIKE},
|
{{NULL, "overstrike", 0}, OVERSTRIKE},
|
||||||
{{NULL, "pathdirs", OPT_EMULATE}, PATHDIRS},
|
{{NULL, "pathdirs", OPT_EMULATE}, PATHDIRS},
|
||||||
|
{{NULL, "posixaliases", OPT_EMULATE|OPT_BOURNE}, POSIXALIASES},
|
||||||
{{NULL, "posixbuiltins", OPT_EMULATE|OPT_BOURNE}, POSIXBUILTINS},
|
{{NULL, "posixbuiltins", OPT_EMULATE|OPT_BOURNE}, POSIXBUILTINS},
|
||||||
{{NULL, "posixidentifiers", OPT_EMULATE|OPT_BOURNE}, POSIXIDENTIFIERS},
|
{{NULL, "posixidentifiers", OPT_EMULATE|OPT_BOURNE}, POSIXIDENTIFIERS},
|
||||||
{{NULL, "printeightbit", 0}, PRINTEIGHTBIT},
|
{{NULL, "printeightbit", 0}, PRINTEIGHTBIT},
|
||||||
|
|
|
@ -1933,6 +1933,7 @@ enum {
|
||||||
OCTALZEROES,
|
OCTALZEROES,
|
||||||
OVERSTRIKE,
|
OVERSTRIKE,
|
||||||
PATHDIRS,
|
PATHDIRS,
|
||||||
|
POSIXALIASES,
|
||||||
POSIXBUILTINS,
|
POSIXBUILTINS,
|
||||||
POSIXIDENTIFIERS,
|
POSIXIDENTIFIERS,
|
||||||
PRINTEIGHTBIT,
|
PRINTEIGHTBIT,
|
||||||
|
|
|
@ -25,3 +25,14 @@
|
||||||
\bar \bar
|
\bar \bar
|
||||||
0:Aliasing with a backslash
|
0:Aliasing with a backslash
|
||||||
>bar
|
>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
|
||||||
|
|
Loading…
Reference in a new issue