about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-01-23 22:38:12 +0000
committerJames Booth <boothj5@gmail.com>2014-01-23 22:38:12 +0000
commite089ffb15ca3918b456e05c6198fc0cd122d08a2 (patch)
tree2512f23ddabfc8c4ff789bffa74898764101da48 /src
parent8dbe300d72e3bdaba672b4a7027ab0f2fb431862 (diff)
downloadprofani-tty-e089ffb15ca3918b456e05c6198fc0cd122d08a2.tar.gz
Show message when alias already exists in /alias add
Diffstat (limited to 'src')
-rw-r--r--src/command/commands.c7
-rw-r--r--src/config/preferences.c11
-rw-r--r--src/config/preferences.h2
3 files changed, 14 insertions, 6 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index c4390966..5d30d183 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1834,8 +1834,11 @@ cmd_alias(gchar **args, struct cmd_help_t help)
                 cons_show("Usage: %s", help.usage);
                 return TRUE;
             } else {
-                prefs_add_alias(alias, value);
-                cons_show("Command alias added /%s -> %s", alias, value);
+                if (prefs_add_alias(alias, value) == TRUE) {
+                    cons_show("Command alias added /%s -> %s", alias, value);
+                } else {
+                    cons_show("Command alias /%s already exists.", alias);
+                }
                 return TRUE;
             }
         }
diff --git a/src/config/preferences.c b/src/config/preferences.c
index 88e267f4..3107f303 100644
--- a/src/config/preferences.c
+++ b/src/config/preferences.c
@@ -260,11 +260,16 @@ prefs_set_autoaway_time(gint value)
     _save_prefs();
 }
 
-void
+gboolean
 prefs_add_alias(const char * const name, const char * const value)
 {
-    g_key_file_set_string(prefs, PREF_GROUP_ALIAS, name, value);
-    _save_prefs();
+    if (g_key_file_has_key(prefs, PREF_GROUP_ALIAS, name, NULL)) {
+        return FALSE;
+    } else {
+        g_key_file_set_string(prefs, PREF_GROUP_ALIAS, name, value);
+        _save_prefs();
+        return TRUE;
+    }
 }
 
 char *
diff --git a/src/config/preferences.h b/src/config/preferences.h
index 22a175d4..e79137ed 100644
--- a/src/config/preferences.h
+++ b/src/config/preferences.h
@@ -97,7 +97,7 @@ void prefs_set_autoaway_time(gint value);
 
 void prefs_add_login(const char *jid);
 
-void prefs_add_alias(const char * const name, const char * const value);
+gboolean prefs_add_alias(const char * const name, const char * const value);
 gboolean prefs_remove_alias(const char * const name);
 char* prefs_get_alias(const char * const name);
 GList* prefs_get_aliases(void);