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); }
static void autolog_open_check(SERVER_REC *server, const char *server_tag, const char *target, int level) { char **targets, **tmp; /* 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; /* there can be multiple targets separated with comma */ targets = g_strsplit(target, ",", -1); for (tmp = targets; *tmp != NULL; tmp++) autolog_open(server, server_tag, *tmp); g_strfreev(targets); }