コード例 #1
0
ファイル: hilight-text.c プロジェクト: Mistuke/irssi
static void read_hilight_config(void)
{
	CONFIG_NODE *node;
	HILIGHT_REC *rec;
	GSList *tmp;
	char *text, *color;

	hilights_destroy_all();

	node = iconfig_node_traverse("hilights", FALSE);
	if (node == NULL) {
                reset_cache();
		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;

		text = config_node_get_str(node, "text", NULL);
		if (text == NULL || *text == '\0')
			continue;

		rec = g_new0(HILIGHT_REC, 1);
		hilights = g_slist_append(hilights, rec);

		rec->text = g_strdup(text);

		color = config_node_get_str(node, "color", NULL);
		rec->color = color == NULL || *color == '\0' ? NULL :
			g_strdup(color);

		color = config_node_get_str(node, "act_color", NULL);
		rec->act_color = color == NULL || *color == '\0' ? NULL :
			g_strdup(color);

		rec->level = config_node_get_int(node, "level", 0);
		rec->priority = config_node_get_int(node, "priority", 0);
		rec->nick = config_node_get_bool(node, "nick", TRUE);
		rec->word = config_node_get_bool(node, "word", TRUE);
		rec->case_sensitive = config_node_get_bool(node, "matchcase", FALSE);

		rec->nickmask = config_node_get_bool(node, "mask", FALSE);
		rec->fullword = config_node_get_bool(node, "fullword", FALSE);
		rec->regexp = config_node_get_bool(node, "regexp", FALSE);
		rec->servertag = config_node_get_str(node, "servertag", NULL);
		hilight_init_rec(rec);

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

	reset_cache();
}
コード例 #2
0
ファイル: hilight-text.c プロジェクト: RecyclingBin/irssi
void hilight_text_deinit(void)
{
    hilights_destroy_all();
    nickmatch_deinit(nickmatch);

    signal_remove("print text", (SIGNAL_FUNC) sig_print_text);
    signal_remove("setup reread", (SIGNAL_FUNC) read_hilight_config);
    signal_remove("setup changed", (SIGNAL_FUNC) read_settings);

    command_unbind("hilight", (SIGNAL_FUNC) cmd_hilight);
    command_unbind("dehilight", (SIGNAL_FUNC) cmd_dehilight);
}
コード例 #3
0
ファイル: hilight-text.c プロジェクト: svn2github/irssi
void hilight_text_deinit(void)
{
	hilights_destroy_all();

	signal_remove("print text", (SIGNAL_FUNC) sig_print_text);
	signal_remove("print text stripped", (SIGNAL_FUNC) sig_print_text_stripped);
        signal_remove("setup reread", (SIGNAL_FUNC) read_hilight_config);
        signal_remove("message public", (SIGNAL_FUNC) sig_message);
        signal_remove("message private", (SIGNAL_FUNC) sig_message);
	command_unbind("hilight", (SIGNAL_FUNC) cmd_hilight);
	command_unbind("dehilight", (SIGNAL_FUNC) cmd_dehilight);
}