svn commit: trunk/busybox/shell: hush_test/hush-psubst

vda at busybox.net vda at busybox.net
Thu Jun 12 12:58:22 UTC 2008


Author: vda
Date: 2008-06-12 05:58:20 -0700 (Thu, 12 Jun 2008)
New Revision: 22304

Log:
hush: fix for nested $()s with escapes + testsuite



Added:
   trunk/busybox/shell/hush_test/hush-psubst/tick4.right
   trunk/busybox/shell/hush_test/hush-psubst/tick4.tests

Modified:
   trunk/busybox/shell/hush.c
   trunk/busybox/shell/hush_test/hush-psubst/tick3.tests


Changeset:
Modified: trunk/busybox/shell/hush.c
===================================================================
--- trunk/busybox/shell/hush.c	2008-06-12 11:06:41 UTC (rev 22303)
+++ trunk/busybox/shell/hush.c	2008-06-12 12:58:20 UTC (rev 22304)
@@ -3498,6 +3498,13 @@
 			o_addqchr(dest, ch, 1);
 			continue;
 		}
+		if (ch == '\\') { /* \x. Copy verbatim. Important for  \(, \) */
+			ch = i_getch(input);
+			if (ch == EOF)
+				break;
+			o_addqchr(dest, ch, 1);
+			continue;
+		}
 	}
 }
 #endif /* ENABLE_HUSH_TICK */
@@ -3556,13 +3563,16 @@
 			o_addchr(dest, SPECIAL_VAR_SYMBOL);
 			break;
 #if ENABLE_HUSH_TICK
-		case '(':
+		case '(': {
+			//int pos = dest->length;
 			i_getch(input);
 			o_addchr(dest, SPECIAL_VAR_SYMBOL);
 			o_addchr(dest, quote_mask | '`');
 			add_till_closing_curly_brace(dest, input);
+			//bb_error_msg("RES '%s'", dest->data + pos);
 			o_addchr(dest, SPECIAL_VAR_SYMBOL);
 			break;
+		}
 #endif
 		case '-':
 		case '_':

Modified: trunk/busybox/shell/hush_test/hush-psubst/tick3.tests
===================================================================
--- trunk/busybox/shell/hush_test/hush-psubst/tick3.tests	2008-06-12 11:06:41 UTC (rev 22303)
+++ trunk/busybox/shell/hush_test/hush-psubst/tick3.tests	2008-06-12 12:58:20 UTC (rev 22304)
@@ -1,4 +1,3 @@
-#!/bin/sh
 TEST=Q
 # \` is special
 echo `echo '\'TEST\`echo ZZ\`BEST`

Added: trunk/busybox/shell/hush_test/hush-psubst/tick4.right
===================================================================
--- trunk/busybox/shell/hush_test/hush-psubst/tick4.right	                        (rev 0)
+++ trunk/busybox/shell/hush_test/hush-psubst/tick4.right	2008-06-12 12:58:20 UTC (rev 22304)
@@ -0,0 +1,7 @@
+(TEST) BEST
+TEST) BEST
+((TEST) BEST
+)
+abc
+a)c
+OK: 0

Added: trunk/busybox/shell/hush_test/hush-psubst/tick4.tests
===================================================================
--- trunk/busybox/shell/hush_test/hush-psubst/tick4.tests	                        (rev 0)
+++ trunk/busybox/shell/hush_test/hush-psubst/tick4.tests	2008-06-12 12:58:20 UTC (rev 22304)
@@ -0,0 +1,7 @@
+echo $(echo '(TEST)' BEST)
+echo $(echo 'TEST)' BEST)
+echo $(echo \(\(TEST\) BEST)
+echo $(echo \))
+echo $(echo a"`echo "b"`"c )
+echo $(echo a"`echo ")"`"c )
+echo OK: $?


Property changes on: trunk/busybox/shell/hush_test/hush-psubst/tick4.tests
___________________________________________________________________
Name: svn:executable
   + *




More information about the busybox-cvs mailing list