From fbec213cc5ab0d0316c98bd9ddb883bae3bbdbc5 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Thu, 23 Nov 2023 13:23:55 -0800 Subject: 52325: Clarify doc for edge cases of named references and nofork substitution Unposted whitespace change avoids a parse error in ${ ... } with comments. --- Doc/Zsh/params.yo | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Doc/Zsh/params.yo') diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo index 5653b3bc9..68df4a16f 100644 --- a/Doc/Zsh/params.yo +++ b/Doc/Zsh/params.yo @@ -748,9 +748,13 @@ vindex(argv) item(tt(argv) )( Same as tt(*). Assigning to tt(argv) changes the local positional parameters, but tt(argv) is em(not) itself a local parameter. -Deleting tt(argv) with tt(unset) in any function deletes it everywhere, -although only the innermost positional parameter array is deleted (so -tt(*) and tt(@) in other scopes are not affected). +Deleting tt(argv) with tt(unset) in any function deletes it everywhere. +This can be avoided by declaring `tt(local +h argv)' before unsetting. +Even when not so declared, only the innermost positional parameter +array is deleted (so tt(*) and tt(@) in other scopes are not affected). + +A named reference to tt(argv) em(does not) permit a called function to +access the positional parameters of its caller. ) vindex(@) item(tt(@) )( -- cgit 1.4.1