I suspect this breaks an usage case which is not documented. People may be doing leave +1 to mean "1 minutes".
% leave +1 Alarm set for Tue Jan 21 19:23. (pid 55602) % date Tue Jan 21 19:22:32 MST 2020 % Just one more minute! 1) it isn't documented that + can take a smaller number 2) it will be hard to train people to use +0001 Ted Unangst <[email protected]> wrote: > In testing leave, I found it accepts "12" and will alarm at 00:12, which is > probably not desirable. this check thats the specified time has 4 digits so > that the hour/minute math works properly. > > > Index: leave.c > =================================================================== > RCS file: /home/cvs/src/usr.bin/leave/leave.c,v > retrieving revision 1.19 > diff -u -p -r1.19 leave.c > --- leave.c 10 Feb 2018 00:00:47 -0000 1.19 > +++ leave.c 22 Jan 2020 02:13:03 -0000 > @@ -35,6 +35,7 @@ > #include <err.h> > #include <stdio.h> > #include <stdlib.h> > +#include <string.h> > #include <unistd.h> > > static __dead void usage(void); > @@ -83,6 +84,9 @@ main(int argc, char *argv[]) > plusnow = 1; > ++cp; > } > + > + if (strlen(cp) != 4) > + usage(); > > for (hours = 0; (c = *cp) && c != '\n'; ++cp) { > if (!isdigit((unsigned char)c)) >
