diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-02-21 13:22:37 -0500 |
---|---|---|
committer | William Jon McCann <mccann@jhu.edu> | 2007-02-21 13:22:37 -0500 |
commit | 8fa6f59953fbcae779008c7cdf12441e995b1ca3 (patch) | |
tree | 30167d6793146becd7d91dd323c6b4aa9c76d177 /src | |
parent | 20d3103338d253d09ba7317e6a53310fa9680794 (diff) |
add support for glib < 2.12
Copy the iso8601 function from glib to support versions less than 2.12.
Diffstat (limited to 'src')
-rw-r--r-- | src/ck-manager.c | 25 | ||||
-rw-r--r-- | src/ck-session.c | 27 |
2 files changed, 49 insertions, 3 deletions
diff --git a/src/ck-manager.c b/src/ck-manager.c index 6d35347..63561b3 100644 --- a/src/ck-manager.c +++ b/src/ck-manager.c @@ -400,6 +400,29 @@ ck_manager_get_system_idle_hint (CkManager *manager, 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_manager_get_system_idle_since_hint (CkManager *manager, char **iso8601_datetime, @@ -411,7 +434,7 @@ ck_manager_get_system_idle_since_hint (CkManager *manager, date_str = NULL; if (manager->priv->system_idle_hint) { - date_str = g_time_val_to_iso8601 (&manager->priv->system_idle_since_hint); + date_str = _g_time_val_to_iso8601 (&manager->priv->system_idle_since_hint); } if (iso8601_datetime != NULL) { 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; |