diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/contact.c | 10 | ||||
-rw-r--r-- | src/contact.h | 1 | ||||
-rw-r--r-- | src/ui/windows.c | 15 |
3 files changed, 17 insertions, 9 deletions
diff --git a/src/contact.c b/src/contact.c index 1b566d40..9cc992b2 100644 --- a/src/contact.c +++ b/src/contact.c @@ -156,6 +156,16 @@ p_contact_name(const PContact contact) return contact->name; } +const char * +p_contact_name_or_jid(const PContact contact) +{ + if (contact->name != NULL) { + return contact->name; + } else { + return contact->barejid; + } +} + static Resource * _highest_presence(Resource *first, Resource *second) { diff --git a/src/contact.h b/src/contact.h index 141587a0..e71e0f7d 100644 --- a/src/contact.h +++ b/src/contact.h @@ -35,6 +35,7 @@ gboolean p_contact_remove_resource(PContact contact, const char * const resource void p_contact_free(PContact contact); const char* p_contact_barejid(PContact contact); const char* p_contact_name(PContact contact); +const char * p_contact_name_or_jid(const PContact contact); const char* p_contact_presence(PContact contact); const char* p_contact_status(PContact contact); const char* p_contact_subscription(const PContact contact); diff --git a/src/ui/windows.c b/src/ui/windows.c index e956068c..e69b2433 100644 --- a/src/ui/windows.c +++ b/src/ui/windows.c @@ -391,16 +391,13 @@ wins_create_summary(void) break; case WIN_CHAT: chat_string = g_string_new(""); - g_string_printf(chat_string, "%d: Chat %s", ui_index, window->from); - PContact contact = roster_get_contact(window->from); - if (contact != NULL) { - if (p_contact_name(contact) != NULL) { - GString *chat_name = g_string_new(""); - g_string_printf(chat_name, " (%s)", p_contact_name(contact)); - g_string_append(chat_string, chat_name->str); - g_string_free(chat_name, TRUE); - } + PContact contact = roster_get_contact(window->from); + if (contact == NULL) { + g_string_printf(chat_string, "%d: Chat %s", ui_index, window->from); + } else { + const char *display_name = p_contact_name_or_jid(contact); + g_string_printf(chat_string, "%d: Chat %s", ui_index, display_name); GString *chat_presence = g_string_new(""); g_string_printf(chat_presence, " - %s", p_contact_presence(contact)); g_string_append(chat_string, chat_presence->str); |