Esempio n. 1
0
File: ignore.c Progetto: ahf/irssi
static void read_ignores(void)
{
	IGNORE_REC *rec;
	CONFIG_NODE *node;
	GSList *tmp;

	while (ignores != NULL)
                ignore_destroy(ignores->data, FALSE);

	node = iconfig_node_traverse("ignores", FALSE);
	if (node == NULL) {
		nickmatch_rebuild(nickmatch);
		return;
	}

	tmp = config_node_first(node->value);
	for (; tmp != NULL; tmp = config_node_next(tmp)) {
		node = tmp->data;

		if (node->type != NODE_TYPE_BLOCK)
			continue;

		rec = g_new0(IGNORE_REC, 1);
		ignores = g_slist_append(ignores, rec);

		rec->mask = g_strdup(config_node_get_str(node, "mask", NULL));
		rec->pattern = g_strdup(config_node_get_str(node, "pattern", NULL));
		rec->level = level2bits(config_node_get_str(node, "level", ""), NULL);
                rec->exception = config_node_get_bool(node, "exception", FALSE);
		rec->regexp = config_node_get_bool(node, "regexp", FALSE);
		rec->fullword = config_node_get_bool(node, "fullword", FALSE);
		rec->replies = config_node_get_bool(node, "replies", FALSE);
		rec->unignore_time = config_node_get_int(node, "unignore_time", 0);
		rec->servertag = g_strdup(config_node_get_str(node, "servertag", 0));

		node = iconfig_node_section(node, "channels", -1);
		if (node != NULL) rec->channels = config_node_get_list(node);

		ignore_init_rec(rec);
	}

	nickmatch_rebuild(nickmatch);
}
Esempio n. 2
0
File: ignore.c Progetto: ahf/irssi
void ignore_add_rec(IGNORE_REC *rec)
{
	ignore_init_rec(rec);

	ignores = g_slist_append(ignores, rec);
	ignore_set_config(rec);

	signal_emit("ignore created", 1, rec);
	nickmatch_rebuild(nickmatch);
}
Esempio n. 3
0
static void reset_cache(void)
{
	GSList *tmp;

        never_hilight_level = MSGLEVEL_ALL & ~default_hilight_level;
	for (tmp = hilights; tmp != NULL; tmp = tmp->next) {
		HILIGHT_REC *rec = tmp->data;

		if (never_hilight_level & rec->level)
                        never_hilight_level &= ~rec->level;
	}

	nickmatch_rebuild(nickmatch);
}
Esempio n. 4
0
File: ignore.c Progetto: ahf/irssi
void ignore_update_rec(IGNORE_REC *rec)
{
	if (rec->level == 0) {
		/* unignored everything */
		ignore_remove_config(rec);
		ignore_destroy(rec, TRUE);
	} else {
		/* unignore just some levels.. */
		ignore_remove_config(rec);
		ignores = g_slist_remove(ignores, rec);

		ignores = g_slist_append(ignores, rec);
		ignore_set_config(rec);

                ignore_init_rec(rec);
		signal_emit("ignore changed", 1, rec);
	}
        nickmatch_rebuild(nickmatch);
}
Esempio n. 5
0
static void reset_cache(void)
{
    reset_level_cache();
    nickmatch_rebuild(nickmatch);
}