about summary refs log tree commit diff stats
path: root/src/ui/occupantswin.c
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2019-04-23 13:50:58 +0200
committerMichael Vetter <jubalh@iodoru.org>2019-04-23 14:13:03 +0200
commit566022786d458802223340dffc450529637775ca (patch)
treeb32c7ab1f26ba60835e53a805ee34580b9ccb4ed /src/ui/occupantswin.c
parent82ddd8857846b2bdfe4cc14ebe6ea8edc4f710b2 (diff)
downloadprofani-tty-566022786d458802223340dffc450529637775ca.tar.gz
Add occupants header char
`/occupants header char` now sets a character that is displayed before
the role (moderator, visitor..) in a room. Similar to `/roster header
char` is displaying a char for the roster.

Regards https://github.com/boothj5/profanity/issues/690
Diffstat (limited to 'src/ui/occupantswin.c')
-rw-r--r--src/ui/occupantswin.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/ui/occupantswin.c b/src/ui/occupantswin.c
index 46b44b78..b924ea7c 100644
--- a/src/ui/occupantswin.c
+++ b/src/ui/occupantswin.c
@@ -90,10 +90,22 @@ occupantswin_occupants(const char *const roomjid)
 
             werase(layout->subwin);
 
+            GString *prefix = g_string_new(" ");
+
+            char ch = prefs_get_occupants_header_char();
+            if (ch) {
+                g_string_append_printf(prefix, "%c", ch);
+            }
+
             if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) {
+
+                GString *role = g_string_new(prefix->str);
+                g_string_append(role, "Moderators");
+
                 wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
-                win_sub_print(layout->subwin, " -Moderators", TRUE, FALSE, 0);
+                win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0);
                 wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
+                g_string_free(role, TRUE);
                 GList *roster_curr = occupants;
                 while (roster_curr) {
                     Occupant *occupant = roster_curr->data;
@@ -103,9 +115,13 @@ occupantswin_occupants(const char *const roomjid)
                     roster_curr = g_list_next(roster_curr);
                 }
 
+                role = g_string_new(prefix->str);
+                g_string_append(role, "Participants");
+
                 wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
-                win_sub_print(layout->subwin, " -Participants", TRUE, FALSE, 0);
+                win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0);
                 wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
+                g_string_free(role, TRUE);
                 roster_curr = occupants;
                 while (roster_curr) {
                     Occupant *occupant = roster_curr->data;
@@ -115,9 +131,13 @@ occupantswin_occupants(const char *const roomjid)
                     roster_curr = g_list_next(roster_curr);
                 }
 
+                role = g_string_new(prefix->str);
+                g_string_append(role, "Visitors");
+
                 wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
-                win_sub_print(layout->subwin, " -Visitors", TRUE, FALSE, 0);
+                win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0);
                 wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
+                g_string_free(role, TRUE);
                 roster_curr = occupants;
                 while (roster_curr) {
                     Occupant *occupant = roster_curr->data;
@@ -127,9 +147,14 @@ occupantswin_occupants(const char *const roomjid)
                     roster_curr = g_list_next(roster_curr);
                 }
             } else {
+                GString *role = g_string_new(prefix->str);
+                g_string_append(role, "Occupants\n");
+
                 wattron(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
-                win_sub_print(layout->subwin, " -Occupants\n", TRUE, FALSE, 0);
+                win_sub_print(layout->subwin, role->str, TRUE, FALSE, 0);
                 wattroff(layout->subwin, theme_attrs(THEME_OCCUPANTS_HEADER));
+                g_string_free(role, TRUE);
+
                 GList *roster_curr = occupants;
                 while (roster_curr) {
                     Occupant *occupant = roster_curr->data;
@@ -137,6 +162,8 @@ occupantswin_occupants(const char *const roomjid)
                     roster_curr = g_list_next(roster_curr);
                 }
             }
+
+            g_string_free(prefix, TRUE);
         }
 
         g_list_free(occupants);