diff options
author | Philip Guenther <guenther@cvs.openbsd.org> | 2014-10-07 02:16:55 +0000 |
---|---|---|
committer | Philip Guenther <guenther@cvs.openbsd.org> | 2014-10-07 02:16:55 +0000 |
commit | 29f73c471f40a7eee230a8814c5dfb12a33eb865 (patch) | |
tree | 8547d0ff9acdd9eb022ea807d17407f07f3c37b3 | |
parent | 12c8b0c1db59406d3f49b0b3f2150860fde19dc4 (diff) |
When reading time intervals, start with a long long and convert from there.
Similarly, print them by casting to long long and using %lld.
ok otto@
-rw-r--r-- | usr.sbin/edquota/edquota.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/usr.sbin/edquota/edquota.c b/usr.sbin/edquota/edquota.c index 5e92e1617d4..7471445c2a2 100644 --- a/usr.sbin/edquota/edquota.c +++ b/usr.sbin/edquota/edquota.c @@ -77,7 +77,7 @@ int readprivs(struct quotause *, int); int writetimes(struct quotause *, int, int); int readtimes(struct quotause *, int); char * cvtstoa(time_t); -int cvtatos(time_t, char *, time_t *); +int cvtatos(long long, char *, time_t *); void freeprivs(struct quotause *); int alldigits(char *s); int hasquota(struct fstab *, int, char **); @@ -569,7 +569,8 @@ readtimes(struct quotause *quplist, int infd) FILE *fp; int cnt; char *cp; - time_t itime, btime, iseconds, bseconds; + long long itime, btime; + time_t iseconds, bseconds; char *fsp, bunits[10], iunits[10], line1[BUFSIZ]; lseek(infd, 0, SEEK_SET); @@ -594,8 +595,8 @@ readtimes(struct quotause *quplist, int infd) return(0); } cnt = sscanf(cp, - " block grace period: %d %9s file grace period: %d %9s", - (int *)&btime, bunits, (int *)&itime, iunits); + " block grace period: %lld %9s file grace period: %lld %9s", + &btime, bunits, &itime, iunits); if (cnt != 4) { warnx("%s:%s: bad format", fsp, cp); return(0); @@ -639,19 +640,19 @@ cvtstoa(time_t time) if (time % (24 * 60 * 60) == 0) { time /= 24 * 60 * 60; - (void)snprintf(buf, sizeof buf, "%d day%s", (int)time, + (void)snprintf(buf, sizeof buf, "%lld day%s", (long long)time, time == 1 ? "" : "s"); } else if (time % (60 * 60) == 0) { time /= 60 * 60; - (void)snprintf(buf, sizeof buf, "%d hour%s", (int)time, + (void)snprintf(buf, sizeof buf, "%lld hour%s", (long long)time, time == 1 ? "" : "s"); } else if (time % 60 == 0) { time /= 60; - (void)snprintf(buf, sizeof buf, "%d minute%s", (int)time, - time == 1 ? "" : "s"); + (void)snprintf(buf, sizeof buf, "%lld minute%s", + (long long)time, time == 1 ? "" : "s"); } else - (void)snprintf(buf, sizeof buf, "%d second%s", (int)time, - time == 1 ? "" : "s"); + (void)snprintf(buf, sizeof buf, "%lld second%s", + (long long)time, time == 1 ? "" : "s"); return(buf); } @@ -659,7 +660,7 @@ cvtstoa(time_t time) * Convert ASCII input times to seconds. */ int -cvtatos(time_t time, char *units, time_t *seconds) +cvtatos(long long time, char *units, time_t *seconds) { if (bcmp(units, "second", 6) == 0) |