summaryrefslogtreecommitdiffstats
path: root/src/ck-session.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-02-21 13:22:37 -0500
committerWilliam Jon McCann <mccann@jhu.edu>2007-02-21 13:22:37 -0500
commit8fa6f59953fbcae779008c7cdf12441e995b1ca3 (patch)
tree30167d6793146becd7d91dd323c6b4aa9c76d177 /src/ck-session.c
parent20d3103338d253d09ba7317e6a53310fa9680794 (diff)
add support for glib < 2.12
Copy the iso8601 function from glib to support versions less than 2.12.
Diffstat (limited to 'src/ck-session.c')
-rw-r--r--src/ck-session.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/ck-session.c b/src/ck-session.c
index bc3c07b..44eaa2f 100644
--- a/src/ck-session.c
+++ b/src/ck-session.c
@@ -301,6 +301,29 @@ ck_session_get_idle_hint (CkSession *session,
return TRUE;
}
+#if GLIB_CHECK_VERSION(2,12,0)
+#define _g_time_val_to_iso8601(t) g_time_val_to_iso8601(t)
+#else
+/* copied from GLib */
+static gchar *
+_g_time_val_to_iso8601 (GTimeVal *time_)
+{
+ gchar *retval;
+
+ 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)));
+
+ return retval;
+}
+#endif
+
gboolean
ck_session_get_idle_since_hint (CkSession *session,
char **iso8601_datetime,
@@ -312,7 +335,7 @@ ck_session_get_idle_since_hint (CkSession *session,
date_str = NULL;
if (session->priv->idle_hint) {
- date_str = g_time_val_to_iso8601 (&session->priv->idle_since_hint);
+ date_str = _g_time_val_to_iso8601 (&session->priv->idle_since_hint);
}
if (iso8601_datetime != NULL) {
@@ -474,7 +497,7 @@ ck_session_get_creation_time (CkSession *session,
g_return_val_if_fail (CK_IS_SESSION (session), FALSE);
if (iso8601_datetime != NULL) {
- *iso8601_datetime = g_time_val_to_iso8601 (&session->priv->creation_time);
+ *iso8601_datetime = _g_time_val_to_iso8601 (&session->priv->creation_time);
}
return TRUE;