mirror of
https://github.com/irssi/irssi.git
synced 2026-08-11 04:43:34 +02:00
Fix HILIGHT -actcolor -mask (Bug 131)
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@3309 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
c5982338c1
commit
fa80d4913b
3 changed files with 33 additions and 31 deletions
|
|
@ -153,6 +153,7 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
|
|||
const char *nickmode, *printnick;
|
||||
int for_me, print_channel, level;
|
||||
char *color, *freemsg = NULL;
|
||||
HILIGHT_REC *hilight;
|
||||
|
||||
/* NOTE: this may return NULL if some channel is just closed with
|
||||
/WINDOW CLOSE and server still sends the few last messages */
|
||||
|
|
@ -162,8 +163,9 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
|
|||
|
||||
for_me = !settings_get_bool("hilight_nick_matches") ? FALSE :
|
||||
nick_match_msg(chanrec, msg, server->nick);
|
||||
color = for_me ? NULL :
|
||||
hilight = for_me ? NULL :
|
||||
hilight_match_nick(server, target, nick, address, MSGLEVEL_PUBLIC, msg);
|
||||
color = (hilight == NULL) ? NULL : hilight_get_color(hilight);
|
||||
|
||||
print_channel = chanrec == NULL ||
|
||||
!window_item_is_active((WI_ITEM_REC *) chanrec);
|
||||
|
|
@ -172,7 +174,7 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
|
|||
print_channel = TRUE;
|
||||
|
||||
level = MSGLEVEL_PUBLIC;
|
||||
if (for_me || color != NULL)
|
||||
if (for_me)
|
||||
level |= MSGLEVEL_HILIGHT;
|
||||
|
||||
if (settings_get_bool("emphasis"))
|
||||
|
|
@ -186,34 +188,31 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
|
|||
if (printnick == NULL)
|
||||
printnick = nick;
|
||||
|
||||
if (!print_channel) {
|
||||
/* message to active channel in window */
|
||||
if (color != NULL) {
|
||||
/* highlighted nick */
|
||||
printformat(server, target, level,
|
||||
TXT_PUBMSG_HILIGHT,
|
||||
color, printnick, msg, nickmode);
|
||||
} else {
|
||||
if (color != NULL) {
|
||||
/* highlighted nick */
|
||||
TEXT_DEST_REC dest;
|
||||
format_create_dest(&dest, server, target, level, NULL);
|
||||
hilight_update_text_dest(&dest,hilight);
|
||||
if (!print_channel) /* message to active channel in window */
|
||||
printformat_dest(&dest, TXT_PUBMSG_HILIGHT, color,
|
||||
printnick, msg, nickmode);
|
||||
else /* message to not existing/active channel */
|
||||
printformat_dest(&dest, TXT_PUBMSG_HILIGHT_CHANNEL,
|
||||
color, printnick, target, msg,
|
||||
nickmode);
|
||||
} else {
|
||||
if (!print_channel)
|
||||
printformat(server, target, level,
|
||||
for_me ? TXT_PUBMSG_ME : TXT_PUBMSG,
|
||||
printnick, msg, nickmode);
|
||||
}
|
||||
} else {
|
||||
/* message to not existing/active channel */
|
||||
if (color != NULL) {
|
||||
/* highlighted nick */
|
||||
printformat(server, target, level,
|
||||
TXT_PUBMSG_HILIGHT_CHANNEL,
|
||||
color, printnick, target, msg, nickmode);
|
||||
} else {
|
||||
else
|
||||
printformat(server, target, level,
|
||||
for_me ? TXT_PUBMSG_ME_CHANNEL :
|
||||
TXT_PUBMSG_CHANNEL,
|
||||
printnick, target, msg, nickmode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_free_not_null(freemsg);
|
||||
g_free_not_null(freemsg);
|
||||
g_free_not_null(color);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue