degesch: further logging cleanup

This commit is contained in:
Přemysl Eric Janouch 2015-06-28 16:26:51 +02:00
parent ed349cb1d3
commit 3e47abdfbb
1 changed files with 42 additions and 50 deletions

View File

@ -4064,6 +4064,20 @@ irc_is_highlight (struct server *s, const char *message)
return result;
}
static const char *
irc_get_privmsg_prefix (struct server *s, struct user *user, const char *target)
{
if (user && irc_is_channel (s, target))
{
struct channel *channel;
struct channel_user *channel_user;
if ((channel = str_map_find (&s->irc_channels, target))
&& (channel_user = irc_channel_get_user (channel, user)))
return channel_user->prefixes.str;
}
return "";
}
// --- Mode processor ----------------------------------------------------------
struct mode_processor
@ -4587,9 +4601,9 @@ irc_handle_notice_text (struct server *s,
{
const char *target = msg->params.vector[0];
struct buffer *buffer = irc_get_buffer_for_message (s, msg, target);
if (!buffer)
return;
if (buffer)
{
char *nick = irc_cut_nickname (msg->prefix);
// IRCv3.2 echo-message could otherwise cause us to highlight ourselves
if (!irc_is_this_us (s, msg->prefix) && irc_is_highlight (s, text->str))
@ -4598,7 +4612,6 @@ irc_handle_notice_text (struct server *s,
else
log_outcoming_notice (s, buffer, msg->prefix, text->str);
free (nick);
}
}
static void
@ -4752,39 +4765,29 @@ irc_handle_privmsg_text (struct server *s,
{
const char *target = msg->params.vector[0];
struct buffer *buffer = irc_get_buffer_for_message (s, msg, target);
char *nick = irc_cut_nickname (msg->prefix);
if (!buffer)
return;
const char *prefixes = "";
if (irc_is_channel (s, target))
{
struct user *user;
struct channel *channel;
struct channel_user *channel_user;
if ((user = str_map_find (&s->irc_users, nick))
&& (channel = str_map_find (&s->irc_channels, target))
&& (channel_user = irc_channel_get_user (channel, user)))
prefixes = channel_user->prefixes.str;
}
char *nickname = irc_cut_nickname (msg->prefix);
const char *prefixes = irc_get_privmsg_prefix
(s, str_map_find (&s->irc_users, nickname), target);
if (buffer)
{
// IRCv3.2 echo-message could otherwise cause us to highlight ourselves
if (irc_is_this_us (s, msg->prefix) || !irc_is_highlight (s, text->str))
{
if (is_action)
log_outcoming_action (s, buffer, nick, text->str);
log_outcoming_action (s, buffer, nickname, text->str);
else
log_outcoming_privmsg (s, buffer, prefixes, nick, text->str);
log_outcoming_privmsg (s, buffer, prefixes, nickname, text->str);
}
else if (is_action)
log_server (s, buffer, BUFFER_LINE_HIGHLIGHT,
" #a*#r #n #m", ATTR_HIGHLIGHT, msg->prefix, text->str);
else
log_server (s, buffer, BUFFER_LINE_HIGHLIGHT,
"#a<#s#s>#r #m", ATTR_HIGHLIGHT, prefixes, nick, text->str);
}
"#a<#s#s>#r #m", ATTR_HIGHLIGHT, prefixes, nickname, text->str);
free (nick);
free (nickname);
}
static void
@ -5722,18 +5725,7 @@ static void
log_autosplit_privmsg (struct server *s,
struct send_autosplit_args *a, struct buffer *buffer, const char *line)
{
const char *prefixes = "";
if (irc_is_channel (s, a->target))
{
struct user *user;
struct channel *channel;
struct channel_user *channel_user;
if ((user = s->irc_user)
&& (channel = str_map_find (&s->irc_channels, a->target))
&& (channel_user = irc_channel_get_user (channel, user)))
prefixes = channel_user->prefixes.str;
}
const char *prefixes = irc_get_privmsg_prefix (s, s->irc_user, a->target);
if (buffer && soft_assert (s->irc_user))
log_outcoming_privmsg (s, buffer,
prefixes, s->irc_user->nickname, line);