about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-01-18 23:05:35 +0000
committerJames Booth <boothj5@gmail.com>2014-01-18 23:05:35 +0000
commit168cb0e5578ddbde9bd3f956d7e2ed210978f0a7 (patch)
treec5456f0ffa5e3c95c2785d6bed4e73fb340efbba
parentbd221f6f30a512ee5f87d9ff81080f7134ee165a (diff)
downloadprofani-tty-168cb0e5578ddbde9bd3f956d7e2ed210978f0a7.tar.gz
Moved /connect autocomplete to function
-rw-r--r--src/command/command.c44
1 files changed, 36 insertions, 8 deletions
diff --git a/src/command/command.c b/src/command/command.c
index 8fe4f90e..f3c19955 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -66,6 +66,7 @@ static char * _roster_autocomplete(char *input, int *size);
 static char * _group_autocomplete(char *input, int *size);
 static char * _bookmark_autocomplete(char *input, int *size);
 static char * _otr_autocomplete(char *input, int *size);
+static char * _connect_autocomplete(char *input, int *size);
 
 GHashTable *commands = NULL;
 
@@ -837,6 +838,7 @@ static Autocomplete group_ac;
 static Autocomplete bookmark_ac;
 static Autocomplete otr_ac;
 static Autocomplete otr_log_ac;
+static Autocomplete connect_property_ac;
 
 /*
  * Initialise command autocompleter and history
@@ -1005,6 +1007,10 @@ cmd_init(void)
     autocomplete_add(otr_log_ac, "off");
     autocomplete_add(otr_log_ac, "redact");
 
+    connect_property_ac = autocomplete_new();
+    autocomplete_add(connect_property_ac, "server");
+    autocomplete_add(connect_property_ac, "port");
+
     cmd_history_init();
 }
 
@@ -1037,6 +1043,7 @@ cmd_uninit(void)
     autocomplete_free(bookmark_ac);
     autocomplete_free(otr_ac);
     autocomplete_free(otr_log_ac);
+    autocomplete_free(connect_property_ac);
 }
 
 // Command autocompletion functions
@@ -1112,6 +1119,7 @@ cmd_reset_autocomplete()
     autocomplete_reset(bookmark_ac);
     autocomplete_reset(otr_ac);
     autocomplete_reset(otr_log_ac);
+    autocomplete_reset(connect_property_ac);
     bookmark_autocomplete_reset();
 }
 
@@ -1333,13 +1341,6 @@ _cmd_complete_parameters(char *input, int *size)
         return;
     }
 
-    result = autocomplete_param_with_func(input, size, "/connect", accounts_find_enabled);
-    if (result != NULL) {
-        inp_replace_input(input, result, size);
-        g_free(result);
-        return;
-    }
-
     gchar *cmds[] = { "/help", "/prefs", "/log", "/disco", "/close", "/wins" };
     Autocomplete completers[] = { help_ac, prefs_ac, log_ac, disco_ac, close_ac, wins_ac  };
 
@@ -1355,7 +1356,8 @@ _cmd_complete_parameters(char *input, int *size)
     autocompleter acs[] = { _who_autocomplete, _sub_autocomplete, _notify_autocomplete,
         _autoaway_autocomplete, _titlebar_autocomplete, _theme_autocomplete,
         _account_autocomplete, _roster_autocomplete, _group_autocomplete,
-        _bookmark_autocomplete, _autoconnect_autocomplete, _otr_autocomplete };
+        _bookmark_autocomplete, _autoconnect_autocomplete, _otr_autocomplete,
+        _connect_autocomplete };
 
     for (i = 0; i < ARRAY_SIZE(acs); i++) {
         result = acs[i](input, size);
@@ -1633,6 +1635,32 @@ _theme_autocomplete(char *input, int *size)
 }
 
 static char *
+_connect_autocomplete(char *input, int *size)
+{
+    char *result = NULL;
+
+//    input[*size] = '\0';
+//    gchar **args = parse_args(input, 3, 3);
+
+//    if ((strncmp(input, "/account set", 12) == 0) && (args != NULL)) {
+//        GString *beginning = g_string_new("/account set ");
+//        g_string_append(beginning, args[1]);
+//        result = autocomplete_param_with_ac(input, size, beginning->str, account_set_ac);
+//        g_string_free(beginning, TRUE);
+//        if (result != NULL) {
+//            return result;
+//        }
+//    }
+
+    result = autocomplete_param_with_func(input, size, "/connect", accounts_find_enabled);
+    if (result != NULL) {
+        return result;
+    }
+
+    return NULL;
+}
+
+static char *
 _account_autocomplete(char *input, int *size)
 {
     char *result = NULL;