Check for gmtime_r. Use gmtime_r when available. (#511807, Sebastian
authorMatthias Clasen <mclasen@redhat.com>
Mon, 28 Jan 2008 06:27:28 +0000 (06:27 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 28 Jan 2008 06:27:28 +0000 (06:27 +0000)
2008-01-28  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Check for gmtime_r.
        * glib/gtimer.c: Use gmtime_r when available.  (#511807,
        Sebastian Dröge)

svn path=/trunk/; revision=6393

ChangeLog
glib/gtimer.c

index 5483e39..9a88f8f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-28  Matthias Clasen  <mclasen@redhat.com>
+
+       * configure.in: Check for gmtime_r.  
+       * glib/gtimer.c: Use gmtime_r when available.  (#511807,
+       Sebastian Dröge)
+
 2008-01-27  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gnode.[hc]: Move docs inline.  (#316260, Philippe Blain)
index b625ddb..a29e39d 100644 (file)
@@ -402,16 +402,24 @@ gchar *
 g_time_val_to_iso8601 (GTimeVal *time_)
 {
   gchar *retval;
-
+#ifdef HAVE_GMTIME_R
+  struct tm tm_;
+#endif
+  
   g_return_val_if_fail (time_->tv_usec >= 0 && time_->tv_usec < G_USEC_PER_SEC, NULL);
 
 #define ISO_8601_LEN   21
 #define ISO_8601_FORMAT "%Y-%m-%dT%H:%M:%SZ"
   retval = g_new0 (gchar, ISO_8601_LEN + 1);
-  
+
   strftime (retval, ISO_8601_LEN,
            ISO_8601_FORMAT,
-           gmtime (&(time_->tv_sec)));
+#ifdef HAVE_GMTIME_R
+           gmtime_r (&(time_->tv_sec), &tm_)
+#else
+           gmtime (&(time_->tv_sec))
+#endif
+            );
   
   return retval;
 }