hush: fix "hush -c 'echo $#'" showing -1
No binary (build failed)
—
(log yok)
| @@ -7080,7 +7080,6 @@ int hush_main(int argc, char **argv) | |
| /* -c 'script' (no params): prevent empty $0 */ | |
| G.global_argv--; /* points to argv[i] of 'script' */ | |
| G.global_argv[0] = argv[0]; | |
| - | G.global_argc--; |
| } /* else -c 'script' ARG0 [ARG1...]: $0 is ARG0 */ | |
| init_sigmasks(); | |
| parse_and_run_string(optarg); | |
| @@ -1,4 +1,9 @@ | |
| + | 0 |
| + | 0 |
| + | 1 |
| + | Make sure len parsing doesnt break arg count |
| 0 0 | |
| 4 4 | |
| + | Testing len op |
| 4 3 2 1 0 0 | |
| 0 3 0 | |
| @@ -1,9 +1,14 @@ | |
| - | # make sure len parsing doesnt break arg count |
| + | "$THIS_SH" -c 'echo $#' |
| + | "$THIS_SH" -c 'echo $#' arg0 |
| + | "$THIS_SH" -c 'echo $#' arg0 arg1 |
| + | |
| + | echo Make sure len parsing doesnt break arg count |
| set -- | |
| echo $# ${#} | |
| set -- aaaa bbb cc d | |
| echo $# ${#} | |
| + | echo Testing len op |
| echo ${#1} ${#2} ${#3} ${#4} ${#5} ${#6} | |
| unset e | |