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;  | 
