From: Bruno Haible Date: Sun, 6 Dec 2020 11:31:11 +0000 (+0100) Subject: parse-datetime: Use idx_t for nonnegative ptrdiff_t variables. X-Git-Tag: v1.0~3415 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=59bee807d938a2f242003f9a7e10bc2b55b71acd;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index ad31f361a4..b6b6a37fc1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2020-12-06 Bruno Haible + + 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 fnmatch: Use idx_t for nonnegative ptrdiff_t variables. diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y index e8ed691c8f..2b56db440b 100644 --- a/lib/parse-datetime.y +++ b/lib/parse-datetime.y @@ -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++) diff --git a/modules/parse-datetime b/modules/parse-datetime index a16b90f7d5..820bc6ca96 100644 --- a/modules/parse-datetime +++ b/modules/parse-datetime @@ -15,6 +15,7 @@ c-ctype stdbool gettime gettext-h +idx intprops inttypes mktime