From c6a85721a6e9d5a6f67f76f0062c750146c6805f Mon Sep 17 00:00:00 2001 From: ailin-nemui Date: Mon, 28 Dec 2015 00:07:42 +0100 Subject: [PATCH] keep track of address in text_dest for hilight purposes --- src/fe-common/core/fe-messages.c | 10 ++++------ src/fe-common/core/formats.c | 2 -- src/fe-common/core/formats.h | 5 ++--- src/fe-common/core/hilight-text.c | 7 ++++--- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/fe-common/core/fe-messages.c b/src/fe-common/core/fe-messages.c index e06a4571..3240fd10 100644 --- a/src/fe-common/core/fe-messages.c +++ b/src/fe-common/core/fe-messages.c @@ -175,7 +175,6 @@ static void sig_message_public(SERVER_REC *server, const char *msg, int for_me, print_channel, level; char *nickmode, *color, *freemsg = NULL; HILIGHT_REC *hilight; - int match_beg = 0, match_end = 0; /* NOTE: this may return NULL if some channel is just closed with /WINDOW CLOSE and server still sends the few last messages */ @@ -188,8 +187,8 @@ static void sig_message_public(SERVER_REC *server, const char *msg, nick_match_msg(chanrec, msg, server->nick) : nick_match_msg_everywhere(chanrec, msg, server->nick); hilight = for_me ? NULL : - hilight_match(server, target, nick, address, MSGLEVEL_PUBLIC, msg, &match_beg, &match_end); - color = (hilight == NULL || !hilight->nick) ? NULL : hilight_get_color(hilight); + 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); @@ -217,9 +216,8 @@ static void sig_message_public(SERVER_REC *server, const char *msg, TEXT_DEST_REC dest; format_create_dest(&dest, server, target, level, NULL); - dest.hilight = hilight; - dest.match_beg = match_beg; - dest.match_end = match_end; + dest.address = address; + dest.nick = nick; if (color != NULL) { /* highlighted nick */ hilight_update_text_dest(&dest,hilight); diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c index b95b3966..ccf48394 100644 --- a/src/fe-common/core/formats.c +++ b/src/fe-common/core/formats.c @@ -416,8 +416,6 @@ void format_create_dest_tag(TEXT_DEST_REC *dest, void *server, dest->server_tag = server != NULL ? SERVER(server)->tag : server_tag; dest->target = target; dest->level = level; - dest->match_beg = 0; - dest->match_end = 0; dest->window = window != NULL ? window : window_find_closest(server, target, level); } diff --git a/src/fe-common/core/formats.h b/src/fe-common/core/formats.h index a4b26852..8efd204c 100644 --- a/src/fe-common/core/formats.h +++ b/src/fe-common/core/formats.h @@ -52,11 +52,10 @@ typedef struct _TEXT_DEST_REC { SERVER_REC *server; const char *server_tag; /* if server is non-NULL, must be server->tag */ const char *target; + const char *nick; + const char *address; int level; - HILIGHT_REC *hilight; - int match_beg; - int match_end; int hilight_priority; char *hilight_color; int flags; diff --git a/src/fe-common/core/hilight-text.c b/src/fe-common/core/hilight-text.c index 2c0075ec..b746f636 100644 --- a/src/fe-common/core/hilight-text.c +++ b/src/fe-common/core/hilight-text.c @@ -325,9 +325,10 @@ static void sig_print_text(TEXT_DEST_REC *dest, const char *text, if (dest->level & MSGLEVEL_NOHILIGHT) return; - hilight_start = dest->match_beg; - hilight_end = dest->match_end; - hilight = dest->hilight; + hilight_start = hilight_end = 0; + hilight = hilight_match(dest->server, dest->target, dest->nick, + dest->address, dest->level, stripped, + &hilight_start, &hilight_end); if (hilight == NULL) return;