about summary refs log tree commit diff stats
path: root/src/command/cmd_funcs.c
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2019-04-18 20:53:02 +0200
committerMichael Vetter <jubalh@iodoru.org>2019-04-18 20:53:02 +0200
commit0c248a0b16e9c159b274667c7149f50299328804 (patch)
tree08a7db8e9aa5f14546c9ba1e203b1c8ed3ba0b68 /src/command/cmd_funcs.c
parent7e4e9e668853d8cc404ace0c160376d113069c32 (diff)
downloadprofani-tty-0c248a0b16e9c159b274667c7149f50299328804.tar.gz
Add /occupants indent command
Roster has a `/roster contact indent` option.
Now we have the same for occupants. So contacts in roster and in MUC can
have configurable indentation.

Regards https://github.com/boothj5/profanity/issues/690
Diffstat (limited to 'src/command/cmd_funcs.c')
-rw-r--r--src/command/cmd_funcs.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c
index abd83492..788c2f32 100644
--- a/src/command/cmd_funcs.c
+++ b/src/command/cmd_funcs.c
@@ -4409,6 +4409,38 @@ cmd_occupants(ProfWin *window, const char *const command, gchar **args)
     ProfMucWin *mucwin = (ProfMucWin*)window;
     assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK);
 
+    if (g_strcmp0(args[0], "indent") == 0) {
+        if (!args[1]) {
+            cons_bad_cmd_usage(command);
+            return TRUE;
+        } else {
+            int intval = 0;
+            char *err_msg = NULL;
+            gboolean res = strtoi_range(args[1], &intval, 0, 10, &err_msg);
+            if (res) {
+                prefs_set_occupants_indent(intval);
+                cons_show("Occupants indent set to: %d", intval);
+
+                // get the list of joined rooms
+                GList *rooms = muc_rooms();
+                GList *curr = rooms;
+                while (curr) {
+                    char* roomjid = curr->data;
+                    ProfMucWin *mw = wins_get_muc(roomjid);
+                    if (mw != NULL)
+                       mucwin_update_occupants(mw);
+
+                    curr = g_list_next(curr);
+                }
+            } else {
+                cons_show(err_msg);
+                free(err_msg);
+            }
+            return TRUE;
+        }
+    }
+
+
     if (g_strcmp0(args[0], "show") == 0) {
         if (g_strcmp0(args[1], "jid") == 0) {
             mucwin->showjid = TRUE;