diff --git a/usr.sbin/pw/pw.c b/usr.sbin/pw/pw.c index 6769738fbe30..951abc6a0b0a 100644 --- a/usr.sbin/pw/pw.c +++ b/usr.sbin/pw/pw.c @@ -314,6 +314,9 @@ main(int argc, char *argv[]) case 'o': conf.checkduplicate = true; break; + case 'q': + conf.quiet = true; + break; default: addarg(&arglist, ch, optarg); break; @@ -334,7 +337,7 @@ main(int argc, char *argv[]) * We should immediately look for the -q 'quiet' switch so that we * don't bother with extraneous errors */ - if (getarg(&arglist, 'q') != NULL) + if (conf.quiet) freopen(_PATH_DEVNULL, "w", stderr); /* diff --git a/usr.sbin/pw/pw_group.c b/usr.sbin/pw/pw_group.c index 28a7c94c789d..61f0a21d90cb 100644 --- a/usr.sbin/pw/pw_group.c +++ b/usr.sbin/pw/pw_group.c @@ -122,7 +122,7 @@ pw_group(int mode, char *name, long id, struct cargs * args) }; if (mode == M_NEXT) - return (pw_groupnext(cnf, getarg(args, 'q') != NULL)); + return (pw_groupnext(cnf, conf.quiet)); if (mode == M_LOCK || mode == M_UNLOCK) errx(EX_USAGE, "'lock' command is not available for groups"); diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index 298aeab87951..dc9827af0e22 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -231,7 +231,7 @@ pw_user(int mode, char *name, long id, struct cargs * args) cnf = conf.userconf; if (mode == M_NEXT) - return (pw_usernext(cnf, getarg(args, 'q') != NULL)); + return (pw_usernext(cnf, conf.quiet)); /* * We can do all of the common legwork here diff --git a/usr.sbin/pw/pwupd.h b/usr.sbin/pw/pwupd.h index 37303de4e63d..be126c54a46f 100644 --- a/usr.sbin/pw/pwupd.h +++ b/usr.sbin/pw/pwupd.h @@ -87,6 +87,7 @@ struct pwconf { char *config; int fd; int which; + bool quiet; bool dryrun; bool pretty; bool v7;