static struct tm tm_zero_buffer;
static struct tm *localtime_buffer_addr = &tm_zero_buffer;
+#undef localtime
+extern struct tm *localtime (time_t const *);
+
+#undef gmtime
+extern struct tm *gmtime (time_t const *);
+
/* This is a wrapper for localtime. It is used only on systems for which
gettimeofday clobbers the static buffer used for localtime's result.
localtime uses for its result. */
struct tm *
-localtime (time_t const *timep)
+rpl_localtime (time_t const *timep)
{
-#undef localtime
- extern struct tm *localtime (time_t const *);
struct tm *tm = localtime (timep);
if (localtime_buffer_addr == &tm_zero_buffer)
/* Same as above, since gmtime and localtime use the same buffer. */
struct tm *
-gmtime (time_t const *timep)
+rpl_gmtime (time_t const *timep)
{
-#undef gmtime
- extern struct tm *gmtime (time_t const *);
struct tm *tm = gmtime (timep);
if (localtime_buffer_addr == &tm_zero_buffer)
#endif /* GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME */
#if TZSET_CLOBBERS_LOCALTIME
+
+#undef tzset
+extern void tzset (void);
+
/* This is a wrapper for tzset, for systems on which tzset may clobber
the static buffer used for localtime's result. */
void
-tzset (void)
+rpl_tzset (void)
{
-#undef tzset
- extern void tzset (void);
-
/* Save and restore the contents of the buffer used for localtime's
result around the call to tzset. */
struct tm save = *localtime_buffer_addr;
causes problems. */
int
-gettimeofday (struct timeval *restrict tv, void *restrict tz)
+rpl_gettimeofday (struct timeval *restrict tv, void *restrict tz)
{
#undef gettimeofday
#if HAVE_GETTIMEOFDAY
- extern int gettimeofday (/* unspecified arguments */);
-
# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
/* Save and restore the contents of the buffer used for localtime's
result around the call to gettimeofday. */