Test for localtime_r only after including the right MT enabling CFLAGS

1999-01-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Test for localtime_r only after including the
	right MT enabling CFLAGS (i.e. -D_REENTRANT on most systems).

	* gdate.c (g_date_set_time): Emit warning, if no localtime_r
	function is available on thread enabled systems. Define ptm only,
	if really needed, and assert on it.
This commit is contained in:
Sebastian Wilhelmi
1999-01-11 14:41:07 +00:00
committed by Sebastian Wilhelmi
parent f4a2520f38
commit e5e86f8c6c
11 changed files with 97 additions and 9 deletions

15
gdate.c
View File

@@ -790,15 +790,22 @@ g_date_set_time (GDate *d,
GTime time)
{
time_t t = time;
struct tm tm, *ptm;
struct tm tm;
g_return_if_fail (d != NULL);
#if HAVE_LOCALTIME_R
#ifdef HAVE_LOCALTIME_R
localtime_r (&t, &tm);
#else
ptm = localtime (&t);
memcpy((void *) &tm, (void *) ptm, sizeof(struct tm));
# ifdef G_THREADS_ENABLED
# warning "the `g_date_set_time' function will not be MT-safe"
# warning "because there is no `localtime_r' on your system."
# endif
{
struct tm *ptm = localtime (&t);
g_assert (ptm);
memcpy ((void *) &tm, (void *) ptm, sizeof(struct tm));
}
#endif
d->julian = FALSE;