From 16ea00d7e84a05703e047fa010e2b0621104220b Mon Sep 17 00:00:00 2001 From: dequis Date: Sun, 11 Feb 2018 18:27:17 -0300 Subject: root_commands: Improve 'chat add' error/success messages This handles the most common error case with an obvious error message (channel already exists, join it, etc), and the rarer ones with vague but different wording. For those cases: - "Could not add chatroom." This wording is not present in this version anymore, likely means the channel already exists. - "Error creating channel for chatroom." irc_channel_new() failed but the channel doesn't exist already. This could be that some name validation failed, but this function already generates a suitable name. - "Error adding chatroom." irc_channel_new() succeeded, but one of the set_setstr() failed. There are account checks earlier, and the room setting is not normally validated at this point. Can't really imagine situations where these vague errors would still show up, but at least now you only get those for unknown cases. --- root_commands.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'root_commands.c') diff --git a/root_commands.c b/root_commands.c index 1278126f..4988e382 100644 --- a/root_commands.c +++ b/root_commands.c @@ -1341,13 +1341,19 @@ static void cmd_chat(irc_t *irc, char **cmd) set_setstr(&ic->set, "chat_type", "room") && set_setstr(&ic->set, "account", cmd[2]) && set_setstr(&ic->set, "room", room)) { - irc_rootmsg(irc, "Chatroom successfully added."); + irc_rootmsg(irc, "Chatroom successfully added, join with \002/join %s\002", channel); } else { if (ic) { irc_channel_free(ic); - } - irc_rootmsg(irc, "Could not add chatroom."); + irc_rootmsg(irc, "Error adding chatroom."); + } else if (irc_channel_by_name(irc, channel)) { + irc_rootmsg(irc, "A channel named `%s' already exists. " + "Join with \002/join %s\002 or see \002help channel\002 to modify it", + channel, channel); + } else { + irc_rootmsg(irc, "Error creating channel for chatroom."); + } } g_free(channel); } else if (g_strcasecmp(cmd[1], "list") == 0) { -- cgit v1.2.3