=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/calendar/io.c,v retrieving revision 1.38 retrieving revision 1.39 diff -c -r1.38 -r1.39 *** src/usr.bin/calendar/io.c 2015/03/15 00:41:28 1.38 --- src/usr.bin/calendar/io.c 2015/04/18 18:28:37 1.39 *************** *** 1,4 **** ! /* $OpenBSD: io.c,v 1.38 2015/03/15 00:41:28 millert Exp $ */ /* * Copyright (c) 1989, 1993, 1994 --- 1,4 ---- ! /* $OpenBSD: io.c,v 1.39 2015/04/18 18:28:37 deraadt Exp $ */ /* * Copyright (c) 1989, 1993, 1994 *************** *** 281,292 **** } } if (i > NUMEV) { ! switch(*start) { case '-': case '+': ! var = atoi(start); ! if (var > 365 || var < -365) return (0); /* Someone is just being silly */ val += (NUMEV + 1) * var; /* We add one to the matching event and multiply by * (NUMEV + 1) so as not to return 0 if there's a match. --- 281,296 ---- } } if (i > NUMEV) { ! const char *errstr; ! ! switch (*start) { case '-': case '+': ! var = strtonum(start + 1, 0, 365, &errstr); ! if (errstr) return (0); /* Someone is just being silly */ + if (*start == '-') + var = -var; val += (NUMEV + 1) * var; /* We add one to the matching event and multiply by * (NUMEV + 1) so as not to return 0 if there's a match.