about summary refs log tree commit diff stats
path: root/src/command
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-01-23 19:56:33 +0000
committerJames Booth <boothj5@gmail.com>2014-01-23 19:56:33 +0000
commit8ba2d2694756da38b680befff88fdaea1b5ef8bf (patch)
tree65eb7485ee917accc8f8508b28e1cc29cf1a095b /src/command
parentb6c52007ee2ddc4001a2ab8a6586ca293d54ed18 (diff)
downloadprofani-tty-8ba2d2694756da38b680befff88fdaea1b5ef8bf.tar.gz
Added skeleton /alias command
Diffstat (limited to 'src/command')
-rw-r--r--src/command/command.c20
-rw-r--r--src/command/commands.c7
-rw-r--r--src/command/commands.h1
3 files changed, 26 insertions, 2 deletions
diff --git a/src/command/command.c b/src/command/command.c
index ceed2e01..76f237cb 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -546,6 +546,14 @@ static struct cmd_t command_defs[] =
           "The default is 'off'.",
           NULL } } },
 
+    { "/alias",
+        cmd_alias, parse_args, 1, 3, &cons_alias_setting,
+        { "/alias add|remove|list [name value]", "Add your own command aliases.",
+        { "/alias add|remove|list [name value]",
+          "-----------------------------------",
+          "Add, remove or show command aliases.",
+          NULL } } },
+
     { "/chlog",
         cmd_chlog, parse_args, 1, 1, &cons_chlog_setting,
         { "/chlog on|off", "Chat logging to file.",
@@ -861,6 +869,7 @@ static Autocomplete otr_log_ac;
 static Autocomplete connect_property_ac;
 static Autocomplete statuses_ac;
 static Autocomplete statuses_cons_chat_ac;
+static Autocomplete alias_ac;
 
 /*
  * Initialise command autocompleter and history
@@ -1044,6 +1053,11 @@ cmd_init(void)
     autocomplete_add(statuses_cons_chat_ac, "online");
     autocomplete_add(statuses_cons_chat_ac, "none");
 
+    alias_ac = autocomplete_new();
+    autocomplete_add(alias_ac, "add");
+    autocomplete_add(alias_ac, "remove");
+    autocomplete_add(alias_ac, "list");
+
     cmd_history_init();
 }
 
@@ -1079,6 +1093,7 @@ cmd_uninit(void)
     autocomplete_free(connect_property_ac);
     autocomplete_free(statuses_ac);
     autocomplete_free(statuses_cons_chat_ac);
+    autocomplete_free(alias_ac);
 }
 
 // Command autocompletion functions
@@ -1157,6 +1172,7 @@ cmd_reset_autocomplete()
     autocomplete_reset(connect_property_ac);
     autocomplete_reset(statuses_ac);
     autocomplete_reset(statuses_cons_chat_ac);
+    autocomplete_reset(alias_ac);
     bookmark_autocomplete_reset();
 }
 
@@ -1378,8 +1394,8 @@ _cmd_complete_parameters(char *input, int *size)
         return;
     }
 
-    gchar *cmds[] = { "/help", "/prefs", "/log", "/disco", "/close", "/wins" };
-    Autocomplete completers[] = { help_ac, prefs_ac, log_ac, disco_ac, close_ac, wins_ac  };
+    gchar *cmds[] = { "/help", "/prefs", "/log", "/disco", "/close", "/wins", "/alias" };
+    Autocomplete completers[] = { help_ac, prefs_ac, log_ac, disco_ac, close_ac, wins_ac, alias_ac };
 
     for (i = 0; i < ARRAY_SIZE(cmds); i++) {
         result = autocomplete_param_with_ac(input, size, cmds[i], completers[i]);
diff --git a/src/command/commands.c b/src/command/commands.c
index 7943bfad..712d39d8 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1819,6 +1819,13 @@ cmd_nick(gchar **args, struct cmd_help_t help)
 }
 
 gboolean
+cmd_alias(gchar **args, struct cmd_help_t help)
+{
+    cons_show("Alias command TODO");
+    return TRUE;
+}
+
+gboolean
 cmd_tiny(gchar **args, struct cmd_help_t help)
 {
     char *url = args[0];
diff --git a/src/command/commands.h b/src/command/commands.h
index 741ab638..4572da52 100644
--- a/src/command/commands.h
+++ b/src/command/commands.h
@@ -109,5 +109,6 @@ gboolean cmd_who(gchar **args, struct cmd_help_t help);
 gboolean cmd_win(gchar **args, struct cmd_help_t help);
 gboolean cmd_wins(gchar **args, struct cmd_help_t help);
 gboolean cmd_xa(gchar **args, struct cmd_help_t help);
+gboolean cmd_alias(gchar **args, struct cmd_help_t help);
 
 #endif