about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/profanity.c7
-rw-r--r--src/ui.h3
-rw-r--r--src/windows.c22
3 files changed, 21 insertions, 11 deletions
diff --git a/src/profanity.c b/src/profanity.c
index 21d3847b..7ef6a9a9 100644
--- a/src/profanity.c
+++ b/src/profanity.c
@@ -189,12 +189,7 @@ prof_handle_room_message(const char * const room_jid, const char * const nick,
 void
 prof_handle_room_roster_complete(const char * const room)
 {
-    GSList *roster = room_get_roster(room);
-
-    while (roster != NULL) {
-        win_show_chat_room_member(room, roster->data);
-        roster = g_slist_next(roster);
-    }
+    win_show_room_roster(room);
 }
 
 void
diff --git a/src/ui.h b/src/ui.h
index 35c8e0b5..59128299 100644
--- a/src/ui.h
+++ b/src/ui.h
@@ -104,8 +104,7 @@ void win_bad_show(const char * const msg);
 void win_remind(void);
 
 void win_join_chat(const char * const room_jid, const char * const nick);
-void win_show_chat_room_member(const char * const room_jid,
-    const char * const nick);
+void win_show_room_roster(const char * const room);
 int win_in_groupchat(void);
 void win_show_room_history(const char * const room_jid, const char * const nick,
     GTimeVal tv_stamp, const char * const message);
diff --git a/src/windows.c b/src/windows.c
index 1f49c540..91b6ee31 100644
--- a/src/windows.c
+++ b/src/windows.c
@@ -495,13 +495,29 @@ win_join_chat(const char * const room_jid, const char * const nick)
 }
 
 void
-win_show_chat_room_member(const char * const room_jid, const char * const nick)
+win_show_room_roster(const char * const room)
 {
-    int win_index = _find_prof_win_index(room_jid);
+    int win_index = _find_prof_win_index(room);
     WINDOW *win = _wins[win_index].win;
 
+    GSList *roster = room_get_roster(room);
+
+
+    if (roster != NULL) {
+        wprintw(win, "Room occupants:\n");
+    }
+
     wattron(win, COLOUR_ONLINE);
-    wprintw(win, "%s\n", nick);
+
+    while (roster != NULL) {
+        wprintw(win, "%s", roster->data);
+        if (roster->next != NULL) {
+            wprintw(win, ", ");
+        }
+        roster = g_slist_next(roster);
+    }
+    wprintw(win, "\n");
+
     wattroff(win, COLOUR_ONLINE);
 
     if (win_index == _curr_prof_win)
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214