} 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')
NewArgc--;
NewArgv++;
break;
- #ifdef HAVE_BSD_AUTH_H
+#ifdef HAVE_BSD_AUTH_H
case 'a':
/* Must have an associated authentication style. */
if (NewArgv[1] == NULL)
NewArgc--;
NewArgv++;
break;
- #endif
- #ifdef HAVE_LOGIN_CAP_H
+#endif
+#ifdef HAVE_LOGIN_CAP_H
case 'c':
/* Must have an associated login class. */
if (NewArgv[1] == NULL)
NewArgc--;
NewArgv++;
break;
- #endif
+#endif
case 'C':
if (NewArgv[1] == NULL)
usage(1);
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);
NewArgc--;
NewArgv++;
}
+args_done:
+
if (NewArgc > 0 && rval == MODE_LIST)
rval = MODE_CHECK;
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);
}