[telepathy-mission-control/master] McdAccount: serialize uint32 values larger than G_MAXINT correctly
Simon McVittie
simon.mcvittie at collabora.co.uk
Wed Jun 10 03:39:56 PDT 2009
---
src/mcd-account.c | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/mcd-account.c b/src/mcd-account.c
index e371495..85bc75c 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -274,6 +274,7 @@ set_parameter (McdAccount *account, const gchar *name, const GValue *value)
{
McdAccountPrivate *priv = account->priv;
gchar key[MAX_KEY_LENGTH];
+ gchar buf[21]; /* enough for '-' + the 19 digits of 2**63 + '\0' */
g_snprintf (key, sizeof (key), "param-%s", name);
@@ -290,14 +291,18 @@ set_parameter (McdAccount *account, const gchar *name, const GValue *value)
g_key_file_set_string (priv->keyfile, priv->unique_name, key,
g_value_get_string (value));
break;
+
case G_TYPE_UINT:
- g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
- g_value_get_uint (value));
- break;
+ g_snprintf (buf, sizeof (buf), "%u", g_value_get_uint (value));
+ g_key_file_set_string (priv->keyfile, priv->unique_name, key,
+ buf);
+ break;
+
case G_TYPE_INT:
g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
g_value_get_int (value));
break;
+
case G_TYPE_BOOLEAN:
g_key_file_set_boolean (priv->keyfile, priv->unique_name, key,
g_value_get_boolean (value));
--
1.5.6.5
More information about the telepathy-commits
mailing list