]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
parse-date: replace ISDIGIT with c_isdigit
authorJ William Piggott <elseifthen@gmx.com>
Mon, 8 May 2017 14:36:11 +0000 (10:36 -0400)
committerJ William Piggott <elseifthen@gmx.com>
Thu, 15 Jun 2017 19:00:33 +0000 (15:00 -0400)
Reported-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Influenced-by: gnulib 30784c4 Paul Eggert <eggert@cs.ucla.edu>
Signed-off-by: J William Piggott <elseifthen@gmx.com>
lib/parse-date.y

index 75c8bb04b8218e9b711c4f8bc9b233ab2a7db30a..f4f9a1031ce0b5caa1d6f49accba5473e7d967d9 100644 (file)
 # define _STDLIB_H 1
 #endif
 
-/**
- * ISDIGIT differs from isdigit, as follows:
- * - Its arg may be any int or unsigned int; it need not be an unsigned char
- *   or EOF.
- * - It's typically faster.
- * POSIX says that only '0' through '9' are digits.  Prefer ISDIGIT to
- * isdigit unless it's important to use the locale's definition
- * of "digit" even when the host does not conform to POSIX.
- */
-#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
-
 /**
  * Shift A right by B bits portably, by dividing A by 2**B and
  * truncating towards minus infinity.  A and B should be free of side
@@ -1070,7 +1059,7 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc)
                while (c = *pc->input, c_isspace (c))
                        pc->input++;
 
-               if (ISDIGIT (c) || c == '-' || c == '+') {
+               if (c_isdigit (c) || c == '-' || c == '+') {
                        char const *p;
                        int sign;
                        unsigned long int value;
@@ -1078,7 +1067,7 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc)
                                sign = c == '-' ? -1 : 1;
                                while (c = *++pc->input, c_isspace (c))
                                        continue;
-                               if (! ISDIGIT (c))
+                               if (! c_isdigit (c))
                                        /* skip the '-' sign */
                                        continue;
                        } else
@@ -1090,12 +1079,12 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc)
                                        return '?';
                                value = value1;
                                c = *++p;
-                               if (! ISDIGIT (c))
+                               if (! c_isdigit (c))
                                        break;
                                if (ULONG_MAX / 10 < value)
                                        return '?';
                        }
-                       if ((c == '.' || c == ',') && ISDIGIT (p[1])) {
+                       if ((c == '.' || c == ',') && c_isdigit (p[1])) {
                                time_t s;
                                int ns;
                                int digits;
@@ -1124,7 +1113,7 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc)
                                for (digits = 2;
                                     digits <= LOG10_BILLION; digits++) {
                                        ns *= 10;
-                                       if (ISDIGIT (*p))
+                                       if (c_isdigit (*p))
                                                ns += *p++ - '0';
                                }
 
@@ -1132,12 +1121,12 @@ static int yylex (union YYSTYPE *lvalp, parser_control *pc)
                                 * -Infinity.
                                 */
                                if (sign < 0)
-                                       for (; ISDIGIT (*p); p++)
+                                       for (; c_isdigit (*p); p++)
                                                if (*p != '0') {
                                                        ns++;
                                                        break;
                                                }
-                               while (ISDIGIT (*p))
+                               while (c_isdigit (*p))
                                        p++;
 
                                /* Adjust to the timespec convention, which is