summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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');
}