psss / rpms / bash

Forked from rpms/bash 6 years ago
Clone
498f26e
diff --git a/parse.y b/parse.y
498f26e
index 30425a5..85f1c4f 100644
498f26e
--- a/parse.y
498f26e
+++ b/parse.y
498f26e
@@ -4228,6 +4228,8 @@ xparse_dolparen (base, string, indp, flags)
Ondrej Oprala d0b8ec0
   save_parser_state (&ps);
Ondrej Oprala d0b8ec0
   save_input_line_state (&ls);
Ondrej Oprala d0b8ec0
   orig_eof_token = shell_eof_token;
Ondrej Oprala d0b8ec0
+  /* avoid echoing every substitution again */
Ondrej Oprala d0b8ec0
+  echo_input_at_read = 0;
Ondrej Oprala d0b8ec0
 
Ondrej Oprala d0b8ec0
   /*(*/
Ondrej Oprala d0b8ec0
   parser_state |= PST_CMDSUBST|PST_EOFTOKEN;	/* allow instant ')' */ /*(*/
498f26e
diff --git a/subst.c b/subst.c
498f26e
index f1a4df1..a93a4ce 100644
498f26e
--- a/subst.c
498f26e
+++ b/subst.c
498f26e
@@ -8513,6 +8513,7 @@ param_expand (string, sindex, quoted, expanded_something,
Ondrej Oprala d0b8ec0
   WORD_LIST *list;
Ondrej Oprala d0b8ec0
   WORD_DESC *tdesc, *ret;
Ondrej Oprala d0b8ec0
   int tflag;
Ondrej Oprala d0b8ec0
+  int old_echo_input;
Ondrej Oprala d0b8ec0
 
498f26e
 /*itrace("param_expand: `%s' pflags = %d", string+*sindex, pflags);*/
Ondrej Oprala d0b8ec0
   zindex = *sindex;
498f26e
@@ -8831,6 +8832,9 @@ arithsub:
Ondrej Oprala d0b8ec0
 	}
Ondrej Oprala d0b8ec0
 
Ondrej Oprala d0b8ec0
 comsub:
Ondrej Oprala d0b8ec0
+      old_echo_input = echo_input_at_read;
Ondrej Oprala d0b8ec0
+      /* avoid echoing every substitution again */
Ondrej Oprala d0b8ec0
+      echo_input_at_read = 0;
Ondrej Oprala d0b8ec0
       if (pflags & PF_NOCOMSUB)
Ondrej Oprala d0b8ec0
 	/* we need zindex+1 because string[zindex] == RPAREN */
Ondrej Oprala d0b8ec0
 	temp1 = substring (string, *sindex, zindex+1);
498f26e
@@ -8843,6 +8847,7 @@ comsub:
Ondrej Oprala d0b8ec0
 	}
Ondrej Oprala d0b8ec0
       FREE (temp);
Ondrej Oprala d0b8ec0
       temp = temp1;
Ondrej Oprala d0b8ec0
+      echo_input_at_read = old_echo_input;
Ondrej Oprala d0b8ec0
       break;
Ondrej Oprala d0b8ec0
 
Ondrej Oprala d0b8ec0
     /* Do POSIX.2d9-style arithmetic substitution.  This will probably go
498f26e
-- 
498f26e
2.9.3
498f26e