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:
4
chmod.c
4
chmod.c
@@ -41,8 +41,8 @@ main(int argc, char *argv[])
|
||||
struct recursor r = { .fn = chmodr, .hist = NULL, .depth = 0, .follow = 'P', .flags = 0};
|
||||
size_t i;
|
||||
|
||||
argv0 = *(argv++);
|
||||
argc--;
|
||||
argv0 = argv[0], argc--, argv++;
|
||||
|
||||
for (; *argv && (*argv)[0] == '-'; argc--, argv++) {
|
||||
if (!(*argv)[1])
|
||||
usage();
|
||||
|
Reference in New Issue
Block a user