static void sig_hilight_text(TEXT_DEST_REC *dest, const char *msg) { WI_ITEM_REC *item; int data_level; if (dest->window == active_win || (dest->level & hide_level)) return; if (dest->level & hilight_level) { data_level = DATA_LEVEL_HILIGHT+dest->hilight_priority; } else { data_level = (dest->level & msg_level) ? DATA_LEVEL_MSG : DATA_LEVEL_TEXT; } if (hide_targets != NULL && (dest->level & MSGLEVEL_HILIGHT) == 0 && dest->target != NULL) { /* check for both target and tag/target */ if (strarray_find_dest(hide_targets, dest)) return; } if (dest->target != NULL) { item = window_item_find(dest->server, dest->target); if (item != NULL) { window_item_activity(item, data_level, dest->hilight_color); } } window_activity(dest->window, data_level, dest->hilight_color); }
static void autolog_open_check(TEXT_DEST_REC *dest) { const char *deftarget; SERVER_REC *server = dest->server; const char *server_tag = dest->server_tag; const char *target = dest->target; int level = dest->level; /* FIXME: kind of a kludge, but we don't want to reopen logs when we're parting the channel with /WINDOW CLOSE.. Maybe a small timeout would be nice instead of immediately closing the log file after "window item destroyed" */ if (level == MSGLEVEL_PARTS || (autolog_level & level) == 0 || target == NULL || *target == '\0') return; deftarget = server ? server->nick : "unknown"; /* log only channels that have been saved to the config */ if (settings_get_bool("autolog_only_saved_channels") && IS_CHANNEL(window_item_find(server, target)) && channel_setup_find(target, server_tag) == NULL) return; if (autolog_ignore_targets != NULL && strarray_find_dest(autolog_ignore_targets, dest)) return; if (target != NULL) autolog_open(server, server_tag, g_strcmp0(target, "*") ? target : deftarget); }
int target_is_hidden(TEXT_DEST_REC *dest) { return hide_targets && dest && dest->target && strarray_find_dest(hide_targets, dest); }