diff options
Diffstat (limited to 'src/irc/core')
-rw-r--r-- | src/irc/core/irc-servers.c | 8 | ||||
-rw-r--r-- | src/irc/core/irc.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index 966ddf5e..a2d281ed 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -71,7 +71,13 @@ static int isnickflag_func(char flag) static int ischannel_func(const char *data) { - return ischannel_target(data); + if (*data == '@') { + /* @#channel, @+#channel */ + data++; + if (*data == '+' && ischannel(data[1])) + return 1; + } + return ischannel(*data); } static void send_message(SERVER_REC *server, const char *target, diff --git a/src/irc/core/irc.h b/src/irc/core/irc.h index 17a18635..46051d9e 100644 --- a/src/irc/core/irc.h +++ b/src/irc/core/irc.h @@ -25,10 +25,6 @@ (a) == '!' || /* secure */ \ (a) == '+') /* modeless */ -#define ischannel_target(a) \ - (ischannel((a)[0]) || \ - ((a)[0] == '@' && ischannel((a)[1]))) /* hybrid6 @#channel */ - #define IS_IRC_ITEM(rec) (IS_IRC_CHANNEL(rec) || IS_IRC_QUERY(rec)) extern char *current_server_event; /* current server event being processed */ |