commit 8c359daee319b7fed45166c7965f6134b0a0d3cb
Author: FRIGN <[email protected]>
Date:   Fri Jan 30 16:01:10 2015 +0100

    Convert cal(1) to strtonum

diff --git a/cal.c b/cal.c
index 8a43452..2dfa8ad 100644
--- a/cal.c
+++ b/cal.c
@@ -1,4 +1,5 @@
 /* See LICENSE file for copyright and license details. */
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
@@ -136,15 +137,15 @@ usage(void)
 int
 main(int argc, char *argv[])
 {
-       int year, month, ncols, nmons, fday;
        struct tm *ltime;
+       int year, ncols, nmons, month, fday;
        time_t now;
 
-       now = time(NULL);
+       now   = time(NULL);
        ltime = localtime(&now);
-       year = ltime->tm_year + 1900;
+       year  = ltime->tm_year + 1900;
        month = ltime->tm_mon + 1;
-       fday = 0;
+       fday  = 0;
 
        ncols = 3;
        nmons = 0;
@@ -162,16 +163,16 @@ main(int argc, char *argv[])
                }
                break;
        case 'c':
-               ncols = estrtol(EARGF(usage()), 0);
+               ncols = estrtonum(EARGF(usage()), 0, INT_MAX);
                break;
        case 'f':
-               fday = estrtol(EARGF(usage()), 0);
+               fday = estrtonum(EARGF(usage()), 0, 6);
                break;
        case 'm': /* Monday */
                fday = 1;
                break;
        case 'n':
-               nmons = estrtol(EARGF(usage()), 0);
+               nmons = estrtonum(EARGF(usage()), 1, INT_MAX);
                break;
        case 's': /* Sunday */
                fday = 0;
@@ -195,10 +196,10 @@ main(int argc, char *argv[])
 
        switch (argc) {
        case 2:
-               month = estrtol(argv[0], 0);
+               month = estrtonum(argv[0], 1, 12);
                argv++;
        case 1:
-               year = estrtol(argv[0], 0);
+               year = estrtonum(argv[0], 0, INT_MAX);
                break;
        case 0:
                break;
@@ -206,10 +207,6 @@ main(int argc, char *argv[])
                usage();
        }
 
-       if (ncols < 0 || month < 1 || month > 12 || nmons < 1 || fday < 0 || 
fday > 6) {
-               usage();
-       }
-
        drawcal(year, month - 1, ncols, nmons, fday);
 
        return 0;

Reply via email to