On Monday, 1 January 2018, Ian Lepore <i...@freebsd.org> wrote: > On Mon, 2018-01-01 at 22:33 +0000, Eitan Adler wrote: > > Author: eadler > > Date: Mon Jan 1 22:33:57 2018 > > New Revision: 327476 > > URL: https://svnweb.freebsd.org/changeset/base/327476 > > > > Log: > > shutdown: Assume absolute time is in the future > > > [...] > > Modified: head/sbin/shutdown/shutdown.c > > ============================================================ > ================== > > --- head/sbin/shutdown/shutdown.c Mon Jan 1 22:31:52 2018 > (r327475) > > +++ head/sbin/shutdown/shutdown.c Mon Jan 1 22:33:57 2018 > (r327476) > > @@ -431,7 +431,7 @@ getoffset(char *timearg) > > struct tm *lt; > > char *p; > > time_t now; > > - int this_year; > > + int this_year, maybe_today; > > char *timeunit; > > > > (void)time(&now); > > @@ -503,6 +503,7 @@ getoffset(char *timearg) > > badtime(); > > /* FALLTHROUGH */ > > case 6: > > + maybe_today = 0; > > lt->tm_mday = ATOI2(timearg); > > if (lt->tm_mday < 1 || lt->tm_mday > 31) > > badtime(); > > @@ -517,8 +518,23 @@ getoffset(char *timearg) > > lt->tm_sec = 0; > > if ((shuttime = mktime(lt)) == -1) > > badtime(); > > - if ((offset = shuttime - now) < 0) > > - errx(1, "that time is already past."); > > + > > + if ((offset = shuttime - now) < 0) { > > + if (!maybe_today) > > + errx(1, "that time is already past."); > > + > > + /* > > + * If the user only gave a time, assume that > > + * any time earlier than the current time > > + * was intended to be that time tomorrow. > > + */ > > + lt->tm_mday++; > > + if ((shuttime = mktime(lt)) == -1) > > + badtime(); > > + if ((offset = shuttime - now) < 0) { > > + errx(1, "tomorrow is before today?"); > > + } > > + } > > break; > > default: > > badtime(); > > > > Where does maybe_today ever get set to non-zero?
Baah. This is what happens when my build/test and commit box are not the same. Will fix later when I get back home. > > -- Ian > -- Sent from my Turing Machine _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"