diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-08-28 08:00:26 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-08-28 08:00:26 +0000 |
commit | daa8efedc9dc29a15256c2966ace728fa3e2c3a9 (patch) | |
tree | f20d6f45efa345833a5de02c2f444221ea403d20 /src | |
parent | a9197e0cf4a519dff24462fc798edb462da0989b (diff) |
use strftime instead of the nicer threadsafe GDateTime on systems without glib 2.26, like debian squeeze
Diffstat (limited to 'src')
-rw-r--r-- | src/trg-cell-renderer-epoch.c | 9 |
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); } |