mirror of
https://github.com/weechat/weechat.git
synced 2026-06-26 04:46:37 +02:00
irc: keep trailing spaces in IRC messages only for some commands (if message ends with text from user)
This commit is contained in:
+141
-137
@@ -4372,7 +4372,8 @@ irc_protocol_recv_command (struct t_irc_server *server,
|
||||
const char *msg_command,
|
||||
const char *msg_channel)
|
||||
{
|
||||
int i, cmd_found, return_code, argc, decode_color, message_ignored;
|
||||
int i, cmd_found, return_code, argc, decode_color, keep_trailing_spaces;
|
||||
int message_ignored;
|
||||
char *dup_irc_message, *pos_space;
|
||||
struct t_irc_channel *ptr_channel;
|
||||
t_irc_recv_func *cmd_recv_func;
|
||||
@@ -4381,143 +4382,143 @@ irc_protocol_recv_command (struct t_irc_server *server,
|
||||
char *nick, *address, *address_color, *host, *host_no_color, *host_color;
|
||||
char **argv, **argv_eol;
|
||||
struct t_irc_protocol_msg irc_protocol_messages[] =
|
||||
{ { "authenticate", /* authenticate */ 1, &irc_protocol_cb_authenticate },
|
||||
{ "cap", /* client capability */ 1, &irc_protocol_cb_cap },
|
||||
{ "error", /* error received from IRC server */ 1, &irc_protocol_cb_error },
|
||||
{ "invite", /* invite a nick on a channel */ 1, &irc_protocol_cb_invite },
|
||||
{ "join", /* join a channel */ 1, &irc_protocol_cb_join },
|
||||
{ "kick", /* forcibly remove a user from a channel */ 1, &irc_protocol_cb_kick },
|
||||
{ "kill", /* close client-server connection */ 1, &irc_protocol_cb_kill },
|
||||
{ "mode", /* change channel or user mode */ 1, &irc_protocol_cb_mode },
|
||||
{ "nick", /* change current nickname */ 1, &irc_protocol_cb_nick },
|
||||
{ "notice", /* send notice message to user */ 1, &irc_protocol_cb_notice },
|
||||
{ "part", /* leave a channel */ 1, &irc_protocol_cb_part },
|
||||
{ "ping", /* ping server */ 1, &irc_protocol_cb_ping },
|
||||
{ "pong", /* answer to a ping message */ 1, &irc_protocol_cb_pong },
|
||||
{ "privmsg", /* message received */ 1, &irc_protocol_cb_privmsg },
|
||||
{ "quit", /* close all connections and quit */ 1, &irc_protocol_cb_quit },
|
||||
{ "topic", /* get/set channel topic */ 0, &irc_protocol_cb_topic },
|
||||
{ { "authenticate", /* authenticate */ 1, 0, &irc_protocol_cb_authenticate },
|
||||
{ "cap", /* client capability */ 1, 0, &irc_protocol_cb_cap },
|
||||
{ "error", /* error received from IRC server */ 1, 0, &irc_protocol_cb_error },
|
||||
{ "invite", /* invite a nick on a channel */ 1, 0, &irc_protocol_cb_invite },
|
||||
{ "join", /* join a channel */ 1, 0, &irc_protocol_cb_join },
|
||||
{ "kick", /* forcibly remove a user from a channel */ 1, 1, &irc_protocol_cb_kick },
|
||||
{ "kill", /* close client-server connection */ 1, 1, &irc_protocol_cb_kill },
|
||||
{ "mode", /* change channel or user mode */ 1, 0, &irc_protocol_cb_mode },
|
||||
{ "nick", /* change current nickname */ 1, 0, &irc_protocol_cb_nick },
|
||||
{ "notice", /* send notice message to user */ 1, 1, &irc_protocol_cb_notice },
|
||||
{ "part", /* leave a channel */ 1, 1, &irc_protocol_cb_part },
|
||||
{ "ping", /* ping server */ 1, 0, &irc_protocol_cb_ping },
|
||||
{ "pong", /* answer to a ping message */ 1, 0, &irc_protocol_cb_pong },
|
||||
{ "privmsg", /* message received */ 1, 1, &irc_protocol_cb_privmsg },
|
||||
{ "quit", /* close all connections and quit */ 1, 1, &irc_protocol_cb_quit },
|
||||
{ "topic", /* get/set channel topic */ 0, 1, &irc_protocol_cb_topic },
|
||||
{ "wallops", /* send a message to all currently connected users who have "
|
||||
"set the 'w' user mode "
|
||||
"for themselves */ 1, &irc_protocol_cb_wallops },
|
||||
{ "001", /* a server message */ 1, &irc_protocol_cb_001 },
|
||||
{ "005", /* a server message */ 1, &irc_protocol_cb_005 },
|
||||
{ "221", /* user mode string */ 1, &irc_protocol_cb_221 },
|
||||
{ "223", /* whois (charset is) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "264", /* whois (is using encrypted connection) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "275", /* whois (secure connection) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "276", /* whois (has client certificate fingerprint) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "301", /* away message */ 1, &irc_protocol_cb_301 },
|
||||
{ "303", /* ison */ 1, &irc_protocol_cb_303 },
|
||||
{ "305", /* unaway */ 1, &irc_protocol_cb_305 },
|
||||
{ "306", /* now away */ 1, &irc_protocol_cb_306 },
|
||||
{ "307", /* whois (registered nick) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "310", /* whois (help mode) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "311", /* whois (user) */ 1, &irc_protocol_cb_311 },
|
||||
{ "312", /* whois (server) */ 1, &irc_protocol_cb_312 },
|
||||
{ "313", /* whois (operator) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "314", /* whowas */ 1, &irc_protocol_cb_314 },
|
||||
{ "315", /* end of /who list */ 1, &irc_protocol_cb_315 },
|
||||
{ "317", /* whois (idle) */ 1, &irc_protocol_cb_317 },
|
||||
{ "318", /* whois (end) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "319", /* whois (channels) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "320", /* whois (identified user) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "321", /* /list start */ 1, &irc_protocol_cb_321 },
|
||||
{ "322", /* channel (for /list) */ 1, &irc_protocol_cb_322 },
|
||||
{ "323", /* end of /list */ 1, &irc_protocol_cb_323 },
|
||||
{ "324", /* channel mode */ 1, &irc_protocol_cb_324 },
|
||||
{ "326", /* whois (has oper privs) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "327", /* whois (host) */ 1, &irc_protocol_cb_327 },
|
||||
{ "328", /* channel url */ 1, &irc_protocol_cb_328 },
|
||||
{ "329", /* channel creation date */ 1, &irc_protocol_cb_329 },
|
||||
{ "330", /* is logged in as */ 1, &irc_protocol_cb_330_343 },
|
||||
{ "331", /* no topic for channel */ 1, &irc_protocol_cb_331 },
|
||||
{ "332", /* topic of channel */ 0, &irc_protocol_cb_332 },
|
||||
{ "333", /* infos about topic (nick and date changed) */ 1, &irc_protocol_cb_333 },
|
||||
{ "335", /* is a bot on */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "338", /* whois (host) */ 1, &irc_protocol_cb_338 },
|
||||
{ "341", /* inviting */ 1, &irc_protocol_cb_341 },
|
||||
{ "343", /* is opered as */ 1, &irc_protocol_cb_330_343 },
|
||||
{ "344", /* channel reop */ 1, &irc_protocol_cb_344 },
|
||||
{ "345", /* end of channel reop list */ 1, &irc_protocol_cb_345 },
|
||||
{ "346", /* invite list */ 1, &irc_protocol_cb_346 },
|
||||
{ "347", /* end of invite list */ 1, &irc_protocol_cb_347 },
|
||||
{ "348", /* channel exception list */ 1, &irc_protocol_cb_348 },
|
||||
{ "349", /* end of channel exception list */ 1, &irc_protocol_cb_349 },
|
||||
{ "351", /* server version */ 1, &irc_protocol_cb_351 },
|
||||
{ "352", /* who */ 1, &irc_protocol_cb_352 },
|
||||
{ "353", /* list of nicks on channel */ 1, &irc_protocol_cb_353 },
|
||||
{ "366", /* end of /names list */ 1, &irc_protocol_cb_366 },
|
||||
{ "367", /* banlist */ 1, &irc_protocol_cb_367 },
|
||||
{ "368", /* end of banlist */ 1, &irc_protocol_cb_368 },
|
||||
{ "369", /* whowas (end) */ 1, &irc_protocol_cb_whowas_nick_msg },
|
||||
{ "378", /* whois (connecting from) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "379", /* whois (using modes) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "401", /* no such nick/channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "402", /* no such server */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "403", /* no such channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "404", /* cannot send to channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "405", /* too many channels */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "406", /* was no such nick */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "407", /* was no such nick */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "409", /* no origin */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "410", /* no services */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "411", /* no recipient */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "412", /* no text to send */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "413", /* no toplevel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "414", /* wilcard in toplevel domain */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "421", /* unknown command */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "422", /* MOTD is missing */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "423", /* no administrative info */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "424", /* file error */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "431", /* no nickname given */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "432", /* erroneous nickname */ 1, &irc_protocol_cb_432 },
|
||||
{ "433", /* nickname already in use */ 1, &irc_protocol_cb_433 },
|
||||
{ "436", /* nickname collision */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "437", /* nick/channel unavailable */ 1, &irc_protocol_cb_437 },
|
||||
{ "438", /* not authorized to change nickname */ 1, &irc_protocol_cb_438 },
|
||||
{ "441", /* user not in channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "442", /* not on channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "443", /* user already on channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "444", /* user not logged in */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "445", /* summon has been disabled */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "446", /* users has been disabled */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "451", /* you are not registered */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "461", /* not enough parameters */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "462", /* you may not register */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "463", /* your host isn't among the privileged */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "464", /* password incorrect */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "465", /* you are banned from this server */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "467", /* channel key already set */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "470", /* forwarding to another channel */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "471", /* channel is already full */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "472", /* unknown mode char to me */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "473", /* cannot join channel (invite only) */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "474", /* cannot join channel (banned from channel) */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "475", /* cannot join channel (bad channel key) */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "476", /* bad channel mask */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "477", /* channel doesn't support modes */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "481", /* you're not an IRC operator */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "482", /* you're not channel operator */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "483", /* you can't kill a server! */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "484", /* your connection is restricted! */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "485", /* user is immune from kick/deop */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "487", /* network split */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "491", /* no O-lines for your host */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "501", /* unknown mode flag */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "502", /* can't change mode for other users */ 1, &irc_protocol_cb_generic_error },
|
||||
{ "671", /* whois (secure connection) */ 1, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "900", /* logged in as (SASL) */ 1, &irc_protocol_cb_900 },
|
||||
{ "901", /* you are now logged in */ 1, &irc_protocol_cb_901 },
|
||||
{ "903", /* SASL authentication successful */ 1, &irc_protocol_cb_sasl_end },
|
||||
{ "904", /* SASL authentication failed */ 1, &irc_protocol_cb_sasl_end },
|
||||
{ "905", /* SASL message too long */ 1, &irc_protocol_cb_sasl_end },
|
||||
{ "906", /* SASL authentication aborted */ 1, &irc_protocol_cb_sasl_end },
|
||||
{ "907", /* You have already completed SASL authentication */ 1, &irc_protocol_cb_sasl_end },
|
||||
{ "973", /* whois (secure connection) */ 1, &irc_protocol_cb_server_mode_reason },
|
||||
{ "974", /* whois (secure connection) */ 1, &irc_protocol_cb_server_mode_reason },
|
||||
{ "975", /* whois (secure connection) */ 1, &irc_protocol_cb_server_mode_reason },
|
||||
{ NULL, 0, NULL }
|
||||
"for themselves */ 1, 1, &irc_protocol_cb_wallops },
|
||||
{ "001", /* a server message */ 1, 0, &irc_protocol_cb_001 },
|
||||
{ "005", /* a server message */ 1, 0, &irc_protocol_cb_005 },
|
||||
{ "221", /* user mode string */ 1, 0, &irc_protocol_cb_221 },
|
||||
{ "223", /* whois (charset is) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "264", /* whois (is using encrypted connection) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "275", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "276", /* whois (has client certificate fingerprint) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "301", /* away message */ 1, 1, &irc_protocol_cb_301 },
|
||||
{ "303", /* ison */ 1, 0, &irc_protocol_cb_303 },
|
||||
{ "305", /* unaway */ 1, 0, &irc_protocol_cb_305 },
|
||||
{ "306", /* now away */ 1, 0, &irc_protocol_cb_306 },
|
||||
{ "307", /* whois (registered nick) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "310", /* whois (help mode) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "311", /* whois (user) */ 1, 0, &irc_protocol_cb_311 },
|
||||
{ "312", /* whois (server) */ 1, 0, &irc_protocol_cb_312 },
|
||||
{ "313", /* whois (operator) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "314", /* whowas */ 1, 0, &irc_protocol_cb_314 },
|
||||
{ "315", /* end of /who list */ 1, 0, &irc_protocol_cb_315 },
|
||||
{ "317", /* whois (idle) */ 1, 0, &irc_protocol_cb_317 },
|
||||
{ "318", /* whois (end) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "319", /* whois (channels) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "320", /* whois (identified user) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "321", /* /list start */ 1, 0, &irc_protocol_cb_321 },
|
||||
{ "322", /* channel (for /list) */ 1, 0, &irc_protocol_cb_322 },
|
||||
{ "323", /* end of /list */ 1, 0, &irc_protocol_cb_323 },
|
||||
{ "324", /* channel mode */ 1, 0, &irc_protocol_cb_324 },
|
||||
{ "326", /* whois (has oper privs) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "327", /* whois (host) */ 1, 0, &irc_protocol_cb_327 },
|
||||
{ "328", /* channel url */ 1, 0, &irc_protocol_cb_328 },
|
||||
{ "329", /* channel creation date */ 1, 0, &irc_protocol_cb_329 },
|
||||
{ "330", /* is logged in as */ 1, 0, &irc_protocol_cb_330_343 },
|
||||
{ "331", /* no topic for channel */ 1, 0, &irc_protocol_cb_331 },
|
||||
{ "332", /* topic of channel */ 0, 1, &irc_protocol_cb_332 },
|
||||
{ "333", /* infos about topic (nick and date changed) */ 1, 0, &irc_protocol_cb_333 },
|
||||
{ "335", /* is a bot on */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "338", /* whois (host) */ 1, 0, &irc_protocol_cb_338 },
|
||||
{ "341", /* inviting */ 1, 0, &irc_protocol_cb_341 },
|
||||
{ "343", /* is opered as */ 1, 0, &irc_protocol_cb_330_343 },
|
||||
{ "344", /* channel reop */ 1, 0, &irc_protocol_cb_344 },
|
||||
{ "345", /* end of channel reop list */ 1, 0, &irc_protocol_cb_345 },
|
||||
{ "346", /* invite list */ 1, 0, &irc_protocol_cb_346 },
|
||||
{ "347", /* end of invite list */ 1, 0, &irc_protocol_cb_347 },
|
||||
{ "348", /* channel exception list */ 1, 0, &irc_protocol_cb_348 },
|
||||
{ "349", /* end of channel exception list */ 1, 0, &irc_protocol_cb_349 },
|
||||
{ "351", /* server version */ 1, 0, &irc_protocol_cb_351 },
|
||||
{ "352", /* who */ 1, 0, &irc_protocol_cb_352 },
|
||||
{ "353", /* list of nicks on channel */ 1, 0, &irc_protocol_cb_353 },
|
||||
{ "366", /* end of /names list */ 1, 0, &irc_protocol_cb_366 },
|
||||
{ "367", /* banlist */ 1, 0, &irc_protocol_cb_367 },
|
||||
{ "368", /* end of banlist */ 1, 0, &irc_protocol_cb_368 },
|
||||
{ "369", /* whowas (end) */ 1, 0, &irc_protocol_cb_whowas_nick_msg },
|
||||
{ "378", /* whois (connecting from) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "379", /* whois (using modes) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "401", /* no such nick/channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "402", /* no such server */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "403", /* no such channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "404", /* cannot send to channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "405", /* too many channels */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "406", /* was no such nick */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "407", /* was no such nick */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "409", /* no origin */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "410", /* no services */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "411", /* no recipient */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "412", /* no text to send */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "413", /* no toplevel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "414", /* wilcard in toplevel domain */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "421", /* unknown command */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "422", /* MOTD is missing */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "423", /* no administrative info */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "424", /* file error */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "431", /* no nickname given */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "432", /* erroneous nickname */ 1, 0, &irc_protocol_cb_432 },
|
||||
{ "433", /* nickname already in use */ 1, 0, &irc_protocol_cb_433 },
|
||||
{ "436", /* nickname collision */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "437", /* nick/channel unavailable */ 1, 0, &irc_protocol_cb_437 },
|
||||
{ "438", /* not authorized to change nickname */ 1, 0, &irc_protocol_cb_438 },
|
||||
{ "441", /* user not in channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "442", /* not on channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "443", /* user already on channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "444", /* user not logged in */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "445", /* summon has been disabled */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "446", /* users has been disabled */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "451", /* you are not registered */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "461", /* not enough parameters */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "462", /* you may not register */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "463", /* your host isn't among the privileged */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "464", /* password incorrect */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "465", /* you are banned from this server */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "467", /* channel key already set */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "470", /* forwarding to another channel */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "471", /* channel is already full */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "472", /* unknown mode char to me */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "473", /* cannot join channel (invite only) */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "474", /* cannot join channel (banned from channel) */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "475", /* cannot join channel (bad channel key) */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "476", /* bad channel mask */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "477", /* channel doesn't support modes */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "481", /* you're not an IRC operator */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "482", /* you're not channel operator */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "483", /* you can't kill a server! */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "484", /* your connection is restricted! */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "485", /* user is immune from kick/deop */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "487", /* network split */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "491", /* no O-lines for your host */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "501", /* unknown mode flag */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "502", /* can't change mode for other users */ 1, 0, &irc_protocol_cb_generic_error },
|
||||
{ "671", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_whois_nick_msg },
|
||||
{ "900", /* logged in as (SASL) */ 1, 0, &irc_protocol_cb_900 },
|
||||
{ "901", /* you are now logged in */ 1, 0, &irc_protocol_cb_901 },
|
||||
{ "903", /* SASL authentication successful */ 1, 0, &irc_protocol_cb_sasl_end },
|
||||
{ "904", /* SASL authentication failed */ 1, 0, &irc_protocol_cb_sasl_end },
|
||||
{ "905", /* SASL message too long */ 1, 0, &irc_protocol_cb_sasl_end },
|
||||
{ "906", /* SASL authentication aborted */ 1, 0, &irc_protocol_cb_sasl_end },
|
||||
{ "907", /* You have already completed SASL authentication */ 1, 0, &irc_protocol_cb_sasl_end },
|
||||
{ "973", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_server_mode_reason },
|
||||
{ "974", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_server_mode_reason },
|
||||
{ "975", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_server_mode_reason },
|
||||
{ NULL, 0, 0, NULL }
|
||||
};
|
||||
|
||||
if (!msg_command)
|
||||
@@ -4590,6 +4591,7 @@ irc_protocol_recv_command (struct t_irc_server *server,
|
||||
{
|
||||
cmd_name = msg_command;
|
||||
decode_color = 1;
|
||||
keep_trailing_spaces = 0;
|
||||
cmd_recv_func = irc_protocol_cb_numeric;
|
||||
}
|
||||
else
|
||||
@@ -4608,6 +4610,7 @@ irc_protocol_recv_command (struct t_irc_server *server,
|
||||
{
|
||||
cmd_name = irc_protocol_messages[cmd_found].name;
|
||||
decode_color = irc_protocol_messages[cmd_found].decode_color;
|
||||
keep_trailing_spaces = irc_protocol_messages[cmd_found].keep_trailing_spaces;
|
||||
cmd_recv_func = irc_protocol_messages[cmd_found].recv_function;
|
||||
}
|
||||
|
||||
@@ -4624,7 +4627,8 @@ irc_protocol_recv_command (struct t_irc_server *server,
|
||||
else
|
||||
dup_irc_message = NULL;
|
||||
argv = weechat_string_split (dup_irc_message, " ", 0, 0, &argc);
|
||||
argv_eol = weechat_string_split (dup_irc_message, " ", 2, 0, NULL);
|
||||
argv_eol = weechat_string_split (dup_irc_message, " ",
|
||||
1 + keep_trailing_spaces, 0, NULL);
|
||||
|
||||
return_code = (int) (cmd_recv_func) (server,
|
||||
nick, address_color, host_color,
|
||||
|
||||
@@ -74,6 +74,7 @@ struct t_irc_protocol_msg
|
||||
{
|
||||
char *name; /* IRC message name */
|
||||
int decode_color; /* decode color before calling function */
|
||||
int keep_trailing_spaces; /* keep trailing spaces in message */
|
||||
t_irc_recv_func *recv_function; /* function called when msg is received */
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user