From 18400b68e49b242da55ca3a465ea496d26f47938 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Sun, 28 Jan 2024 18:22:36 -0800 Subject: 52510: document how ${ ... } et al. affect use of "private"; add index entries --- Doc/Zsh/expn.yo | 3 +++ Doc/Zsh/mod_private.yo | 3 +++ 2 files changed, 6 insertions(+) (limited to 'Doc') diff --git a/Doc/Zsh/expn.yo b/Doc/Zsh/expn.yo index e5506d469..2acfd08c9 100644 --- a/Doc/Zsh/expn.yo +++ b/Doc/Zsh/expn.yo @@ -1915,6 +1915,9 @@ from the final replacement in this case, and it is subject to filename generation in the same way as `tt($LPAR())...tt(RPAR())' but is em(not) split on tt(IFS) unless the tt(SH_WORD_SPLIT) option is set. +cindex(substitution, command, current shell) +cindex(substitution, command, non forking) +cindex(substitution, nofork) Substitutions of the form `tt(${|)var(param)tt(|)...tt(})' are similar, except that the substitution is replaced by the value of the parameter named by var(param). No implicit save or restore applies to var(param) diff --git a/Doc/Zsh/mod_private.yo b/Doc/Zsh/mod_private.yo index 184fa2be8..69a5f58be 100644 --- a/Doc/Zsh/mod_private.yo +++ b/Doc/Zsh/mod_private.yo @@ -84,6 +84,9 @@ created outside the local scope when it was not previously declared.) itemiz(An exported private remains in the environment of inner scopes but appears unset for the current shell in those scopes. Generally, exporting private parameters should be avoided.) +itemiz(Declaring a private parameter in a current shell command substitution +such as `tt(${ )...tt( })' limits the parameter to the scope of the command +substitution, just as if the parameter were declared in a function.) enditemize() Note that this differs from the static scope defined by compiled languages -- cgit 1.4.1