+
+loadpw(arg, pw)
+ char *arg;
+ register struct passwd *pw;
+{
+ register char *cp;
+ long atol();
+ char *strsep();
+
+ pw->pw_name = strsep(arg, ":");
+ pw->pw_passwd = strsep((char *)NULL, ":");
+ if (!(cp = strsep((char *)NULL, ":")))
+ goto bad;
+ pw->pw_uid = atoi(cp);
+ if (!(cp = strsep((char *)NULL, ":")))
+ goto bad;
+ pw->pw_gid = atoi(cp);
+ pw->pw_class = strsep((char *)NULL, ":");
+ if (!(cp = strsep((char *)NULL, ":")))
+ goto bad;
+ pw->pw_change = atol(cp);
+ if (!(cp = strsep((char *)NULL, ":")))
+ goto bad;
+ pw->pw_expire = atol(cp);
+ pw->pw_gecos = strsep((char *)NULL, ":");
+ pw->pw_dir = strsep((char *)NULL, ":");
+ pw->pw_shell = strsep((char *)NULL, ":");
+ if (!pw->pw_shell || strsep((char *)NULL, ":")) {
+bad: (void)fprintf(stderr, "chpass: bad password list.\n");
+ exit(1);
+ }
+}
+
+prompt()
+{
+ register int c;
+
+ for (;;) {
+ (void)printf("re-edit the password file? [y]: ");
+ (void)fflush(stdout);
+ c = getchar();
+ if (c != EOF && c != (int)'\n')
+ while (getchar() != (int)'\n');
+ return(c == (int)'n');
+ }
+ /* NOTREACHED */
+}
+
+usage()
+{
+ (void)fprintf(stderr, "usage: chpass [-a list] [user]\n");
+ exit(1);
+}