diff options
-rw-r--r-- | src/ui/statusbar.c | 6 | ||||
-rw-r--r-- | src/xmpp/roster_list.c | 8 | ||||
-rw-r--r-- | src/xmpp/roster_list.h | 1 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/ui/statusbar.c b/src/ui/statusbar.c index 4570be50..0e24ab3f 100644 --- a/src/ui/statusbar.c +++ b/src/ui/statusbar.c @@ -187,7 +187,10 @@ _create_tab(const int win, win_type_t wintype, char *identifier, gboolean highli tab->display_name = NULL; if (tab->window_type == WIN_CHAT) { - PContact contact = roster_get_contact(tab->identifier); + PContact contact = NULL; + if (roster_exists()) { + contact = roster_get_contact(tab->identifier); + } if (contact && p_contact_name(contact)) { tab->display_name = strdup(p_contact_name(contact)); } else { @@ -601,5 +604,4 @@ _display_name(StatusBarTab *tab) g_free(trimmed); return trimmedname; - } diff --git a/src/xmpp/roster_list.c b/src/xmpp/roster_list.c index 81a51581..7954e3de 100644 --- a/src/xmpp/roster_list.c +++ b/src/xmpp/roster_list.c @@ -707,3 +707,11 @@ roster_process_pending_presence(void) g_slist_free(roster_pending_presence); roster_pending_presence = NULL; } + +gboolean +roster_exists(void) { + if (roster != NULL) { + return TRUE; + } + return FALSE; +} diff --git a/src/xmpp/roster_list.h b/src/xmpp/roster_list.h index 57a932be..93f1253e 100644 --- a/src/xmpp/roster_list.h +++ b/src/xmpp/roster_list.h @@ -73,5 +73,6 @@ char* roster_get_msg_display_name(const char *const barejid, const char *const r gint roster_compare_name(PContact a, PContact b); gint roster_compare_presence(PContact a, PContact b); void roster_process_pending_presence(void); +gboolean roster_exists(void); #endif |