예제 #1
0
void fe_common_core_finish_init(void)
{
	signal_emit("irssi init read settings", 0);

#ifdef SIGPIPE
	signal(SIGPIPE, SIG_IGN);
#endif

	if (cmdline_nick != NULL) {
		/* override nick found from setup */
		settings_set_str("nick", cmdline_nick);
	}

	if (cmdline_hostname != NULL) {
		/* override host name found from setup */
		settings_set_str("hostname", cmdline_hostname);
	}

	create_windows();

        /* _after_ windows are created.. */
	g_log_set_handler(G_LOG_DOMAIN,
			  (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL |
					    G_LOG_LEVEL_WARNING),
			  (GLogFunc) glog_func, NULL);

	autoconnect_servers();
}
예제 #2
0
void fe_common_core_finish_init(void)
{
	int setup_changed;

	signal_emit("irssi init read settings", 0);

#ifdef SIGPIPE
	signal(SIGPIPE, SIG_IGN);
#endif

        setup_changed = FALSE;
	if (cmdline_nick != NULL && *cmdline_nick != '\0') {
		/* override nick found from setup */
		settings_set_str("nick", cmdline_nick);
		setup_changed = TRUE;
	}

	if (cmdline_hostname != NULL) {
		/* override host name found from setup */
		settings_set_str("hostname", cmdline_hostname);
		setup_changed = TRUE;
	}

	sig_setup_changed();
	signal_add_first("setup changed", (SIGNAL_FUNC) sig_setup_changed);

        /* _after_ windows are created.. */
	g_log_set_default_handler((GLogFunc) glog_func, NULL);

	if (setup_changed)
                signal_emit("setup changed", 0);

	autorun_startup();
	autoconnect_servers();
}
예제 #3
0
/* SYNTAX: SET [-clear] [<key> [<value>] */
static void cmd_set(char *data)
{
    GHashTable *optlist;
    GSList *sets, *tmp;
    const char *last_section;
    char *key, *value;
    void *free_arg;
    int found, clear;

    if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST | PARAM_FLAG_OPTIONS,
                        "set", &optlist, &key, &value))
        return;

    clear = g_hash_table_lookup(optlist, "clear") != NULL;

    last_section = "";
    found = 0;
    sets = settings_get_sorted();
    for (tmp = sets; tmp != NULL; tmp = tmp->next) {
        SETTINGS_REC *rec = tmp->data;

        if (((clear || *value != '\0') && g_strcasecmp(rec->key, key) != 0) ||
                (*value == '\0' && *key != '\0' && stristr(rec->key, key) == NULL))
            continue;

        if (strcmp(last_section, rec->section) != 0) {
            /* print section */
            printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP, "%_[ %s ]", rec->section);
            last_section = rec->section;
        }

        if (clear || *value != '\0') {
            /* change the setting */
            switch (rec->type) {
            case SETTING_TYPE_BOOLEAN:
                set_boolean(key, clear ? FALSE : value);
                break;
            case SETTING_TYPE_INT:
                settings_set_int(key, clear ? 0 : atoi(value));
                break;
            case SETTING_TYPE_STRING:
                settings_set_str(key, clear ? "" : value);
                break;
            }
            signal_emit("setup changed", 0);
        }

        set_print(rec);
        found = TRUE;

        if (clear || *value != '\0')
            break;
    }
    g_slist_free(sets);

    if (!found)
        printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Unknown setting %s", key);

    cmd_params_free(free_arg);
}
예제 #4
0
void fe_common_core_finish_init(void)
{
	int setup_changed;

	signal_emit("irssi init read settings", 0);

#ifdef SIGPIPE
	signal(SIGPIPE, SIG_IGN);
#endif

        setup_changed = FALSE;
	if (cmdline_nick != NULL && *cmdline_nick != '\0') {
		/* override nick found from setup */
		settings_set_str("nick", cmdline_nick);
		setup_changed = TRUE;
	}

	if (cmdline_hostname != NULL) {
		/* override host name found from setup */
		settings_set_str("hostname", cmdline_hostname);
		setup_changed = TRUE;
	}

	sig_setup_changed();
	signal_add_first("setup changed", (SIGNAL_FUNC) sig_setup_changed);

        /* _after_ windows are created.. */
#if GLIB_CHECK_VERSION(2,6,0)
	g_log_set_default_handler((GLogFunc) glog_func, NULL);
#else
	g_log_set_handler(G_LOG_DOMAIN,
			  (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL |
					    G_LOG_LEVEL_WARNING),
			  (GLogFunc) glog_func, NULL);
	g_log_set_handler("GLib",
			  (GLogLevelFlags) (G_LOG_LEVEL_CRITICAL |
					    G_LOG_LEVEL_WARNING),
			  (GLogFunc) glog_func, NULL); /* send glib errors to the same place */
#endif

	if (setup_changed)
                signal_emit("setup changed", 0);

	autorun_startup();
	autoconnect_servers();
}
예제 #5
0
gboolean settings_set_choice(const char *key, const char *value)
{
	SETTINGS_REC *rec;

	rec = settings_get_record(key);

	if (rec != NULL && strarray_find(rec->choices, value) < 0)
		return FALSE;

	settings_set_str(key, value);

	return TRUE;
}
예제 #6
0
static void init_userinfo(void)
{
	const char *set, *nick, *user_name, *str;

	/* check if nick/username/realname wasn't read from setup.. */
        set = settings_get_str("real_name");
	if (set == NULL || *set == '\0') {
		str = g_getenv("IRCNAME");
		settings_set_str("real_name",
				 str != NULL ? str : g_get_real_name());
	}

	/* username */
        user_name = settings_get_str("user_name");
	if (user_name == NULL || *user_name == '\0') {
		str = g_getenv("IRCUSER");
		settings_set_str("user_name",
				 str != NULL ? str : g_get_user_name());

		user_name = settings_get_str("user_name");
	}

	/* nick */
        nick = settings_get_str("nick");
	if (nick == NULL || *nick == '\0') {
		str = g_getenv("IRCNICK");
		settings_set_str("nick", str != NULL ? str : user_name);

		nick = settings_get_str("nick");
	}

	/* host name */
        set = settings_get_str("hostname");
	if (set == NULL || *set == '\0') {
		str = g_getenv("IRCHOST");
		if (str != NULL)
			settings_set_str("hostname", str);
	}
}
예제 #7
0
static void read_settings(void)
{
	const char *str;

	if (active_entry != NULL)
		gui_entry_set_utf8(active_entry, term_type == TERM_TYPE_UTF8);

	str = settings_get_str("actlist_sort");
	if (g_ascii_strcasecmp(str, "recent") == 0)
		actlist_sort = 1;
	else if (g_ascii_strcasecmp(str, "level") == 0)
		actlist_sort = 2;
	else if (g_ascii_strcasecmp(str, "level,recent") == 0)
		actlist_sort = 3;
	else {
		settings_set_str("actlist_sort", "refnum");
		actlist_sort = 0;
	}
}
예제 #8
0
파일: fe-settings.c 프로젝트: ahf/irssi
/* SYNTAX: SET [-clear | -default] [<key> [<value>]] */
static void cmd_set(char *data)
{
        GHashTable *optlist;
	char *key, *value;
	void *free_arg;
	int clear, set_default;
	SETTINGS_REC *rec;

	if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST |
			    PARAM_FLAG_OPTIONS,
			    "set", &optlist, &key, &value))
		return;

	clear = g_hash_table_lookup(optlist, "clear") != NULL;
	set_default = g_hash_table_lookup(optlist, "default") != NULL;

	if (*key == '\0')
		clear = set_default = FALSE;

	if (!(clear || set_default || *value != '\0'))
		set_print_pattern(key);
	else {
		rec = settings_get_record(key);
		if (rec != NULL) {
			/* change the setting */
			switch (rec->type) {
			case SETTING_TYPE_BOOLEAN:
				if (clear)
					settings_set_bool(key, FALSE);
				else if (set_default)
					settings_set_bool(key, rec->default_value.v_bool);
				else
					set_boolean(key, value);
				break;
			case SETTING_TYPE_INT:
				if (clear)
					settings_set_int(key, 0);
				else if (set_default)
					settings_set_int(key, rec->default_value.v_int);
				else
					set_int(key, value);
				break;
			case SETTING_TYPE_CHOICE:
				if (clear || set_default)
					settings_set_choice(key, rec->choices[rec->default_value.v_int]);
				else
					set_choice(key, value);
				break;
			case SETTING_TYPE_STRING:
				settings_set_str(key, clear ? "" :
						 set_default ? rec->default_value.v_string :
						 value);
				break;
			case SETTING_TYPE_TIME:
				if (!settings_set_time(key, clear ? "0" :
						       set_default ? rec->default_value.v_string : value))
					printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_TIME);
				break;
			case SETTING_TYPE_LEVEL:
				if (!settings_set_level(key, clear ? "" :
							set_default ? rec->default_value.v_string : value))
					printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_LEVEL);
				break;
			case SETTING_TYPE_SIZE:
				if (!settings_set_size(key, clear ? "0" :
						       set_default ? rec->default_value.v_string : value))
					printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_SIZE);
				break;
			case SETTING_TYPE_ANY:
				/* Unpossible! */
				break;
			}
			signal_emit("setup changed", 0);
			printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_SET_TITLE, rec->section);
			set_print(rec);
		} else
			printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_SET_UNKNOWN, key);
	}

	cmd_params_free(free_arg);
}