diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2016-01-16 22:15:27 +0100 |
---|---|---|
committer | Christian Neukirchen <chneukirchen@gmail.com> | 2016-01-16 22:15:27 +0100 |
commit | 821697dbee3e2d0acafb26b6567ff9690d2a9b29 (patch) | |
tree | 8cb5251c236f22bb642121461790044ebb5f6667 /xe.c | |
parent | 01f9f2a5f906058eb21b69a224e9f13e69529aeb (diff) | |
download | xe-821697dbee3e2d0acafb26b6567ff9690d2a9b29.tar.gz xe-821697dbee3e2d0acafb26b6567ff9690d2a9b29.tar.xz xe-821697dbee3e2d0acafb26b6567ff9690d2a9b29.zip |
fix -a which was broken due to a clashing variable name
Diffstat (limited to 'xe.c')
-rw-r--r-- | xe.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/xe.c b/xe.c index e287542..bd781a3 100644 --- a/xe.c +++ b/xe.c @@ -43,6 +43,8 @@ static char **args; static size_t argslen; static size_t argscap; +static char **inargs; + static char *line = 0; static size_t linelen = 0; @@ -50,8 +52,8 @@ static char * getarg() { if (aflag || Aflag) { - if (args && *args) - return *args++; + if (inargs && *inargs) + return *inargs++; else return 0; } @@ -272,29 +274,28 @@ main(int argc, char *argv[], char *envp[]) if (aflag) { // find first -- in argv for (i = 1; i < argc; i++) if (strcmp(argv[i], "--") == 0) { - args = argv + i+1; + inargs = argv + i+1; cmdend = i; break; } if (sflag) { // e.g. on xe -s 'echo $1' -a 1 2 3 cmdend = optind; - args = argv + cmdend; + inargs = argv + cmdend; } } else if (Aflag) { // find first argsep after optind for (i = optind; i < argc; i++) { if (strcmp(argv[i], argsep) == 0) { - args = argv + i+1; + inargs = argv + i+1; cmdend = i; break; } } } - while ((arg = getarg())) { -keeparg: + arg = getarg(); + while (arg) { buflen = 0; argslen = 0; - push_overflowed = 0; if (sflag) { pusharg("/bin/sh"); |