1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-08 17:22:05 +03:00

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.
This commit is contained in:
Bruno Haible
2020-12-06 12:31:11 +01:00
parent 6b0f10dd65
commit 59bee807d9
3 changed files with 24 additions and 10 deletions

View File

@@ -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> 2020-12-06 Bruno Haible <bruno@clisp.org>
fnmatch: Use idx_t for nonnegative ptrdiff_t variables. fnmatch: Use idx_t for nonnegative ptrdiff_t variables.

View File

@@ -35,6 +35,7 @@
#include "parse-datetime.h" #include "parse-datetime.h"
#include "idx.h"
#include "intprops.h" #include "intprops.h"
#include "timespec.h" #include "timespec.h"
#include "verify.h" #include "verify.h"
@@ -139,7 +140,7 @@ typedef struct
{ {
bool negative; bool negative;
intmax_t value; intmax_t value;
ptrdiff_t digits; idx_t digits;
} textint; } textint;
/* An entry in the lexical lookup table. */ /* An entry in the lexical lookup table. */
@@ -212,12 +213,12 @@ typedef struct
/* Presence or counts of nonterminals of various flavors parsed so far. */ /* Presence or counts of nonterminals of various flavors parsed so far. */
bool timespec_seen; bool timespec_seen;
bool rels_seen; bool rels_seen;
ptrdiff_t dates_seen; idx_t dates_seen;
ptrdiff_t days_seen; idx_t days_seen;
ptrdiff_t local_zones_seen; idx_t local_zones_seen;
ptrdiff_t dsts_seen; idx_t dsts_seen;
ptrdiff_t times_seen; idx_t times_seen;
ptrdiff_t zones_seen; idx_t zones_seen;
bool year_seen; bool year_seen;
/* Print debugging output to stderr. */ /* Print debugging output to stderr. */
@@ -1334,7 +1335,7 @@ lookup_word (parser_control const *pc, char *word)
{ {
char *p; char *p;
char *q; char *q;
ptrdiff_t wordlen; idx_t wordlen;
table const *tp; table const *tp;
bool period_found; bool period_found;
bool abbrev; bool abbrev;
@@ -1514,7 +1515,7 @@ yylex (union YYSTYPE *lvalp, parser_control *pc)
if (c != '(') if (c != '(')
return to_uchar (*pc->input++); return to_uchar (*pc->input++);
ptrdiff_t count = 0; idx_t count = 0;
do do
{ {
c = *pc->input++; c = *pc->input++;
@@ -1750,7 +1751,7 @@ parse_datetime2 (struct timespec *result, char const *p,
if (strncmp (p, "TZ=\"", 4) == 0) if (strncmp (p, "TZ=\"", 4) == 0)
{ {
char const *tzbase = p + 4; char const *tzbase = p + 4;
ptrdiff_t tzsize = 1; idx_t tzsize = 1;
char const *s; char const *s;
for (s = tzbase; *s; s++, tzsize++) for (s = tzbase; *s; s++, tzsize++)

View File

@@ -15,6 +15,7 @@ c-ctype
stdbool stdbool
gettime gettime
gettext-h gettext-h
idx
intprops intprops
inttypes inttypes
mktime mktime