Hash :
5d36768c
Author :
Date :
2016-08-14T21:29:50
parse-datetime: improve debug implementation
Follow-up to commit 12ad79069 ("add optional debug printing").
Improve parse-datetime's debug implementation: remove macros,
replace global debug flag variable with a function parameter,
use nstrftime for formatting.
See: https://lists.gnu.org/archive/html/bug-gnulib/2016-08/msg00021.html
* lib/parse-datetime.h: (parse_datetime_debug): Remove global extern
declaration.
(parse_datetime2): New function, accepts 'flags' parameter, supporting
debug flag. Existing interface 'parse_datetime' left unmodified.
* lib/parse-datetime.c: (parse_datetime_debug): Remove global variable.
(struct parser_control): add 'parse_datetime_debug' member variable.
(parse_datetime): Call new function 'parse_datetime2' without debug.
(parse_datetime2): Adapted from previous 'parse_datetime', initialize
pc.parse_datetime_debug variable as needed.
(to_year): Accept new flags parameter, instead of using global variable.
(debug_print_current_time,debug_print_relative_time,debug_mktime_not_ok):
use struct 'debug' variable instead of global variable.
(DEBUG,DEBUG_PRINT_CURRENT_TIME,DEBUG_PRINT_RELATIVE_TIME,
DEBUG_MKTIME_NOT_OK,PROGRESS,PROGRESS0): Remove macros. Call
correspnding functions directly instead of using macros.
* modules/parse-datetime: Add gnulib's strftime module.
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
Description:
Convert a date/time string to linear time.
Files:
doc/parse-datetime.texi
lib/parse-datetime.h
lib/parse-datetime.y
m4/bison.m4
m4/tm_gmtoff.m4
m4/parse-datetime.m4
Depends-on:
c-ctype
stdbool
gettime
gettext-h
intprops
mktime
setenv
strftime
unsetenv
time
timegm
verify
xalloc
configure.ac:
gl_PARSE_DATETIME
Makefile.am:
# This rule overrides the Automake generated .y.c rule, to ensure that the
# parse-datetime.c file gets generated in the source directory, not in the
# build directory.
parse-datetime.c: parse-datetime.y
$(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
y.tab.c parse-datetime.c \
y.tab.h parse-datetime.h \
y.output parse-datetime.output \
-- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
mv parse-datetime.c parse-datetime.c-t && \
mv parse-datetime.c-t $(srcdir)/parse-datetime.c
lib_SOURCES += parse-datetime.y
BUILT_SOURCES += parse-datetime.c
MOSTLYCLEANFILES += parse-datetime.c-t
MAINTAINERCLEANFILES += parse-datetime.c
EXTRA_DIST += parse-datetime.c
Include:
"parse-datetime.h"
License:
LGPLv2+
Maintainer:
Paul Eggert