about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-08-29 17:21:39 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-08-29 17:21:39 +0000
commita6de37ec2bd96c8a5c81999c71a6303dbe5b39f6 (patch)
tree18df3bfd8f5ed375c27e83843fa431d09ce5c6c4
parent557baa173c6be93e475d6e25d3fb0c80164d6e87 (diff)
downloadzsh-a6de37ec2bd96c8a5c81999c71a6303dbe5b39f6.tar.gz
zsh-a6de37ec2bd96c8a5c81999c71a6303dbe5b39f6.tar.xz
zsh-a6de37ec2bd96c8a5c81999c71a6303dbe5b39f6.zip
29744: don't mess up non '-A' cases in read -E fix
-rw-r--r--ChangeLog7
-rw-r--r--Src/builtin.c9
2 files changed, 14 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c800d16b..aa410939e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-29  Peter Stephenson  <p.w.stephenson@ntlworld.com>
+
+	* 29744: Src/builtin.c: don't mess up non '-A' case in
+	29731.
+
 2011-08-29  Barton E. Schaefer  <schaefer@brasslantern.com>
 
 	* users/16291: Functions/Prompts/prompt_bart_setup: revert to
@@ -15349,5 +15354,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5449 $
+* $Revision: 1.5450 $
 *****************************************************
diff --git a/Src/builtin.c b/Src/builtin.c
index 175607644..71fc04ce1 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -5549,7 +5549,14 @@ bin_read(char *name, char **args, Options ops, UNUSED(int func))
 	*bptr = '\0';
 #endif
 	/* dispose of word appropriately */
-	if (OPT_ISSET(ops,'e')) {
+	if (OPT_ISSET(ops,'e') ||
+	    /*
+	     * When we're doing an array assignment, we'll
+	     * handle echoing at that point.  In all other
+	     * cases (including -A with no assignment)
+	     * we'll do it here.
+	     */
+	    (OPT_ISSET(ops,'E') && !OPT_ISSET(ops,'A'))) {
 	    zputs(buf, stdout);
 	    putchar('\n');
 	}