Print{,_attr} and server{,_attr} hooks were incorrectly handled when both

version existed (regular and attrs).  Specifically, the priority was not
respected, and both versions were run even when EAT_PLUGIN was returned.

Fixes #847.
This commit is contained in:
Diogo Sousa
2013-11-28 00:59:31 +00:00
parent d38bbb1e2c
commit 40f26429f8
5 changed files with 49 additions and 60 deletions

View File

@ -1503,9 +1503,6 @@ irc_inline (server *serv, char *buf, int len)
if (buf[0] == ':')
{
int eat1;
int eat2;
/* find a context for this message */
if (is_channel (serv, word[3]))
{
@ -1520,11 +1517,8 @@ irc_inline (server *serv, char *buf, int len)
word[0] = type;
word_eol[1] = buf; /* keep the ":" for plugins */
eat1 = plugin_emit_server (sess, type, word, word_eol);
eat2 = plugin_emit_server_attrs (sess, type, word, word_eol,
tags_data.timestamp);
if (eat1 || eat2)
if (plugin_emit_server (sess, type, word, word_eol,
tags_data.timestamp))
goto xit;
word[1]++;
@ -1532,16 +1526,10 @@ irc_inline (server *serv, char *buf, int len)
} else
{
int eat1;
int eat2;
word[0] = type = word[1];
eat1 = plugin_emit_server (sess, type, word, word_eol);
eat2 = plugin_emit_server_attrs (sess, type, word, word_eol,
tags_data.timestamp);
if (eat1 || eat2)
if (plugin_emit_server (sess, type, word, word_eol,
tags_data.timestamp))
goto xit;
}