summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/regression/usr.bin/env/regress-env.rgdata33
-rw-r--r--tools/regression/usr.bin/env/regress-sb.rb1
-rw-r--r--usr.bin/env/envopts.c4
3 files changed, 36 insertions, 2 deletions
diff --git a/tools/regression/usr.bin/env/regress-env.rgdata b/tools/regression/usr.bin/env/regress-env.rgdata
index e060eac..90c296e 100644
--- a/tools/regression/usr.bin/env/regress-env.rgdata
+++ b/tools/regression/usr.bin/env/regress-env.rgdata
@@ -382,3 +382,36 @@ gblenv=OUTSIDEVAR=OutsideValue
setenv:D=D_ThisisAlongstring_D1
stdout:A_ThisisAlongstring_A1 B_ThisisAlongstring_B1 C_ThisisAlongstring_C1 D_ThisisAlongstring_D1 ScriptName: [%-script.pathname-%]
[run]
+
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -S '\c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -S'\c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -u foo -S '\c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -u foo -S'\c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -S '-u bar \c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -S'-u bar \c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -u foo -S '-u bar \c' >/dev/null
+[run]
+[test]
+ sb_args:sh
+ script:[%-testpgm.pathname-%] -u foo -S'-u bar \c' >/dev/null
+[run]
diff --git a/tools/regression/usr.bin/env/regress-sb.rb b/tools/regression/usr.bin/env/regress-sb.rb
index f6333aa..b43ddd3 100644
--- a/tools/regression/usr.bin/env/regress-sb.rb
+++ b/tools/regression/usr.bin/env/regress-sb.rb
@@ -346,6 +346,7 @@ class RGTestOptions
# "just anything" that matches the general pattern. There are
# no blanks in the recognized values, but I use an x-tended
# regexp and then add blanks to make it more readable.
+ optval.gsub!(/\[%- testpgm\.pathname -%\]/x, $testpgm)
optval.gsub!(/\[%- testpgm\.basename -%\]/x, File.basename($testpgm))
optval.gsub!(/\[%- script\.pathname -%\]/x, $scriptfile)
diff --git a/usr.bin/env/envopts.c b/usr.bin/env/envopts.c
index f821430..5740062 100644
--- a/usr.bin/env/envopts.c
+++ b/usr.bin/env/envopts.c
@@ -372,9 +372,9 @@ str_done:
*nextarg = NULL;
/* Update optind/argc/argv in the calling routine */
- *origind = 1;
- *origc += addcount;
+ *origc += addcount - *origind + 1;
*origv = newargv;
+ *origind = 1;
}
/**
OpenPOWER on IntegriCloud