about summary refs log tree commit diff stats
path: root/src/command/cmd_ac.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/command/cmd_ac.c')
-rw-r--r--src/command/cmd_ac.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/command/cmd_ac.c b/src/command/cmd_ac.c
index c80c058d..12331bfb 100644
--- a/src/command/cmd_ac.c
+++ b/src/command/cmd_ac.c
@@ -242,6 +242,7 @@ static Autocomplete logging_group_ac;
 static Autocomplete logging_group_color_ac;
 static Autocomplete color_ac;
 static Autocomplete correction_ac;
+static Autocomplete avatar_ac;
 
 void
 cmd_ac_init(void)
@@ -965,6 +966,11 @@ cmd_ac_init(void)
     autocomplete_add(correction_ac, "on");
     autocomplete_add(correction_ac, "off");
     autocomplete_add(correction_ac, "char");
+
+    avatar_ac = autocomplete_new();
+    autocomplete_add(avatar_ac, "get");
+    autocomplete_add(avatar_ac, "cmd");
+    autocomplete_add(avatar_ac, "open");
 }
 
 void
@@ -1276,6 +1282,7 @@ cmd_ac_reset(ProfWin *window)
     autocomplete_reset(logging_group_color_ac);
     autocomplete_reset(color_ac);
     autocomplete_reset(correction_ac);
+    autocomplete_reset(avatar_ac);
 
     autocomplete_reset(script_ac);
     if (script_show_ac) {
@@ -1429,6 +1436,7 @@ cmd_ac_uninit(void)
     autocomplete_free(logging_group_color_ac);
     autocomplete_free(color_ac);
     autocomplete_free(correction_ac);
+    autocomplete_free(avatar_ac);
 }
 
 static void
@@ -3773,9 +3781,19 @@ _avatar_autocomplete(ProfWin *window, const char *const input, gboolean previous
 {
     char *result = NULL;
 
+    result = autocomplete_param_with_ac(input, "/avatar", avatar_ac, TRUE, previous);
+    if (result) {
+        return result;
+    }
+
     jabber_conn_status_t conn_status = connection_get_status();
     if (conn_status == JABBER_CONNECTED) {
-        result = autocomplete_param_with_func(input, "/avatar", roster_barejid_autocomplete, previous, NULL);
+        result = autocomplete_param_with_func(input, "/avatar get", roster_barejid_autocomplete, previous, NULL);
+        if (result) {
+            return result;
+        }
+
+        result = autocomplete_param_with_func(input, "/avatar open", roster_barejid_autocomplete, previous, NULL);
         if (result) {
             return result;
         }