summaryrefslogtreecommitdiff
path: root/src/trg-cell-renderer-epoch.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-08-28 08:00:26 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-08-28 08:00:26 +0000
commitdaa8efedc9dc29a15256c2966ace728fa3e2c3a9 (patch)
treef20d6f45efa345833a5de02c2f444221ea403d20 /src/trg-cell-renderer-epoch.c
parenta9197e0cf4a519dff24462fc798edb462da0989b (diff)
use strftime instead of the nicer threadsafe GDateTime on systems without glib 2.26, like debian squeeze
Diffstat (limited to 'src/trg-cell-renderer-epoch.c')
-rw-r--r--src/trg-cell-renderer-epoch.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/trg-cell-renderer-epoch.c b/src/trg-cell-renderer-epoch.c
index a44971a..3df9dc6 100644
--- a/src/trg-cell-renderer-epoch.c
+++ b/src/trg-cell-renderer-epoch.c
@@ -18,6 +18,7 @@
*/
#include <stdint.h>
+#include <time.h>
#include <gtk/gtk.h>
#include "trg-cell-renderer-epoch.h"
@@ -65,11 +66,19 @@ trg_cell_renderer_epoch_set_property(GObject * object, guint property_id,
gint64 new_value = g_value_get_int64(value);
if (priv->epoch_value != new_value) {
if (new_value > 0) {
+#if GLIB_CHECK_VERSION(2, 26, 00)
GDateTime *dt = g_date_time_new_from_unix_utc(new_value);
gchar *timestring = g_date_time_format(dt, "%F %H:%M:%S");
g_object_set(object, "text", timestring, NULL);
g_free(timestring);
g_date_time_unref(dt);
+#else
+ time_t time_val = new_value;
+ char buf[64];
+ struct tm *ts = localtime(&time_val);
+ strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", ts);
+ g_object_set(object, "text", buf, NULL);
+#endif
} else {
g_object_set(object, "text", "", NULL);
}