[PROPOSED PATCH 1/2] Support -Dtime_tz=time_t
* private.h (tz_time_t), NEWS: Move typedef earlier. (Problem reported by Bradley White.) --- NEWS | 2 ++ private.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 1e74bfd..89b5349 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,8 @@ Unreleased, experimental changes Fix integer overflow bug in reference 'mktime' implementation. (Problem reported by Jörg Richter.) + Allow -Dtime_tz=time_t compilations. (Problem reported by Bradley White.) + Changes affecting commentary Cite the recent Mexican decree changing Quintana Roo's time zone. diff --git a/private.h b/private.h index efa1bdf..b9429ae 100644 --- a/private.h +++ b/private.h @@ -308,6 +308,8 @@ typedef unsigned long uintmax_t; static time_t sys_time(time_t *x) { return time(x); } # endif +typedef time_tz tz_time_t; + # undef ctime # define ctime tz_ctime # undef ctime_r @@ -341,8 +343,6 @@ static time_t sys_time(time_t *x) { return time(x); } # undef timeoff # define timeoff tz_timeoff -typedef time_tz time_t; - char *ctime(time_t const *); char *ctime_r(time_t const *, char *); double difftime(time_t, time_t); -- 2.1.0
Allow libraries built with -Dtime_tz=... to be used in executables that also use standard-library time_t and libraries. (Problem reported by Bradley White.) * NEWS: Document this. * private.h (localtime_rz, mktime_rz, posix2time_z, time2posix_z) (tzalloc, tzfree, tzset, tzsetwall) [time_tz]: Define to tz_localtime_rz etc., so that these functions can be used in the same executable as standard functions with standard time_t. (tzset, tzsetwall) [time_tz]: Declare, so that the tz_-prefixed version ins declared. --- NEWS | 4 +++- private.h | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 89b5349..47f707b 100644 --- a/NEWS +++ b/NEWS @@ -34,7 +34,9 @@ Unreleased, experimental changes Fix integer overflow bug in reference 'mktime' implementation. (Problem reported by Jörg Richter.) - Allow -Dtime_tz=time_t compilations. (Problem reported by Bradley White.) + Allow -Dtime_tz=time_t compilations, and allow -Dtime_tz=... libraries + to be used in the same executable as standard-library time_t functions. + (Problems reported by Bradley White.) Changes affecting commentary diff --git a/private.h b/private.h index b9429ae..de9c13e 100644 --- a/private.h +++ b/private.h @@ -324,16 +324,24 @@ typedef time_tz tz_time_t; # define localtime tz_localtime # undef localtime_r # define localtime_r tz_localtime_r +# undef localtime_rz +# define localtime_rz tz_localtime_rz # undef mktime # define mktime tz_mktime +# undef mktime_z +# define mktime_z tz_mktime_z # undef offtime # define offtime tz_offtime # undef posix2time # define posix2time tz_posix2time +# undef posix2time_z +# define posix2time_z tz_posix2time_z # undef time # define time tz_time # undef time2posix # define time2posix tz_time2posix +# undef time2posix_z +# define time2posix_z tz_time2posix_z # undef time_t # define time_t tz_time_t # undef timegm @@ -342,6 +350,14 @@ typedef time_tz tz_time_t; # define timelocal tz_timelocal # undef timeoff # define timeoff tz_timeoff +# undef tzalloc +# define tzalloc tz_tzalloc +# undef tzfree +# define tzfree tz_tzfree +# undef tzset +# define tzset tz_tzset +# undef tzsetwall +# define tzsetwall tz_tzsetwall char *ctime(time_t const *); char *ctime_r(time_t const *, char *); @@ -352,6 +368,7 @@ struct tm *localtime(time_t const *); struct tm *localtime_r(time_t const *restrict, struct tm *restrict); time_t mktime(struct tm *); time_t time(time_t *); +void tzset(void); #endif /* @@ -370,7 +387,7 @@ extern char * asctime_r(struct tm const *restrict, char *restrict); */ #ifdef STD_INSPIRED -# if !defined tzsetwall +# if !defined tzsetwall || defined time_tz void tzsetwall(void); # endif # if !defined offtime || defined time_tz -- 2.1.0
participants (1)
-
Paul Eggert