summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/irc/irc-protocol.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c
index 6da8efce4..73424482a 100644
--- a/src/plugins/irc/irc-protocol.c
+++ b/src/plugins/irc/irc-protocol.c
@@ -1511,7 +1511,7 @@ IRC_PROTOCOL_CALLBACK(error)
IRC_PROTOCOL_CALLBACK(generic_error)
{
- int arg_error;
+ int arg_error, force_server_buffer;
char *str_error, str_target[512];
const char *pos_channel, *pos_nick;
struct t_irc_channel *ptr_channel;
@@ -1529,8 +1529,16 @@ IRC_PROTOCOL_CALLBACK(generic_error)
if (params[arg_error + 1])
{
- if ((strcmp (command, "432") != 0)
- && (strcmp (command, "433") != 0)
+ /*
+ * force display on server buffer for these messages:
+ * - 432: erroneous nickname
+ * - 433: nickname already in use
+ * - 437: nick/channel temporarily unavailable
+ */
+ force_server_buffer = ((strcmp (command, "432") == 0)
+ || (strcmp (command, "433") == 0)
+ || (strcmp (command, "437") == 0));
+ if (!force_server_buffer
&& irc_channel_is_channel (server, params[arg_error]))
{
pos_channel = params[arg_error];