static void init_userinfo(void) { const char *set, *default_nick, *user_name; char *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"); iconfig_set_str("settings", "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"); iconfig_set_str("settings", "user_name", str != NULL ? str : g_get_user_name()); user_name = settings_get_str("user_name"); } /* nick */ default_nick = settings_get_str("default_nick"); if (default_nick == NULL || *default_nick == '\0') { str = g_getenv("IRCNICK"); iconfig_set_str("settings", "default_nick", str != NULL ? str : user_name); default_nick = settings_get_str("default_nick"); } /* alternate nick */ set = settings_get_str("alternate_nick"); if (set == NULL || *set == '\0') { if (strlen(default_nick) < 9) str = g_strconcat(default_nick, "_", NULL); else { str = g_strdup(default_nick); str[strlen(str)-1] = '_'; } iconfig_set_str("settings", "alternate_nick", str); g_free(str); } /* host name */ set = settings_get_str("hostname"); if (set == NULL || *set == '\0') { str = g_getenv("IRCHOST"); if (str != NULL) iconfig_set_str("settings", "hostname", str); } }
void fe_common_irc_finish_init(void) { GSList *tmp, *ircnets; char *str; if (cmdline_nick != NULL) { /* override nick found from setup */ iconfig_set_str("settings", "nick", cmdline_nick); } if (cmdline_hostname != NULL) { /* override host name found from setup */ iconfig_set_str("settings", "hostname", cmdline_hostname); } if (autocon_server != NULL) { /* connect to specified server */ str = g_strdup_printf(autocon_password == NULL ? "%s %d" : "%s %d %s", autocon_server, autocon_port, autocon_password); signal_emit("command connect", 1, str); g_free(str); return; } if (no_autoconnect) { /* don't autoconnect */ return; } /* connect to autoconnect servers */ ircnets = NULL; for (tmp = setupservers; tmp != NULL; tmp = tmp->next) { SERVER_SETUP_REC *rec = tmp->data; if (rec->autoconnect && (rec->chatnet == NULL || *rec->chatnet == '\0' || gslist_find_icase_string(ircnets, rec->chatnet) == NULL)) { if (rec->chatnet != NULL && *rec->chatnet != '\0') ircnets = g_slist_append(ircnets, rec->chatnet); str = g_strdup_printf("%s %d", rec->address, rec->port); signal_emit("command connect", 1, str); g_free(str); } } g_slist_free(ircnets); }
void windows_layout_reset(void) { iconfig_set_str(NULL, "windows", NULL); signal_emit("layout reset", 0); printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_WINDOWS_LAYOUT_RESET); }
static void alias_remove(const char *alias) { if (iconfig_get_str("aliases", alias, NULL) == NULL) printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_ALIAS_NOT_FOUND, alias); else { printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_ALIAS_REMOVED, alias); iconfig_set_str("aliases", alias, NULL); } }
void windows_layout_save(void) { CONFIG_NODE *node; iconfig_set_str(NULL, "windows", NULL); node = iconfig_node_traverse("windows", TRUE); g_slist_foreach(windows, (GFunc) window_save, node); signal_emit("layout save", 0); printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_WINDOWS_LAYOUT_SAVED); }
void windows_layout_reset(void) { GSList *tmp; for (tmp = windows; tmp != NULL; tmp = tmp->next) { WINDOW_REC *window = tmp->data; while (window->bound_items != NULL) window_bind_destroy(window, window->bound_items->data); } iconfig_set_str(NULL, "windows", NULL); signal_emit("layout reset", 0); printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_WINDOWS_LAYOUT_RESET); }
/* SYNTAX: ALIAS [[-]<alias> [<command>]] */ static void cmd_alias(const char *data) { char *alias, *value; void *free_arg; g_return_if_fail(data != NULL); if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST, &alias, &value)) return; if (*alias == '-') { if (alias[1] != '\0') alias_remove(alias+1); } else if (*alias == '\0' || *value == '\0') show_aliases(alias); else { printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_ALIAS_ADDED, alias); iconfig_set_str("aliases", alias, value); } cmd_params_free(free_arg); }
static void log_remove_config(LOG_REC *log) { iconfig_set_str("logs", log->fname, NULL); }
/* SYNTAX: COMPLETION [-auto] [-delete] <key> <value> */ static void cmd_completion(const char *data) { GHashTable *optlist; CONFIG_NODE *node; GSList *tmp; char *key, *value; void *free_arg; int len; if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST, "completion", &optlist, &key, &value)) return; node = iconfig_node_traverse("completions", *value != '\0'); if (node != NULL && node->type != NODE_TYPE_BLOCK) { /* FIXME: remove after 0.8.5 */ iconfig_node_remove(mainconfig->mainnode, node); node = iconfig_node_traverse("completions", *value != '\0'); } if (node == NULL || (node->value == NULL && *value == '\0')) { printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_NO_COMPLETIONS); cmd_params_free(free_arg); return; } if (g_hash_table_lookup(optlist, "delete") != NULL && *key != '\0') { printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_COMPLETION_REMOVED, key); iconfig_set_str("completions", key, NULL); signal_emit("completion removed", 1, key); } else if (*key != '\0' && *value != '\0') { int automatic = g_hash_table_lookup(optlist, "auto") != NULL; node = iconfig_node_section(node, key, NODE_TYPE_BLOCK); iconfig_node_set_str(node, "value", value); if (automatic) iconfig_node_set_bool(node, "auto", TRUE); else iconfig_node_set_str(node, "auto", NULL); printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_COMPLETION_LINE, key, value, automatic ? "yes" : "no"); signal_emit("completion added", 1, key); } else { printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_COMPLETION_HEADER); len = strlen(key); for (tmp = node->value; tmp != NULL; tmp = tmp->next) { node = tmp->data; if (len == 0 || g_ascii_strncasecmp(node->key, key, len) == 0) { printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_COMPLETION_LINE, node->key, config_node_get_str(node, "value", ""), config_node_get_bool(node, "auto", FALSE) ? "yes" : "no"); } } printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_COMPLETION_FOOTER); } cmd_params_free(free_arg); }