parse-datetime: fix %z and prefer signed int
commit8edebfe6f97d0e378d042accb2475a32a53f100f
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 22 Apr 2017 22:13:24 +0000 (22 15:13 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 22 Apr 2017 22:14:24 +0000 (22 15:14 -0700)
tree3ca30c0a6eb918a675d2dcdfb11762d113964335
parentdfba158b2ada22525a432baec3159538e0bba950
parse-datetime: fix %z and prefer signed int

%z problem reported by Pádraig Brady in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-04/msg00103.html
While fixing it, I decided to prefer signed ints to size_t, as
they are less error-prone (e.g., ubsan catches overflow).
* lib/parse-datetime.y (textint, parser_control, lookup_word, yylex)
(parse_datetime2): Prefer ptrdiff_t to size_t for sizes and object
counts, since signed integers make for better debugging.
(date): Don’t assume %z works in printf formats.
(debug_strfdatetime, debug_strfdate, debug_strftime): Use int for
sizes of buffers known to be small, e.g., because we’re using snprintf.
(parse_datetime2): Simplify call to debug_mktime_not_ok.
ChangeLog
lib/parse-datetime.y