about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui/console.c6
-rw-r--r--src/xmpp/bookmark.c4
-rw-r--r--src/xmpp/xmpp.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/src/ui/console.c b/src/ui/console.c
index 4a1c58d4..337679e0 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -696,7 +696,11 @@ cons_show_bookmarks(const GList *list)
             if (muc_active(item->barejid) && roomwin) {
                 presence_colour = THEME_ONLINE;
             }
-            win_print(console, presence_colour, "-", "  %s", item->barejid);
+            if (item->name) {
+                win_print(console, presence_colour, "-", "  %s - %s", item->name, item->barejid);
+            } else {
+                win_print(console, presence_colour, "-", "  %s", item->barejid);
+            }
             if (item->nick) {
                 win_append(console, presence_colour, "/%s", item->nick);
             }
diff --git a/src/xmpp/bookmark.c b/src/xmpp/bookmark.c
index b9bbfc32..81d7e19e 100644
--- a/src/xmpp/bookmark.c
+++ b/src/xmpp/bookmark.c
@@ -277,6 +277,8 @@ _bookmark_result_id_handler(xmpp_stanza_t *const stanza, void *const userdata)
 
         log_debug("Handle bookmark for %s", barejid);
 
+        const char *room_name = xmpp_stanza_get_attribute(child, "name");
+
         char *nick = NULL;
         xmpp_stanza_t *nick_st = xmpp_stanza_get_child_by_name(child, "nick");
         if (nick_st) {
@@ -300,6 +302,7 @@ _bookmark_result_id_handler(xmpp_stanza_t *const stanza, void *const userdata)
         bookmark->barejid = strdup(barejid);
         bookmark->nick = nick;
         bookmark->password = password;
+        bookmark->name = room_name ? strdup(room_name) : NULL;
         bookmark->autojoin = autojoin_val;
         g_hash_table_insert(bookmarks, strdup(barejid), bookmark);
 
@@ -326,6 +329,7 @@ _bookmark_destroy(Bookmark *bookmark)
         free(bookmark->barejid);
         free(bookmark->nick);
         free(bookmark->password);
+        free(bookmark->name);
         free(bookmark);
     }
 }
diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h
index fa26cfbf..c06939cb 100644
--- a/src/xmpp/xmpp.h
+++ b/src/xmpp/xmpp.h
@@ -93,6 +93,7 @@ typedef struct bookmark_t {
     char *barejid;
     char *nick;
     char *password;
+    char *name;
     gboolean autojoin;
 } Bookmark;