diff options
-rw-r--r-- | libempathy/empathy-idle.c | 4 | ||||
-rw-r--r-- | libempathy/empathy-tp-contact-factory.c | 12 |
2 files changed, 12 insertions, 4 deletions
diff --git a/libempathy/empathy-idle.c b/libempathy/empathy-idle.c index b6566a6f6..7da1a00e6 100644 --- a/libempathy/empathy-idle.c +++ b/libempathy/empathy-idle.c @@ -172,6 +172,10 @@ empathy_idle_init (EmpathyIdle *idle) priv->mc = empathy_mission_control_new (); priv->state = mission_control_get_presence_actual (priv->mc, NULL); priv->status = mission_control_get_presence_message_actual (priv->mc, NULL); + if (G_STR_EMPTY (priv->status)) { + g_free (priv->status); + priv->status = NULL; + } dbus_g_proxy_connect_signal (DBUS_G_PROXY (priv->mc), "PresenceChanged", diff --git a/libempathy/empathy-tp-contact-factory.c b/libempathy/empathy-tp-contact-factory.c index eeb4ece71..e071ff5fb 100644 --- a/libempathy/empathy-tp-contact-factory.c +++ b/libempathy/empathy-tp-contact-factory.c @@ -107,14 +107,18 @@ tp_contact_factory_presences_table_foreach (const gchar *state_str, EmpathyContact *contact) { const GValue *message; + const gchar *message_str = NULL; empathy_contact_set_presence (contact, empathy_presence_from_str (state_str)); message = g_hash_table_lookup (presences_table, "message"); - if (message != NULL) { - empathy_contact_set_presence_message (contact, - g_value_get_string (message)); + if (message) { + message_str = g_value_get_string (message); + } + + if (!G_STR_EMPTY (message_str)) { + empathy_contact_set_presence_message (contact, message_str); } else { empathy_contact_set_presence_message (contact, NULL); } @@ -139,7 +143,7 @@ tp_contact_factory_parse_presence_foreach (guint handle, (GHFunc) tp_contact_factory_presences_table_foreach, contact); - DEBUG ("Changing presence for contact %s (%d) to %s (%d)", + DEBUG ("Changing presence for contact %s (%d) to '%s' (%d)", empathy_contact_get_id (contact), handle, empathy_contact_get_presence_message (contact), |