Add the ability to print user records in unix version 7 (old) format.
This commit is contained in:
parent
a93530134e
commit
c01a7e63d1
@ -26,7 +26,7 @@
|
||||
|
||||
#ifndef lint
|
||||
static const char rcsid[] =
|
||||
"$Id: pw.c,v 1.13 1999/02/23 10:35:47 davidn Exp $";
|
||||
"$Id: pw.c,v 1.14 1999/02/23 11:01:50 davidn Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <err.h>
|
||||
@ -101,7 +101,7 @@ main(int argc, char *argv[])
|
||||
"V:C:qn:u:c:d:e:p:g:G:mk:s:oL:i:w:h:Db:NPy:Y",
|
||||
"V:C:qn:u:rY",
|
||||
"V:C:qn:u:c:d:e:p:g:G:ml:k:s:w:L:h:FNPY",
|
||||
"V:C:qn:u:FPa",
|
||||
"V:C:qn:u:FPa7",
|
||||
"V:C:q"
|
||||
},
|
||||
{ /* grp */
|
||||
@ -351,7 +351,8 @@ cmdhelp(int mode, int which)
|
||||
"\t-u uid user id\n"
|
||||
"\t-F force print\n"
|
||||
"\t-P prettier format\n"
|
||||
"\t-a print all users\n",
|
||||
"\t-a print all users\n"
|
||||
"\t-7 print in v7 format\n",
|
||||
"usage: pw usernext [switches]\n"
|
||||
"\t-V etcdir alternate /etc location\n"
|
||||
"\t-C config configuration file\n"
|
||||
|
@ -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 <ctype.h>
|
||||
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user