summaryrefslogtreecommitdiffstats
path: root/chpass/util.c
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1996-08-12 14:45:26 +0000
committerPeter Wemm <peter@FreeBSD.org>1996-08-12 14:45:26 +0000
commit73ca041dfcdee40aae69e5de3412a1148126ec4e (patch)
tree7f390982242bddb86eda7b3f9ab11f97846f99d2 /chpass/util.c
parentdb3019bee11d27de92f652ab0a832ed72f97a4c6 (diff)
downloadpw-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.c16
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))