diff options
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/cmd_funcs.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 999afd10..9688cb09 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -6555,12 +6555,20 @@ cmd_autoconnect(ProfWin *window, const char *const command, gchar **args) prefs_set_string(PREF_CONNECT_ACCOUNT, NULL); cons_show("Autoconnect account disabled."); } else if (strcmp(args[0], "set") == 0) { - prefs_set_string(PREF_CONNECT_ACCOUNT, args[1]); - cons_show("Autoconnect account set to: %s.", args[1]); + if (args[1] == NULL || strlen(args[1]) == 0) { + cons_bad_cmd_usage(command); + } else { + if (accounts_account_exists(args[1])) { + prefs_set_string(PREF_CONNECT_ACCOUNT, args[1]); + cons_show("Autoconnect account set to: %s.", args[1]); + } else { + cons_show_error("Account '%s' does not exist.", args[1]); + } + } } else { cons_bad_cmd_usage(command); } - return true; + return TRUE; } gboolean @@ -6904,12 +6912,14 @@ cmd_plugins_load(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gboolean res = plugins_load(args[1]); + GString* error_message = g_string_new(NULL); + gboolean res = plugins_load(args[1], error_message); if (res) { cons_show("Loaded plugin: %s", args[1]); } else { - cons_show("Failed to load plugin: %s", args[1]); + cons_show("Failed to load plugin: %s. %s", args[1], error_message->str); } + g_string_free(error_message, TRUE); return TRUE; } @@ -6946,12 +6956,14 @@ cmd_plugins_reload(ProfWin *window, const char *const command, gchar **args) return TRUE; } - gboolean res = plugins_reload(args[1]); + GString* error_message = g_string_new(NULL); + gboolean res = plugins_reload(args[1], error_message); if (res) { cons_show("Reloaded plugin: %s", args[1]); } else { - cons_show("Failed to reload plugin: %s", args[1]); + cons_show("Failed to reload plugin: %s, %s", args[1], error_message); } + g_string_free(error_message, TRUE); return TRUE; } |