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