X-Git-Url: https://git.cameronkatri.com/pw-darwin.git/blobdiff_plain/15898a97e3f1366a56d5fa9d53743f716eb31110..2eee1f7e7f16cca1adf13343a9d0e39fad958d29:/chpass/edit.c diff --git a/chpass/edit.c b/chpass/edit.c index 34bd35b..612cb4a 100644 --- a/chpass/edit.c +++ b/chpass/edit.c @@ -118,16 +118,32 @@ display(fd, pw) (void)fprintf(fp, "Shell: %s\n", *pw->pw_shell ? pw->pw_shell : _PATH_BSHELL); else - list[E_SHELL].restricted = 1; + list[E_SHELL].restricted = 1; bp = pw->pw_gecos; + p = strsep(&bp, ","); - (void)fprintf(fp, "Full Name: %s\n", p ? p : ""); - p = strsep(&bp, ","); - (void)fprintf(fp, "Location: %s\n", p ? p : ""); - p = strsep(&bp, ","); - (void)fprintf(fp, "Office Phone: %s\n", p ? p : ""); - p = strsep(&bp, ","); - (void)fprintf(fp, "Home Phone: %s\n", p ? p : ""); + if (p) + list[E_NAME].save = strdup(p); + if (!list[E_NAME].restricted || !uid) + (void)fprintf(fp, "Full Name: %s\n", p ? p : ""); + + p = strsep(&bp, ","); + if (p) + list[E_LOCATE].save = strdup(p); + if (!list[E_LOCATE].restricted || !uid) + (void)fprintf(fp, "Location: %s\n", p ? p : ""); + + p = strsep(&bp, ","); + if (p) + list[E_BPHONE].save = strdup(p); + if (!list[E_BPHONE].restricted || !uid) + (void)fprintf(fp, "Office Phone: %s\n", p ? p : ""); + + p = strsep(&bp, ","); + if (p) + list[E_HPHONE].save = strdup(p); + if (!list[E_HPHONE].restricted || !uid) + (void)fprintf(fp, "Home Phone: %s\n", p ? p : ""); (void)fchown(fd, getuid(), getgid()); (void)fclose(fp);