Hash :
75f19d5e
Author :
Date :
2024-06-16T14:58:56
parse-datetime: don’t depend on tzname * lib/parse-datetime.y (TIME_ZONE_BUFSIZE): Move earlier. (parser_control) [!HAVE_STRUCT_TM_TM_ZONE]: New member tz_abbr, to save abbrs calculated by strftime %Z. (populate_local_time_zone_table): New function, which optimizes the HAVE_STRUCT_TM_TM_ZONE case as before, and falls back on strftime with %Z otherwise. Although strftime %Z can be more accurate than the old tzname based method, the new heuristic is still wrong so often that it probably doesn’t help all that much. (parse_datetime_body): Use it. * modules/parse-datetime (Depends-on): Remove tzname.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
Description:
Convert a date/time string to linear time.
Files:
doc/parse-datetime.texi
lib/parse-datetime.h
lib/parse-datetime.y
m4/parse-datetime.m4
m4/tm_gmtoff.m4
Depends-on:
assert-h
bison
c99
c-ctype
stdbool
gettime
gettext-h
idx
intprops
inttypes
mktime
nstrftime
setenv
stdckdint
unsetenv
time-h
time_r
time_rz
timegm
configure.ac:
gl_PARSE_DATETIME
Makefile.am:
# The Automake generated .y.c rule is broken: When executed in a VPATH build,
# - The .c file gets generated in the build directory. But since it requires
# special tools to rebuild it, we need to distribute it in the tarballs,
# and by the GNU Coding Standards
# <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>
# the file should be generated in the source directory.
# - The #line directives in the .c file refer to a nonexistent file once it
# has been moved from the build directory to the source directory. This
# leads to error if 'lcov' is used later.
# Additionally, here we assume GNU Bison and therefore don't need the ylwrap
# script.
# Therefore we override this rule.
# Unfortunately, overriding the Automake generated .y.c rule does not work in
# VPATH builds with OpenBSD make. Therefore, for VPATH builds on OpenBSD, the
# user will need GNU make.
parse-datetime.c: parse-datetime.y
$(AM_V_YACC)$(PARSE_DATETIME_BISON) $(YFLAGS) $(AM_YFLAGS) $(srcdir)/parse-datetime.y \
&& test ':' = '$(PARSE_DATETIME_BISON)' || { \
sed -e 's|".*/parse-datetime\.y"|"parse-datetime.y"|' \
-e 's|"parse-datetime\.tab\.c"|"parse-datetime.c"|' \
< parse-datetime.tab.c > parse-datetime.c-tmp \
&& rm -f parse-datetime.tab.c \
&& mv parse-datetime.c-tmp $(srcdir)/parse-datetime.c; \
}
lib_SOURCES += parse-datetime.y
BUILT_SOURCES += parse-datetime.c
MOSTLYCLEANFILES += parse-datetime.tab.c parse-datetime.c-tmp
MAINTAINERCLEANFILES += parse-datetime.c
EXTRA_DIST += parse-datetime.c
Include:
"parse-datetime.h"
License:
LGPLv2+
Maintainer:
Paul Eggert