[git commit] hush: do not process options after non-option args

Denys Vlasenko vda.linux at googlemail.com
Thu Aug 20 01:38:58 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=a67a9627d0ada5214d43d06a34387cd9604108c8
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 shell/hush.c                          |    2 +-
 shell/hush_test/hush-misc/opts1.right |    2 ++
 shell/hush_test/hush-misc/opts1.tests |    5 +++++
 3 files changed, 8 insertions(+), 1 deletions(-)
 create mode 100644 shell/hush_test/hush-misc/opts1.right
 create mode 100755 shell/hush_test/hush-misc/opts1.tests

diff --git a/shell/hush.c b/shell/hush.c
index 08e7f50..b71e1b6 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -6461,7 +6461,7 @@ int hush_main(int argc, char **argv)
 	/* http://www.opengroup.org/onlinepubs/9699919799/utilities/sh.html */
 	builtin_argc = 0;
 	while (1) {
-		opt = getopt(argc, argv, "c:xins"
+		opt = getopt(argc, argv, "+c:xins"
 #if !BB_MMU
 				"<:$:R:V:"
 # if ENABLE_HUSH_FUNCTIONS
diff --git a/shell/hush_test/hush-misc/opts1.right b/shell/hush_test/hush-misc/opts1.right
new file mode 100644
index 0000000..4da7573
--- /dev/null
+++ b/shell/hush_test/hush-misc/opts1.right
@@ -0,0 +1,2 @@
+Param1: >-10qwertyuiop<
+Done
diff --git a/shell/hush_test/hush-misc/opts1.tests b/shell/hush_test/hush-misc/opts1.tests
new file mode 100755
index 0000000..45a23d6
--- /dev/null
+++ b/shell/hush_test/hush-misc/opts1.tests
@@ -0,0 +1,5 @@
+if test $# = 0; then
+    exec "$THIS_SH" $0 -10qwertyuiop
+fi
+echo "Param1: >$1<"
+echo Done
-- 
1.6.3.3



More information about the busybox-cvs mailing list