diff options
-rw-r--r-- | utils/portinfo.c | 5 | ||||
-rw-r--r-- | utils/settrans.c | 13 |
2 files changed, 11 insertions, 7 deletions
diff --git a/utils/portinfo.c b/utils/portinfo.c index cef93861..50910333 100644 --- a/utils/portinfo.c +++ b/utils/portinfo.c @@ -467,7 +467,8 @@ main (int argc, char **argv) break; case ARGP_KEY_NO_ARGS: - argp_error (state->argp, "No process specified"); + argp_error (state, "No process specified"); + return ED; /* Some non-EINVAL error. */ case ARGP_KEY_ARG: if (state->arg_num == 0) @@ -523,7 +524,7 @@ main (int argc, char **argv) const struct argp argp = { options, parse_opt, args_doc, doc }; /* Parse our arguments. */ - argp_parse (&argp, argc, argv, 0, 0); + argp_parse (&argp, argc, argv, 0, 0, 0); exit (0); } diff --git a/utils/settrans.c b/utils/settrans.c index a4276f19..9c55d2f1 100644 --- a/utils/settrans.c +++ b/utils/settrans.c @@ -57,8 +57,8 @@ static struct argp_option options[] = {0, 0} }; static char *args_doc = "NODE [TRANSLATOR ARG...]"; -static char *doc = "By default, the passive translator is set, and any \ -active translator told to just go away."; +static char *doc = "When setting a translator, the passive translator is set" +" by defualt, and when clearing, the active."; /* ---------------------------------------------------------------- */ @@ -107,7 +107,8 @@ main(int argc, char *argv[]) break; case ARGP_KEY_NO_ARGS: - argp_usage (state->argp); /* exits */ + argp_usage (state); + return EINVAL; case 'a': active = 1; break; case 'p': passive = 1; break; @@ -133,10 +134,12 @@ main(int argc, char *argv[]) } struct argp argp = {options, parse_opt, args_doc, doc}; - argp_parse (&argp, argc, argv, ARGP_IN_ORDER, 0); + argp_parse (&argp, argc, argv, ARGP_IN_ORDER, 0, 0); if (!active && !passive) - passive = 1; + /* When not otherwise specified, defaults are: active when clearing, + passive when setting. */ + (argz_len == 0 ? active : passive) = 1; if (active && argz_len > 0) { |