about summary refs log tree commit diff stats
path: root/src/command/commands.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-01-25 01:39:12 +0000
committerJames Booth <boothj5@gmail.com>2014-01-25 01:39:12 +0000
commit4bd06a5d8748b0096845cecd2ad24da7a194aff0 (patch)
treef2d24d2a31e2625d9785371e64a40259fe829f21 /src/command/commands.c
parent17f40b76ee829c806bbd995aed73c3c7531beb26 (diff)
downloadprofani-tty-4bd06a5d8748b0096845cecd2ad24da7a194aff0.tar.gz
Don't allow /alias to overwrite standard command
Diffstat (limited to 'src/command/commands.c')
-rw-r--r--src/command/commands.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index 76f85210..b282f525 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1830,21 +1830,24 @@ cmd_alias(gchar **args, struct cmd_help_t help)
             cons_show("Usage: %s", help.usage);
             return TRUE;
         } else {
+            GString *ac_value = g_string_new("/");
+            g_string_append(ac_value, alias);
+
             char *value = args[2];
             if (value == NULL) {
                 cons_show("Usage: %s", help.usage);
+                g_string_free(ac_value, TRUE);
+                return TRUE;
+            } else if (cmd_exists(ac_value->str)) {
+                cons_show("Command or alias '%s' already exists.");
+                g_string_free(ac_value, TRUE);
                 return TRUE;
             } else {
-                if (prefs_add_alias(alias, value) == TRUE) {
-                    GString *ac_value = g_string_new("/");
-                    g_string_append(ac_value, alias);
-                    cmd_autocomplete_add(ac_value->str);
-                    cmd_alias_add(alias);
-                    g_string_free(ac_value, TRUE);
-                    cons_show("Command alias added /%s -> %s", alias, value);
-                } else {
-                    cons_show("Command alias /%s already exists.", alias);
-                }
+                prefs_add_alias(alias, value);
+                cmd_autocomplete_add(ac_value->str);
+                cmd_alias_add(alias);
+                cons_show("Command alias added /%s -> %s", alias, value);
+                g_string_free(ac_value, TRUE);
                 return TRUE;
             }
         }