Make -- on the command line match the manual page.
The implied shell case has been simplified as a result.
This commit is contained in:
13
sudo.c
13
sudo.c
@@ -754,11 +754,6 @@ parse_args(argc, argv)
|
||||
} else
|
||||
rval = MODE_RUN;
|
||||
|
||||
if (NewArgc == 0 && rval == MODE_RUN) { /* no options and no command */
|
||||
SET(rval, (MODE_IMPLIED_SHELL | MODE_SHELL));
|
||||
return(rval);
|
||||
}
|
||||
|
||||
while (NewArgc > 0) {
|
||||
if (NewArgv[0][0] == '-') {
|
||||
if (NewArgv[0][1] != '\0' && NewArgv[0][2] != '\0')
|
||||
@@ -908,9 +903,7 @@ parse_args(argc, argv)
|
||||
case '-':
|
||||
NewArgc--;
|
||||
NewArgv++;
|
||||
if (rval == MODE_RUN)
|
||||
SET(rval, (MODE_IMPLIED_SHELL | MODE_SHELL));
|
||||
return(rval);
|
||||
goto args_done;
|
||||
case '\0':
|
||||
warningx("'-' requires an argument");
|
||||
usage(1);
|
||||
@@ -932,6 +925,8 @@ parse_args(argc, argv)
|
||||
NewArgc--;
|
||||
NewArgv++;
|
||||
}
|
||||
args_done:
|
||||
|
||||
if (NewArgc > 0 && rval == MODE_LIST)
|
||||
rval = MODE_CHECK;
|
||||
|
||||
@@ -950,6 +945,8 @@ parse_args(argc, argv)
|
||||
if ((NewArgc == 0 && (rval & MODE_EDIT)) ||
|
||||
(NewArgc > 0 && !(rval & (MODE_RUN | MODE_EDIT | MODE_CHECK))))
|
||||
usage(1);
|
||||
if (NewArgc == 0 && rval == MODE_RUN)
|
||||
SET(rval, (MODE_IMPLIED_SHELL | MODE_SHELL));
|
||||
|
||||
return(rval);
|
||||
}
|
||||
|
Reference in New Issue
Block a user