summaryrefslogtreecommitdiffstats
path: root/pw
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-06-07 15:33:08 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-06-07 15:33:08 +0000
commit8b4eba30cac45e27a97d4e86a8e8506b0e8dc318 (patch)
tree1517bd7a6d2d2b9ded925850988be3bcdd4bcd3e /pw
parent98e6bc31dc6985604ba6aa31a3c58fcb3f077127 (diff)
downloadpw-darwin-8b4eba30cac45e27a97d4e86a8e8506b0e8dc318.tar.gz
pw-darwin-8b4eba30cac45e27a97d4e86a8e8506b0e8dc318.tar.zst
pw-darwin-8b4eba30cac45e27a97d4e86a8e8506b0e8dc318.zip
Handle -7 via gloval pwconf
Diffstat (limited to 'pw')
-rw-r--r--pw/pw.c3
-rw-r--r--pw/pw_user.c11
-rw-r--r--pw/pwupd.h1
3 files changed, 9 insertions, 6 deletions
diff --git a/pw/pw.c b/pw/pw.c
index 6376133..c81b5c4 100644
--- a/pw/pw.c
+++ b/pw/pw.c
@@ -215,6 +215,9 @@ main(int argc, char *argv[])
case '?':
errx(EX_USAGE, "unknown switch");
break;
+ case '7':
+ conf.v7 = true;
+ break;
case 'C':
config = optarg;
break;
diff --git a/pw/pw_user.c b/pw/pw_user.c
index bfbde78..0fc7272 100644
--- a/pw/pw_user.c
+++ b/pw/pw_user.c
@@ -53,7 +53,7 @@ static char locked_str[] = "*LOCKED*";
static int delete_user(struct userconf *cnf, struct passwd *pwd,
struct carg *a_name, int delete, int mode);
-static int print_user(struct passwd * pwd, int v7);
+static int print_user(struct passwd * pwd);
static uid_t pw_uidpolicy(struct userconf * cnf, struct cargs * args);
static uid_t pw_gidpolicy(struct cargs * args, char *nam, gid_t prefer);
static time_t pw_pwdpolicy(struct userconf * cnf, struct cargs * args);
@@ -316,10 +316,9 @@ pw_user(int mode, struct cargs * args)
}
if (mode == M_PRINT && getarg(args, 'a')) {
- int v7 = getarg(args, '7') != NULL;
SETPWENT();
while ((pwd = GETPWENT()) != NULL)
- print_user(pwd, v7);
+ print_user(pwd);
ENDPWENT();
return EXIT_SUCCESS;
}
@@ -1161,15 +1160,15 @@ delete_user(struct userconf *cnf, struct passwd *pwd, struct carg *a_name,
}
static int
-print_user(struct passwd * pwd, int v7)
+print_user(struct passwd * pwd)
{
if (!conf.pretty) {
char *buf;
- if (!v7)
+ if (!conf.v7)
pwd->pw_passwd = (pwd->pw_passwd == NULL) ? "" : "*";
- buf = v7 ? pw_make_v7(pwd) : pw_make(pwd);
+ buf = conf.v7 ? pw_make_v7(pwd) : pw_make(pwd);
printf("%s\n", buf);
free(buf);
} else {
diff --git a/pw/pwupd.h b/pw/pwupd.h
index 63aaa64..573e063 100644
--- a/pw/pwupd.h
+++ b/pw/pwupd.h
@@ -85,6 +85,7 @@ struct pwconf {
char etcpath[MAXPATHLEN];
bool dryrun;
bool pretty;
+ bool v7;
struct userconf *userconf;
};