diff options
author | Peter Wemm <peter@FreeBSD.org> | 1996-08-12 14:45:26 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 1996-08-12 14:45:26 +0000 |
commit | 73ca041dfcdee40aae69e5de3412a1148126ec4e (patch) | |
tree | 7f390982242bddb86eda7b3f9ab11f97846f99d2 /chpass/util.c | |
parent | db3019bee11d27de92f652ab0a832ed72f97a4c6 (diff) | |
download | pw-darwin-73ca041dfcdee40aae69e5de3412a1148126ec4e.tar.gz pw-darwin-73ca041dfcdee40aae69e5de3412a1148126ec4e.tar.zst pw-darwin-73ca041dfcdee40aae69e5de3412a1148126ec4e.zip |
Add new option to chpass: -e "expire" ; change the account expire time
from a script as if it was done in the interactive editor.
When reassembling the gecos string, trim any excess trailing commas, they
look ugly in the passwd file. :-)
Have a simple Makefile tweak to prevent mortal users from changing their
fullname. As ISP's we have seem some real bizzare stuff here..
When decoding the change/expire string, allow the month number as a
synonym for the name of the month.. (ie: 1 as well as Jan or January)
Note that using numbers means there's a chance that you can get bitten
if you're not used to the American DD-MM-YY order.
Diffstat (limited to 'chpass/util.c')
-rw-r--r-- | chpass/util.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/chpass/util.c b/chpass/util.c index fe89d79..605a484 100644 --- a/chpass/util.c +++ b/chpass/util.c @@ -91,12 +91,16 @@ atot(p, store) } if (!(t = strtok(p, " \t"))) goto bad; - for (mp = months;; ++mp) { - if (!*mp) - goto bad; - if (!strncasecmp(*mp, t, 3)) { - month = mp - months + 1; - break; + if (isdigit(*t)) { + month = atoi(t); + } else { + for (mp = months;; ++mp) { + if (!*mp) + goto bad; + if (!strncasecmp(*mp, t, 3)) { + month = mp - months + 1; + break; + } } } if (!(t = strtok((char *)NULL, " \t,")) || !isdigit(*t)) |