@@ 1704,6 1704,10 @@ inbound_toggle_caps (server *serv, const char *extensions_str, gboolean enable)
serv->have_awaynotify = enable;
else if (!strcmp (extension, "account-tag"))
serv->have_account_tag = enable;
+ else if (!strcmp (extension, "message-tags"))
+ serv->have_message_tags = enable;
+ else if (!strcmp (extension, "echo-message"))
+ serv->have_echo_message = enable;
else if (!strcmp (extension, "sasl"))
{
serv->have_sasl = enable;
@@ 1765,6 1769,8 @@ static const char * const supported_caps[] = {
"invite-notify",
"account-tag",
"extended-monitor",
+ "message-tags",
+ "echo-message",
/* ZNC */
"znc.in/server-time-iso",
@@ 2745,7 2745,8 @@ cmd_me (struct session *sess, char *tbuf, char *word[], char *word_eol[])
{
sess->server->p_action (sess->server, sess->channel, split_text);
/* print it to screen */
- inbound_action (sess, sess->channel, sess->server->nick, "",
+ if (!sess->server->have_echo_message)
+ inbound_action (sess, sess->channel, sess->server->nick, "",
split_text, TRUE, FALSE,
&no_tags);
@@ 2757,7 2758,8 @@ cmd_me (struct session *sess, char *tbuf, char *word[], char *word_eol[])
sess->server->p_action (sess->server, sess->channel, act + offset);
/* print it to screen */
- inbound_action (sess, sess->channel, sess->server->nick, "",
+ if (!sess->server->have_echo_message)
+ inbound_action (sess, sess->channel, sess->server->nick, "",
act + offset, TRUE, FALSE, &no_tags);
} else
{
@@ 4649,7 4651,8 @@ handle_say (session *sess, char *text, int check_spch)
while ((split_text = split_up_text (sess, text + offset, cmd_length, split_text)))
{
- inbound_chanmsg (sess->server, sess, sess->channel, sess->server->nick,
+ if (!sess->server->have_echo_message)
+ inbound_chanmsg (sess->server, sess, sess->channel, sess->server->nick,
split_text, TRUE, FALSE, &no_tags);
sess->server->p_message (sess->server, sess->channel, split_text);
@@ 4659,7 4662,8 @@ handle_say (session *sess, char *text, int check_spch)
g_free (split_text);
}
- inbound_chanmsg (sess->server, sess, sess->channel, sess->server->nick,
+ if (!sess->server->have_echo_message)
+ inbound_chanmsg (sess->server, sess, sess->channel, sess->server->nick,
text + offset, TRUE, FALSE, &no_tags);
sess->server->p_message (sess->server, sess->channel, text + offset);
} else