about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Doc/Zsh/expn.yo5
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index e4965b804..0f3c9402d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2023-09-23  Bart Schaefer  <schaefer@BartMAC2014.local>
+
+	* 52180: Doc/Zsh/expn.yo: clarify array behavior of ${|var|...}
+	and the REPLY parameter
+
 2023-09-22  Bart Schaefer  <schaefer@zsh.org>
 
 	* 52176: Src/subst.c: metafy return from ${ ... } substitution
diff --git a/Doc/Zsh/expn.yo b/Doc/Zsh/expn.yo
index 86a5f70c8..837a85db6 100644
--- a/Doc/Zsh/expn.yo
+++ b/Doc/Zsh/expn.yo
@@ -1915,8 +1915,9 @@ 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)
 except as noted for tt(REPLY), and var(param) should em(not) be declared
-within the command.  If var(param) names an array, array expansion rules
-apply.
+within the command.  If, after evaluating the expression, var(param)
+names an array, array expansion rules apply.  However, tt(REPLY) is
+always expanded in scalar context, even if assigned an array.
 
 A command enclosed in braces preceded by a dollar sign, and set off from
 the braces by whitespace, like `tt(${ )...tt( })', is replaced by its