diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2019-06-12 15:11:29 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2019-06-12 15:11:29 -0700 |
| commit | 69955d38082d5a5f47306daafeaf8c17171b0675 (patch) | |
| tree | 81a4cbef510e87023f02a48185d66791e02511be /bb.c | |
| parent | 85a4be481b2d1cc36fd06afe5594a8f36729875f (diff) | |
Switched some stuff to use $() instead of `` for better composing,
rearranged things a bit to launch bb fewer times for commands.
Diffstat (limited to 'bb.c')
| -rw-r--r-- | bb.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -1387,6 +1387,8 @@ int main(int argc, char *argv[]) for (int i = 1; i < argc; i++) { if (argv[i][0] == '+') { ++cmd_args; + char *colon = strchr(argv[i], ':'); + if (colon && !colon[1]) break; continue; } if (strcmp(argv[i], "--") == 0) { @@ -1423,7 +1425,15 @@ int main(int argc, char *argv[]) int i; for (i = 1; i < argc; i++) { if (argv[i][0] == '+') { - write(cmdfd, argv[i]+1, strlen(argv[i]+1)+1); + char *colon = strchr(argv[i], ':'); + if (colon && !colon[1]) { + for (int j = i+1; j < argc; j++) { + write(cmdfd, argv[i]+1, strlen(argv[i]+1)); + write(cmdfd, argv[j], strlen(argv[j])+1); + } + } else { + write(cmdfd, argv[i]+1, strlen(argv[i]+1)+1); + } continue; } if (strcmp(argv[i], "--") == 0) break; |
