Fix argument parsing in test(1) and chmod(1)
We just take the raw argument list as is. Using arg.h, arguments beginning with - would have been "eaten up". Writing a special "bailout" for arg.h was not a good option, not because it's not impossible (done in 6 LOC), but because it is a shoehorning around a corner case present for a few programs which are broken by design by POSIX.
This commit is contained in:
5
test.c
5
test.c
@@ -148,10 +148,7 @@ main(int argc, char *argv[])
|
||||
int (*narg[])(char *[]) = { noarg, onearg, twoarg, threearg, fourarg };
|
||||
size_t len;
|
||||
|
||||
ARGBEGIN {
|
||||
default:
|
||||
break;
|
||||
} ARGEND;
|
||||
argv0 = argv[0], argc--, argv++;
|
||||
|
||||
len = strlen(argv0);
|
||||
if (len && argv0[--len] == '[' && (!len || argv0[--len] == '/') && strcmp(argv[--argc], "]"))
|
||||
|
Reference in New Issue
Block a user