diff options
author | Greg Lehey <grog@FreeBSD.org> | 2012-12-13 01:44:58 +0000 |
---|---|---|
committer | Greg Lehey <grog@FreeBSD.org> | 2012-12-13 01:44:58 +0000 |
commit | d6a381f8c9a4b998167fb3ab30f28b5bf1482d4c (patch) | |
tree | b433cbc0715787af5f049d8606d67ec60a1c5142 /usr.bin/calendar/parsedata.c | |
parent | 7b4708028afd841825f3d392aa2bf49393f36977 (diff) | |
download | src-d6a381f8c9a4b998167fb3ab30f28b5bf1482d4c.tar.gz src-d6a381f8c9a4b998167fb3ab30f28b5bf1482d4c.zip |
Reluctantly remove one of the most extraordinary numeric conversion
routines I have ever seen and replace with something far more boring.
Notes
Notes:
svn path=/head/; revision=244166
Diffstat (limited to 'usr.bin/calendar/parsedata.c')
-rw-r--r-- | usr.bin/calendar/parsedata.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/usr.bin/calendar/parsedata.c b/usr.bin/calendar/parsedata.c index 63e43957d61b..4d45385d3d1d 100644 --- a/usr.bin/calendar/parsedata.c +++ b/usr.bin/calendar/parsedata.c @@ -940,15 +940,13 @@ indextooffset(char *s) { int i; struct fixs *n; + char *es; if (s[0] == '+' || s[0] == '-') { - char ss[9]; - for (i = -100; i < 100; i++) { - sprintf(ss, "%s%d", (i > 0) ? "+" : "", i); - if (strcmp(ss, s) == 0) - return (i); - } - return (0); + i = strtod (s, &es); + if (*es != '\0') /* trailing junk */ + errx (1, "Invalid specifier format: %s\n", s); + return (i); } for (i = 0; i < 6; i++) { |