about summary refs log tree commit diff stats
path: root/src/command/command.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-01-17 01:49:16 +0000
committerJames Booth <boothj5@gmail.com>2016-01-17 01:49:16 +0000
commite58be44f8185a0fbb43a3ee902acf21c89b158b6 (patch)
treee346d021c16caa12b2b7bed645926ad4f3adfbad /src/command/command.c
parent56751e896bf60e1305d99ed9f827279ac9cc25d3 (diff)
downloadprofani-tty-e58be44f8185a0fbb43a3ee902acf21c89b158b6.tar.gz
Added /roster room unread preference
closes ##708
Diffstat (limited to 'src/command/command.c')
-rw-r--r--src/command/command.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/command/command.c b/src/command/command.c
index 681e4ff7..b6c00803 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -283,6 +283,7 @@ static struct cmd_t command_defs[] =
             "/roster by group|presence|none",
             "/roster order name|presence",
             "/roster room order name|unread",
+            "/roster room unread before|after|off",
             "/roster header char <char>|none",
             "/roster presence indent <indent>",
             "/roster contact char <char>|none",
@@ -327,6 +328,9 @@ static struct cmd_t command_defs[] =
             { "order presence",             "Order roster items by presence, and then by name." },
             { "room order name",            "Order roster rooms by name." },
             { "room order unread",          "Order roster rooms by unread messages, and then by name." },
+            { "room unread before",         "Show unread message count before room in roster." },
+            { "room unread after",          "Show unread message count after room in roster." },
+            { "room unread off",            "Do not show unread message count for rooms in rosters." },
             { "header char <char>",         "Prefix roster headers with specified character." },
             { "header char none",           "Remove roster header character prefix." },
             { "contact char <char>",        "Prefix roster contacts with specified character." },
@@ -1911,6 +1915,7 @@ static Autocomplete roster_char_ac;
 static Autocomplete roster_remove_all_ac;
 static Autocomplete roster_room_ac;
 static Autocomplete roster_room_order_ac;
+static Autocomplete roster_unread_ac;
 static Autocomplete group_ac;
 static Autocomplete bookmark_ac;
 static Autocomplete bookmark_property_ac;
@@ -2212,8 +2217,14 @@ cmd_init(void)
     autocomplete_add(roster_order_ac, "name");
     autocomplete_add(roster_order_ac, "presence");
 
+    roster_unread_ac = autocomplete_new();
+    autocomplete_add(roster_unread_ac, "before");
+    autocomplete_add(roster_unread_ac, "after");
+    autocomplete_add(roster_unread_ac, "off");
+
     roster_room_ac = autocomplete_new();
     autocomplete_add(roster_room_ac, "order");
+    autocomplete_add(roster_room_ac, "unread");
 
     roster_room_order_ac = autocomplete_new();
     autocomplete_add(roster_room_order_ac, "name");
@@ -2492,6 +2503,7 @@ cmd_uninit(void)
     autocomplete_free(roster_by_ac);
     autocomplete_free(roster_order_ac);
     autocomplete_free(roster_room_ac);
+    autocomplete_free(roster_unread_ac);
     autocomplete_free(roster_room_order_ac);
     autocomplete_free(roster_remove_all_ac);
     autocomplete_free(group_ac);
@@ -2702,6 +2714,7 @@ cmd_reset_autocomplete(ProfWin *window)
     autocomplete_reset(roster_by_ac);
     autocomplete_reset(roster_order_ac);
     autocomplete_reset(roster_room_ac);
+    autocomplete_reset(roster_unread_ac);
     autocomplete_reset(roster_room_order_ac);
     autocomplete_reset(roster_remove_all_ac);
     autocomplete_reset(group_ac);
@@ -3115,6 +3128,10 @@ _roster_autocomplete(ProfWin *window, const char *const input)
     if (result) {
         return result;
     }
+    result = autocomplete_param_with_ac(input, "/roster room unread", roster_unread_ac, TRUE);
+    if (result) {
+        return result;
+    }
 
     jabber_conn_status_t conn_status = jabber_get_connection_status();
     if (conn_status == JABBER_CONNECTED) {