diff options
Diffstat (limited to 'src/irc')
-rw-r--r-- | src/irc/core/irc-servers.c | 4 | ||||
-rw-r--r-- | src/irc/core/irc.h | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c index ca548400..f39d858a 100644 --- a/src/irc/core/irc-servers.c +++ b/src/irc/core/irc-servers.c @@ -68,9 +68,9 @@ static int isnickflag_func(char flag) return isnickflag(flag); } -static int ischannel_func(char flag) +static int ischannel_func(const char *data) { - return ischannel(flag); + return ischannel_target(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 12065cb1..7eacca7a 100644 --- a/src/irc/core/irc.h +++ b/src/irc/core/irc.h @@ -25,6 +25,10 @@ (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 */ |