Lines Matching refs:pw
81 __pw_scan(char *bp, struct passwd *pw, int flags)
91 pw->pw_fields = 0;
92 if (!(pw->pw_name = strsep(&bp, ":"))) /* login */
94 root = !strcmp(pw->pw_name, "root");
95 if (pw->pw_name[0] && (pw->pw_name[0] != '+' || pw->pw_name[1] == '\0'))
96 pw->pw_fields |= _PWF_NAME;
98 if (!(pw->pw_passwd = strsep(&bp, ":"))) /* passwd */
100 if (pw->pw_passwd[0])
101 pw->pw_fields |= _PWF_PASSWD;
106 pw->pw_fields |= _PWF_UID;
108 if (pw->pw_name[0] != '+' && pw->pw_name[0] != '-') {
110 warnx("no uid for user %s", pw->pw_name);
136 pw->pw_uid = id;
141 pw->pw_fields |= _PWF_GID;
143 if (pw->pw_name[0] != '+' && pw->pw_name[0] != '-') {
145 warnx("no gid for user %s", pw->pw_name);
166 pw->pw_gid = id;
169 if (!(pw->pw_class = strsep(&bp, ":"))) /* class */
171 if (pw->pw_class[0])
172 pw->pw_fields |= _PWF_CLASS;
177 pw->pw_fields |= _PWF_CHANGE;
178 pw->pw_change = atol(p);
183 pw->pw_fields |= _PWF_EXPIRE;
184 pw->pw_expire = atol(p);
186 if (!(pw->pw_gecos = strsep(&bp, ":"))) /* gecos */
188 if (pw->pw_gecos[0])
189 pw->pw_fields |= _PWF_GECOS;
191 if (!(pw->pw_dir = strsep(&bp, ":"))) /* directory */
193 if (pw->pw_dir[0])
194 pw->pw_fields |= _PWF_DIR;
196 if (!(pw->pw_shell = strsep(&bp, ":"))) /* shell */
199 p = pw->pw_shell;
213 pw->pw_fields |= _PWF_SHELL;