Do not send signals "irc_in" and "irc_in2" when IRC messages are ignored

v2.8-utf8proc
Sebastien Helleu 2010-03-17 16:03:51 +01:00
parent feb51fbca4
commit 4fd23e12dc
5 changed files with 560 additions and 654 deletions

View File

@ -1,11 +1,12 @@
WeeChat ChangeLog
=================
FlashCode <flashcode@flashtux.org>
v0.3.2-dev, 2010-03-08
v0.3.2-dev, 2010-03-17
Version 0.3.2 (under dev!)
--------------------------
* core: add signal "day_changed"
* core: add new command /mute
* core: add command line option "-s" (or "--no-script") to start WeeChat
@ -48,6 +49,7 @@ Version 0.3.2 (under dev!)
* irc: fix bug with /away -all: set or unset future away for disconnected
servers (bug #29022)
* irc: bug with prefix "!" for mode "a" (channel admin) (bug #29109)
* irc: do not send signals "irc_in" and "irc_in2" when messages are ignored
* irc: add option irc.network.connection_timeout (timeout between TCP connection
to server and reception of message 001)
* irc: add options irc.look.smart_filter_join and irc.look.smart_filter_quit
@ -64,6 +66,7 @@ Version 0.3.2 (under dev!)
Version 0.3.1.1 (2010-01-31)
----------------------------
* irc: fix crash with SSL connection if option ssl_cert is set (bug #28752)
* irc: fix bug with SSL connection (fails sometimes when ssl_verify is on)
(bug #28741)

View File

@ -191,6 +191,11 @@ irc_ignore_check (struct t_irc_server *server, struct t_irc_channel *channel,
if (!server)
return 0;
/* if nick is the same as server, then we will not ignore
(it is possible when connected to an irc proxy) */
if (nick && (strcmp (server->nick, nick) == 0))
return 0;
for (ptr_ignore = irc_ignore_list; ptr_ignore;
ptr_ignore = ptr_ignore->next_ignore)
{

File diff suppressed because it is too large Load Diff

View File

@ -20,21 +20,26 @@
#ifndef __WEECHAT_IRC_PROTOCOL_H
#define __WEECHAT_IRC_PROTOCOL_H 1
#define IRC_PROTOCOL_GET_HOST \
const char *nick, *address, *host; \
if (argv[0][0] == ':') \
{ \
nick = irc_protocol_get_nick_from_host (argv[0]); \
address = irc_protocol_get_address_from_host (argv[0]); \
host = argv[0] + 1; \
} \
else \
{ \
nick = NULL; \
address = NULL; \
host = NULL; \
}
#define IRC_PROTOCOL_CALLBACK(__command) \
int \
irc_protocol_cb_##__command (struct t_irc_server *server, \
const char *nick, \
const char *address, \
const char *host, \
const char *command, \
int ignored, \
int argc, \
char **argv, \
char **argv_eol)
#define IRC_PROTOCOL_MIN_ARGS(__min_args) \
(void) nick; \
(void) address; \
(void) host; \
(void) command; \
(void) ignored; \
(void) argv; \
(void) argv_eol; \
if (argc < __min_args) \
{ \
weechat_printf (server->buffer, \
@ -59,7 +64,10 @@
struct t_irc_server;
typedef int (t_irc_recv_func)(struct t_irc_server *server, const char *command,
typedef int (t_irc_recv_func)(struct t_irc_server *server,
const char *nick, const char *address,
const char *host, const char *command,
int ignored,
int argc, char **argv, char **argv_eol);
struct t_irc_protocol_msg
@ -72,7 +80,8 @@ struct t_irc_protocol_msg
extern const char *irc_protocol_get_nick_from_host (const char *host);
extern const char *irc_protocol_tags (const char *command, const char *tags);
extern void irc_protocol_recv_command (struct t_irc_server *server,
const char *entire_line,
const char *command);
const char *irc_message,
const char *msg_command,
const char *msg_channel);
#endif /* irc-protocol.h */

View File

@ -1614,7 +1614,8 @@ irc_server_msgq_flush ()
irc_protocol_recv_command (irc_recv_msgq->server,
(msg_decoded_without_color) ?
msg_decoded_without_color : ((msg_decoded) ? msg_decoded : ptr_msg),
command);
command,
channel);
if (nick)
free (nick);