aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libempathy/empathy-idle.c4
-rw-r--r--libempathy/empathy-tp-contact-factory.c12
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),