summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--src/parser.c22
2 files changed, 8 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index e5987f9..7992485 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
 	* Remove superfluous arinest test in CENDQUOTE.
 	* Remove superfluous arinest test for dqvarnest.
 	* Remove superfluous dblquote settings when ending arith.
+	* Remove arithmetic expansion collapsing at parse time.
 
 2007-09-22  Oleg Verych <olecom@flower.upol.cz>
 
diff --git a/src/parser.c b/src/parser.c
index 791251d..e00fd4b 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -967,11 +967,9 @@ quotemark:
 					--parenlevel;
 				} else {
 					if (pgetc() == ')') {
-						if (--arinest == 0) {
-							USTPUTC(CTLENDARI, out);
+						USTPUTC(CTLENDARI, out);
+						if (!--arinest)
 							syntax = prevsyntax;
-						} else
-							USTPUTC(')', out);
 					} else {
 						/*
 						 * unbalanced parens
@@ -1373,18 +1371,12 @@ parsearith: {
 	if (++arinest == 1) {
 		prevsyntax = syntax;
 		syntax = ARISYNTAX;
-		USTPUTC(CTLARI, out);
-		if (dblquote)
-			USTPUTC('"',out);
-		else
-			USTPUTC(' ',out);
-	} else {
-		/*
-		 * we collapse embedded arithmetic expansion to
-		 * parenthesis, which should be equivalent
-		 */
-		USTPUTC('(', out);
 	}
+	USTPUTC(CTLARI, out);
+	if (dblquote)
+		USTPUTC('"',out);
+	else
+		USTPUTC(' ',out);
 	goto parsearith_return;
 }