]> Savannah Git Hosting - gnulib.git/commitdiff
parse-datetime: Use idx_t for nonnegative ptrdiff_t variables.
authorBruno Haible <bruno@clisp.org>
Sun, 6 Dec 2020 11:31:11 +0000 (12:31 +0100)
committerBruno Haible <bruno@clisp.org>
Sun, 6 Dec 2020 11:31:11 +0000 (12:31 +0100)
* lib/parse-datetime.y: Include idx.h.
(textint): Mark digits as nonnegative.
(parser_control): Mark dates_seen, days_seen, local_zones_seen,
dsts_seen, times_seen, zones_seen as nonnegative.
(lookup_word): Mark wordlen as nonnegative.
(yylex): Mark count as nonnegative.
(parse_datetime2): Mark tzsize as nonnegative.
* modules/parse-datetime (Depends-on): Add idx.

ChangeLog
lib/parse-datetime.y
modules/parse-datetime

index ad31f361a447b7e06197fe3a3e94d0a3199f8204..b6b6a37fc154cafe96051da76fcab17b5428358a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2020-12-06  Bruno Haible  <bruno@clisp.org>
+
+       parse-datetime: Use idx_t for nonnegative ptrdiff_t variables.
+       * lib/parse-datetime.y: Include idx.h.
+       (textint): Mark digits as nonnegative.
+       (parser_control): Mark dates_seen, days_seen, local_zones_seen,
+       dsts_seen, times_seen, zones_seen as nonnegative.
+       (lookup_word): Mark wordlen as nonnegative.
+       (yylex): Mark count as nonnegative.
+       (parse_datetime2): Mark tzsize as nonnegative.
+       * modules/parse-datetime (Depends-on): Add idx.
+
 2020-12-06  Bruno Haible  <bruno@clisp.org>
 
        fnmatch: Use idx_t for nonnegative ptrdiff_t variables.
index e8ed691c8f31f9d0e6f26bfa88a67205874e0b37..2b56db440b75b72d9c3dcc1bf119214879624e3b 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "parse-datetime.h"
 
+#include "idx.h"
 #include "intprops.h"
 #include "timespec.h"
 #include "verify.h"
@@ -139,7 +140,7 @@ typedef struct
 {
   bool negative;
   intmax_t value;
-  ptrdiff_t digits;
+  idx_t digits;
 } textint;
 
 /* An entry in the lexical lookup table.  */
@@ -212,12 +213,12 @@ typedef struct
   /* Presence or counts of nonterminals of various flavors parsed so far.  */
   bool timespec_seen;
   bool rels_seen;
-  ptrdiff_t dates_seen;
-  ptrdiff_t days_seen;
-  ptrdiff_t local_zones_seen;
-  ptrdiff_t dsts_seen;
-  ptrdiff_t times_seen;
-  ptrdiff_t zones_seen;
+  idx_t dates_seen;
+  idx_t days_seen;
+  idx_t local_zones_seen;
+  idx_t dsts_seen;
+  idx_t times_seen;
+  idx_t zones_seen;
   bool year_seen;
 
   /* Print debugging output to stderr.  */
@@ -1334,7 +1335,7 @@ lookup_word (parser_control const *pc, char *word)
 {
   char *p;
   char *q;
-  ptrdiff_t wordlen;
+  idx_t wordlen;
   table const *tp;
   bool period_found;
   bool abbrev;
@@ -1514,7 +1515,7 @@ yylex (union YYSTYPE *lvalp, parser_control *pc)
       if (c != '(')
         return to_uchar (*pc->input++);
 
-      ptrdiff_t count = 0;
+      idx_t count = 0;
       do
         {
           c = *pc->input++;
@@ -1750,7 +1751,7 @@ parse_datetime2 (struct timespec *result, char const *p,
   if (strncmp (p, "TZ=\"", 4) == 0)
     {
       char const *tzbase = p + 4;
-      ptrdiff_t tzsize = 1;
+      idx_t tzsize = 1;
       char const *s;
 
       for (s = tzbase; *s; s++, tzsize++)
index a16b90f7d559982aca658baff4cf5c2ebb1700d3..820bc6ca96aad65b3d5384f5093ef1533cad7b02 100644 (file)
@@ -15,6 +15,7 @@ c-ctype
 stdbool
 gettime
 gettext-h
+idx
 intprops
 inttypes
 mktime