hush: do not process options after non-option args
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 20 Aug 2009 01:38:58 +0000 (03:38 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 20 Aug 2009 01:38:58 +0000 (03:38 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/hush.c
shell/hush_test/hush-misc/opts1.right [new file with mode: 0644]
shell/hush_test/hush-misc/opts1.tests [new file with mode: 0755]

index 08e7f505257989eabb9c114ebbbb5f63334296e5..b71e1b624c856f2f769004efa2cb4d99268cf0c3 100644 (file)
@@ -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 (file)
index 0000000..4da7573
--- /dev/null
@@ -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 (executable)
index 0000000..45a23d6
--- /dev/null
@@ -0,0 +1,5 @@
+if test $# = 0; then
+    exec "$THIS_SH" $0 -10qwertyuiop
+fi
+echo "Param1: >$1<"
+echo Done