From 2b92c5716f01b1b48f1ef2a6377cf182136f5032 Mon Sep 17 00:00:00 2001 From: davidn Date: Tue, 2 Mar 1999 00:53:33 +0000 Subject: Add the ability to print user records in unix version 7 (old) format. --- usr.sbin/pw/pw_user.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'usr.sbin/pw/pw_user.c') diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index 635b530..0eb9802 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -27,7 +27,7 @@ #ifndef lint static const char rcsid[] = - "$Id: pw_user.c,v 1.26 1999/02/08 21:26:44 des Exp $"; + "$Id: pw_user.c,v 1.27 1999/02/23 07:15:10 davidn Exp $"; #endif /* not lint */ #include @@ -56,7 +56,7 @@ static const char rcsid[] = static randinit; -static int print_user(struct passwd * pwd, int pretty); +static int print_user(struct passwd * pwd, int pretty, int v7); static uid_t pw_uidpolicy(struct userconf * cnf, struct cargs * args); static uid_t pw_gidpolicy(struct userconf * cnf, struct cargs * args, char *nam, gid_t prefer); static time_t pw_pwdpolicy(struct userconf * cnf, struct cargs * args); @@ -271,10 +271,11 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args) } if (mode == M_PRINT && getarg(args, 'a')) { int pretty = getarg(args, 'P') != NULL; + int v7 = getarg(args, '7') != NULL; SETPWENT(); while ((pwd = GETPWENT()) != NULL) - print_user(pwd, pretty); + print_user(pwd, pretty, v7); ENDPWENT(); return EXIT_SUCCESS; } @@ -309,7 +310,9 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args) if (mode == M_PRINT && getarg(args, 'F')) { fakeuser.pw_name = a_name ? a_name->val : "nouser"; fakeuser.pw_uid = a_uid ? (uid_t) atol(a_uid->val) : -1; - return print_user(&fakeuser, getarg(args, 'P') != NULL); + return print_user(&fakeuser, + getarg(args, 'P') != NULL, + getarg(args, '7') != NULL); } if (a_name == NULL) errx(EX_NOUSER, "no such uid `%s'", a_uid->val); @@ -389,7 +392,9 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args) } return EXIT_SUCCESS; } else if (mode == M_PRINT) - return print_user(pwd, getarg(args, 'P') != NULL); + return print_user(pwd, + getarg(args, 'P') != NULL, + getarg(args, '7') != NULL); /* * The rest is edit code @@ -525,7 +530,9 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args) * Special case: -N only displays & exits */ if (getarg(args, 'N') != NULL) - return print_user(pwd, getarg(args, 'P') != NULL); + return print_user(pwd, + getarg(args, 'P') != NULL, + getarg(args, '7') != NULL); r = r1 = 1; if (mode == M_ADD) { @@ -964,12 +971,12 @@ pw_password(struct userconf * cnf, struct cargs * args, char const * user) static int -print_user(struct passwd * pwd, int pretty) +print_user(struct passwd * pwd, int pretty, int v7) { if (!pretty) { char buf[_UC_MAXLINE]; - fmtpwent(buf, pwd); + fmtpwentry(buf, pwd, v7 ? PWF_PASSWD : PWF_STANDARD); fputs(buf, stdout); } else { int j; -- cgit v1.1