Ondrej Oprala 4b638e5
--- bash-4.3/parse.y	2014-05-29 14:46:09.545543384 +0200
Ondrej Oprala 4b638e5
+++ bash-4.3/parse.y	2014-05-29 14:48:40.758626213 +0200
Ondrej Oprala 4b638e5
@@ -3858,6 +3858,8 @@ xparse_dolparen (base, string, indp, fla
Ondrej Oprala 4b638e5
   save_parser_state (&ps);
Ondrej Oprala 4b638e5
   save_input_line_state (&ls);
Ondrej Oprala 4b638e5
   orig_eof_token = shell_eof_token;
Ondrej Oprala 4b638e5
+  /* avoid echoing every substitution again */
Ondrej Oprala 4b638e5
+  echo_input_at_read = 0;
Ondrej Oprala 4b638e5
 
Ondrej Oprala 4b638e5
   /*(*/
Ondrej Oprala 4b638e5
   parser_state |= PST_CMDSUBST|PST_EOFTOKEN;	/* allow instant ')' */ /*(*/
Ondrej Oprala 4b638e5
--- bash-4.3/subst.c	2014-05-29 16:04:35.802784549 +0200
Ondrej Oprala 4b638e5
+++ bash-4.3/subst.c	2014-05-29 16:08:25.021942676 +0200
Ondrej Oprala 4b638e5
@@ -7103,6 +7103,7 @@ param_expand (string, sindex, quoted, ex
Ondrej Oprala 4b638e5
   WORD_LIST *list;
Ondrej Oprala 4b638e5
   WORD_DESC *tdesc, *ret;
Ondrej Oprala 4b638e5
   int tflag;
Ondrej Oprala 4b638e5
+  int old_echo_input;
Ondrej Oprala 4b638e5
 
Ondrej Oprala 4b638e5
   zindex = *sindex;
Ondrej Oprala 4b638e5
   c = string[++zindex];
Ondrej Oprala 4b638e5
@@ -7401,6 +7402,9 @@ arithsub:
Ondrej Oprala 4b638e5
 	}
Ondrej Oprala 4b638e5
 
Ondrej Oprala 4b638e5
 comsub:
Ondrej Oprala 4b638e5
+      old_echo_input = echo_input_at_read;
Ondrej Oprala 4b638e5
+      /* avoid echoing every substitution again */
Ondrej Oprala 4b638e5
+      echo_input_at_read = 0;
Ondrej Oprala 4b638e5
       if (pflags & PF_NOCOMSUB)
Ondrej Oprala 4b638e5
 	/* we need zindex+1 because string[zindex] == RPAREN */
Ondrej Oprala 4b638e5
 	temp1 = substring (string, *sindex, zindex+1);
Ondrej Oprala 4b638e5
@@ -7413,6 +7417,7 @@ comsub:
Ondrej Oprala 4b638e5
 	}
Ondrej Oprala 4b638e5
       FREE (temp);
Ondrej Oprala 4b638e5
       temp = temp1;
Ondrej Oprala 4b638e5
+      echo_input_at_read = old_echo_input;
Ondrej Oprala 4b638e5
       break;
Ondrej Oprala 4b638e5
 
Ondrej Oprala 4b638e5
     /* Do POSIX.2d9-style arithmetic substitution.  This will probably go