mirror of git://git.code.sf.net/p/zsh/code
35054: readonly -p + POSIXBUILTINS fix.
Now displays unset variables marekd readonly
This commit is contained in:
parent
13c6d38e4b
commit
60c6bcdeae
|
@ -1,5 +1,8 @@
|
|||
2015-05-07 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* 35054: Src/params.c, Test/B02typeset.ztst: "readonly -p"
|
||||
displays unset readonly variables with POSIXBUILTINS.
|
||||
|
||||
* Eric Cook: 35052: Completion/BSD/Command/_bsdconfig,
|
||||
Completion/BSD/Command/_bsdinstall,
|
||||
Completion/BSD/Command/_jexec, Completion/BSD/Command/_jls:
|
||||
|
|
15
Src/params.c
15
Src/params.c
|
@ -5039,8 +5039,19 @@ printparamnode(HashNode hn, int printflags)
|
|||
Param p = (Param) hn;
|
||||
char *t, **u;
|
||||
|
||||
if (p->node.flags & PM_UNSET)
|
||||
return;
|
||||
if (p->node.flags & PM_UNSET) {
|
||||
if (isset(POSIXBUILTINS) && (p->node.flags & PM_READONLY) &&
|
||||
(printflags & PRINT_TYPESET))
|
||||
{
|
||||
/*
|
||||
* Special POSIX rules: show the parameter as readonly
|
||||
* even though it's unset, but with no value.
|
||||
*/
|
||||
printflags |= PRINT_NAMEONLY;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
if (printflags & PRINT_TYPESET)
|
||||
printf("typeset ");
|
||||
|
|
|
@ -475,13 +475,15 @@
|
|||
print ${+pbro} >&2
|
||||
(typeset pbro=3)
|
||||
(pbro=4)
|
||||
readonly -p | grep pbro >&2 # shows up as "readonly" although unset
|
||||
typeset -r pbro # idempotent (no error)...
|
||||
print ${+pbro} >&2 # ...so still readonly...
|
||||
typeset +r pbro # ...can't turn it off
|
||||
)
|
||||
1:Readonly with POSIX_BUILTINS
|
||||
1:readonly with POSIX_BUILTINS
|
||||
?0
|
||||
?(eval):5: read-only variable: pbro
|
||||
?(eval):6: read-only variable: pbro
|
||||
?typeset -r pbro
|
||||
?0
|
||||
?(eval):9: read-only variable: pbro
|
||||
?(eval):10: read-only variable: pbro
|
||||
|
|
Loading…
Reference in New Issue