From 0c8867c9e3aa41c37c4dbb9045b8b6bf3cfa746b Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Tue, 14 Aug 2007 14:42:10 +0000 Subject: [PATCH] Fixed parsing of command "353" when prefixes were not received from server --- src/irc/irc-mode.c | 12 +++++++++--- src/irc/irc.h | 1 + weechat/src/irc/irc-mode.c | 12 +++++++++--- weechat/src/irc/irc.h | 1 + 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/irc/irc-mode.c b/src/irc/irc-mode.c index cc1cd243c..ba76c7dfc 100644 --- a/src/irc/irc-mode.c +++ b/src/irc/irc-mode.c @@ -298,9 +298,15 @@ irc_mode_user_set (t_irc_server *server, char *modes) int irc_mode_nick_prefix_allowed (t_irc_server *server, char prefix) { - /* if server did not send any prefix info, then consider this prefix is allowed */ + char str[2]; + + /* if server did not send any prefix info, then use default prefixes */ if (!server->prefix) - return 1; - + { + str[0] = prefix; + str[1] = '\0'; + return (strpbrk (str, IRC_DEFAULT_PREFIXES_LIST)) ? 1 : 0; + } + return (strchr (server->prefix, prefix) != NULL); } diff --git a/src/irc/irc.h b/src/irc/irc.h index a52d446a6..570a254ca 100644 --- a/src/irc/irc.h +++ b/src/irc/irc.h @@ -53,6 +53,7 @@ #define PREFIX_SEND_MOD "<==" #define IRC_DEFAULT_PORT 6667 +#define IRC_DEFAULT_PREFIXES_LIST "@%+~&!-" /* nick types */ diff --git a/weechat/src/irc/irc-mode.c b/weechat/src/irc/irc-mode.c index cc1cd243c..ba76c7dfc 100644 --- a/weechat/src/irc/irc-mode.c +++ b/weechat/src/irc/irc-mode.c @@ -298,9 +298,15 @@ irc_mode_user_set (t_irc_server *server, char *modes) int irc_mode_nick_prefix_allowed (t_irc_server *server, char prefix) { - /* if server did not send any prefix info, then consider this prefix is allowed */ + char str[2]; + + /* if server did not send any prefix info, then use default prefixes */ if (!server->prefix) - return 1; - + { + str[0] = prefix; + str[1] = '\0'; + return (strpbrk (str, IRC_DEFAULT_PREFIXES_LIST)) ? 1 : 0; + } + return (strchr (server->prefix, prefix) != NULL); } diff --git a/weechat/src/irc/irc.h b/weechat/src/irc/irc.h index a52d446a6..570a254ca 100644 --- a/weechat/src/irc/irc.h +++ b/weechat/src/irc/irc.h @@ -53,6 +53,7 @@ #define PREFIX_SEND_MOD "<==" #define IRC_DEFAULT_PORT 6667 +#define IRC_DEFAULT_PREFIXES_LIST "@%+~&!-" /* nick types */