diff --git a/src/fe-common/irc/fe-events-numeric.c b/src/fe-common/irc/fe-events-numeric.c index 85a9af5a..4e6e940a 100644 --- a/src/fe-common/irc/fe-events-numeric.c +++ b/src/fe-common/irc/fe-events-numeric.c @@ -459,7 +459,8 @@ static void event_whois_help(IRC_SERVER_REC *server, const char *data) g_free(params); } -static void event_whois_modes(IRC_SERVER_REC *server, const char *data) +static void event_whois_modes(IRC_SERVER_REC *server, const char *data, + const char *orignick) { char *params, *nick, *modes; @@ -468,8 +469,13 @@ static void event_whois_modes(IRC_SERVER_REC *server, const char *data) params = event_get_params(data, 6, NULL, &nick, NULL, NULL, NULL, &modes); - printformat(server, nick, MSGLEVEL_CRAP, - IRCTXT_WHOIS_MODES, nick, modes); + if (!ischannel(*nick)) { + printformat(server, nick, MSGLEVEL_CRAP, + IRCTXT_WHOIS_MODES, nick, modes); + } else { + /* OPN's dancer uses for channel forwarding */ + print_event_received(server, data, orignick, FALSE); + } g_free(params); } diff --git a/src/irc/core/modes.h b/src/irc/core/modes.h index 12f36896..d2e10cd9 100644 --- a/src/irc/core/modes.h +++ b/src/irc/core/modes.h @@ -5,7 +5,7 @@ #define HAS_MODE_ARG_ALWAYS(mode) \ ((mode) == 'b' || (mode) == 'e' || (mode) == 'I' || (mode) == 'q' || \ (mode) == 'd' || (mode) == 'o' || (mode) == 'h' || (mode) == 'v' || \ - (mode) == 'O' || (mode) == 'k') + (mode) == 'O' || (mode) == 'k' || (mode) == 'f') /* modes that have argument when being set (+) */ #define HAS_MODE_ARG_SET(mode) \