diff --git a/ChangeLog b/ChangeLog index 24bf29016..b7449db2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,7 +9,7 @@ Version 0.2.7 (under dev!): * removed key functions, replaced by /input command * fixed bug with alias, use current buffer to run commands (bug #22876) * new names for config files (*.conf instead of *.rc) - * improved /set command, new command /unset + * improved /set command, new command /unset (task #6085) * added new type of buffer, with free content * added tags for lines and custom filtering by tags or regex (task #7674) * added custom bars, with custom items diff --git a/po/cs.po b/po/cs.po index 9de010b28..d438dcc65 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" "PO-Revision-Date: 2007-09-06 12:44+0200\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -550,21 +550,21 @@ msgid "Option changed" msgstr "není na kanále" #, fuzzy, c-format -msgid "%sOption \"%s\" not found" -msgstr "%s plugin \"%s\" nenalezen\n" +msgid "%sFailed to unset option \"%s\"" +msgstr "%s selhalo uložení nastavení pluginů\n" #, fuzzy msgid "Option reset: " msgstr "Možnosti pluginů uloženy\n" -#, fuzzy -msgid "Option reset" -msgstr "Možnosti pluginů uloženy\n" - #, fuzzy, c-format -msgid "Option \"%s\" removed" +msgid "Option removed: %s" msgstr "není na kanále" +#, c-format +msgid "%d option(s) reset, %d option(s) removed" +msgstr "" + #, c-format msgid "WeeChat uptime: %d %s %02d:%02d:%02d, started on %s" msgstr "Čas běhu WeeChat: %d %s %02d:%02d:%02d, spuštěn %s" @@ -866,7 +866,8 @@ msgid "[option]" msgstr "[příkaz]" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." @@ -4541,6 +4542,14 @@ msgstr "%s DCC: nemohu nastavit 'neblokovaci' volbu na soket\n" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s chybí argument pro volbu \"%s\"\n" +#, fuzzy +#~ msgid "%sOption \"%s\" not found" +#~ msgstr "%s plugin \"%s\" nenalezen\n" + +#, fuzzy +#~ msgid "Option reset" +#~ msgstr "Možnosti pluginů uloženy\n" + #, fuzzy #~ msgid "background color for selected line" #~ msgstr "barva pro vstupní text" diff --git a/po/de.po b/po/de.po index 01d268610..a0625c0e9 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" "PO-Revision-Date: 2007-09-06 12:44+0200\n" "Last-Translator: Thomas Schuetz \n" "Language-Team: weechat-dev \n" @@ -556,21 +556,21 @@ msgid "Option changed" msgstr "Sie sind nicht im Channel" #, fuzzy, c-format -msgid "%sOption \"%s\" not found" -msgstr "%s Plugin \"%s\" nicht gefunden\n" +msgid "%sFailed to unset option \"%s\"" +msgstr "%s konnte die Plugin-Konfigurationsdatei nicht sichern\n" #, fuzzy msgid "Option reset: " msgstr "Plugin-Optionen gesichert\n" -#, fuzzy -msgid "Option reset" -msgstr "Plugin-Optionen gesichert\n" - #, fuzzy, c-format -msgid "Option \"%s\" removed" +msgid "Option removed: %s" msgstr "Sie sind nicht im Channel" +#, c-format +msgid "%d option(s) reset, %d option(s) removed" +msgstr "" + #, c-format msgid "WeeChat uptime: %d %s %02d:%02d:%02d, started on %s" msgstr "WeeChat Uptime: %d %s %02d:%02d:%02d, gestartet am %s" @@ -860,7 +860,8 @@ msgid "[option]" msgstr "[Befehl]" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." @@ -4530,6 +4531,14 @@ msgstr "%s DCC: kann die 'nonblock'-Option für den Socket nicht festlegen\n" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s fehlende Argumente für die \"--dir\"-Option\n" +#, fuzzy +#~ msgid "%sOption \"%s\" not found" +#~ msgstr "%s Plugin \"%s\" nicht gefunden\n" + +#, fuzzy +#~ msgid "Option reset" +#~ msgstr "Plugin-Optionen gesichert\n" + #, fuzzy #~ msgid "background color for selected line" #~ msgstr "Farbe der Eingabezeile" diff --git a/po/es.po b/po/es.po index 33e70e110..c70ad0114 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" "PO-Revision-Date: 2007-09-19 12:09+0200\n" "Last-Translator: Roberto González Cardenete \n" "Language-Team: weechat-dev \n" @@ -551,21 +551,21 @@ msgid "Option changed" msgstr "no presente en el canal" #, fuzzy, c-format -msgid "%sOption \"%s\" not found" -msgstr "%s plugin \"%s\" no encontrado\n" +msgid "%sFailed to unset option \"%s\"" +msgstr "%s falló al salvar el archivo de configuración\n" #, fuzzy msgid "Option reset: " msgstr "opción/opciones de plugin encontrada(s)\n" -#, fuzzy -msgid "Option reset" -msgstr "opción/opciones de plugin encontrada(s)\n" - #, fuzzy, c-format -msgid "Option \"%s\" removed" +msgid "Option removed: %s" msgstr "no presente en el canal" +#, c-format +msgid "%d option(s) reset, %d option(s) removed" +msgstr "" + #, c-format msgid "WeeChat uptime: %d %s %02d:%02d:%02d, started on %s" msgstr "Tiempo de uso de WeeChat: %d %s %02d:%02d:%02d, empezó en %s" @@ -842,7 +842,8 @@ msgid "[option]" msgstr "[comando]" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." @@ -4539,6 +4540,14 @@ msgstr "%s no es posible crear el servidor\n" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s falta un argumento para la opción --dir\n" +#, fuzzy +#~ msgid "%sOption \"%s\" not found" +#~ msgstr "%s plugin \"%s\" no encontrado\n" + +#, fuzzy +#~ msgid "Option reset" +#~ msgstr "opción/opciones de plugin encontrada(s)\n" + #, fuzzy #~ msgid "background color for selected line" #~ msgstr "color para el texto de entrada" diff --git a/po/fr.po b/po/fr.po index eaa4a3432..c193d0b33 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" -"PO-Revision-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" +"PO-Revision-Date: 2008-05-07 15:26+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" "MIME-Version: 1.0\n" @@ -504,18 +504,19 @@ msgid "Option changed" msgstr "Option modifiée" #, c-format -msgid "%sOption \"%s\" not found" -msgstr "%sOption \"%s\" non trouvée" +msgid "%sFailed to unset option \"%s\"" +msgstr "%sImpossible de supprimer/réinitialiser l'option \"%s\"" msgid "Option reset: " msgstr "Option réinitialisée: " -msgid "Option reset" -msgstr "Option réinitialisée" +#, c-format +msgid "Option removed: %s" +msgstr "Option supprimée: %s" #, c-format -msgid "Option \"%s\" removed" -msgstr "Option \"%s\" supprimée" +msgid "%d option(s) reset, %d option(s) removed" +msgstr "%d option(s) réinitialisée(s), %d option(s) supprimée(s)" #, c-format msgid "WeeChat uptime: %d %s %02d:%02d:%02d, started on %s" @@ -857,16 +858,15 @@ msgid "[option]" msgstr "[option]" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." msgstr "" -"option: nom d'une option\n" +"option: nom d'une option (peut commencer ou se terminer par \"*\" pour réinitialiser plusieurs options, à utiliser avec prudence !)\n" "\n" -"Selon l'option, elle est réinitialisée (pour les options standards) ou " -"supprimée (pour les options facultatives, comme les valeurs pour les " -"serveurs)." +"Selon l'option, elle est réinitialisée (pour les options standards) ou supprimée (pour les options facultatives, comme les valeurs pour les serveurs)." msgid "upgrade WeeChat without disconnecting from servers" msgstr "mettre à jour WeeChat sans se déconnecter des serveurs" @@ -4397,7 +4397,9 @@ msgstr "" "l'utilisateur)" msgid "use remote nick as prefix in local filename when receiving a file" -msgstr "utiliser le pseudo distant comme préfixe dans le nom de fichier local lors de la réception d'un fichier" +msgstr "" +"utiliser le pseudo distant comme préfixe dans le nom de fichier local lors " +"de la réception d'un fichier" msgid "convert spaces to underscores when sending files" msgstr "convertir les espaces en underscores lors d'envoi de fichiers" @@ -4466,5 +4468,11 @@ msgstr "%s%s: impossible de positionner l'option \"nonblock\" pour la socket" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: délai d'attente dépassé pour \"%s\" avec %s" +#~ msgid "%sOption \"%s\" not found" +#~ msgstr "%sOption \"%s\" non trouvée" + +#~ msgid "Option reset" +#~ msgstr "Option réinitialisée" + #~ msgid "background color for selected line" #~ msgstr "couleur du fond pour la ligne sélectionnée" diff --git a/po/hu.po b/po/hu.po index 836eaad35..107e8aed2 100644 --- a/po/hu.po +++ b/po/hu.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" "PO-Revision-Date: 2007-10-10 18:07+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -555,21 +555,21 @@ msgid "Option changed" msgstr "nincs a szobában" #, fuzzy, c-format -msgid "%sOption \"%s\" not found" -msgstr "%s a \"%s\" modul nem található\n" +msgid "%sFailed to unset option \"%s\"" +msgstr "%s nem sikerült a modul opciókat elmenteni\n" #, fuzzy msgid "Option reset: " msgstr "Modul beállítások elmentve\n" -#, fuzzy -msgid "Option reset" -msgstr "Modul beállítások elmentve\n" - #, fuzzy, c-format -msgid "Option \"%s\" removed" +msgid "Option removed: %s" msgstr "nincs a szobában" +#, c-format +msgid "%d option(s) reset, %d option(s) removed" +msgstr "" + #, c-format msgid "WeeChat uptime: %d %s %02d:%02d:%02d, started on %s" msgstr "WeeChat futásidő: %d %s %02d:%02d:%02d, elindítva: %s" @@ -872,7 +872,8 @@ msgid "[option]" msgstr "[parancs]" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." @@ -4545,6 +4546,14 @@ msgstr "%s DCC: nem sikerült 'nonblock' opciót beállítani a csatornán\n" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n" +#, fuzzy +#~ msgid "%sOption \"%s\" not found" +#~ msgstr "%s a \"%s\" modul nem található\n" + +#, fuzzy +#~ msgid "Option reset" +#~ msgstr "Modul beállítások elmentve\n" + #, fuzzy #~ msgid "background color for selected line" #~ msgstr "szövegbeviteli mező színe" diff --git a/po/ru.po b/po/ru.po index 28e2f880a..96a480001 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" "PO-Revision-Date: 2007-09-06 12:44+0200\n" "Last-Translator: Pavel Shevchuk \n" "Language-Team: weechat-dev \n" @@ -552,21 +552,21 @@ msgid "Option changed" msgstr "не на канале" #, fuzzy, c-format -msgid "%sOption \"%s\" not found" -msgstr "%s plugin \"%s\" не найден\n" +msgid "%sFailed to unset option \"%s\"" +msgstr "%s не могу сохранить конфигурационный файл pluginов\n" #, fuzzy msgid "Option reset: " msgstr "Настройки pluginов сохранены\n" -#, fuzzy -msgid "Option reset" -msgstr "Настройки pluginов сохранены\n" - #, fuzzy, c-format -msgid "Option \"%s\" removed" +msgid "Option removed: %s" msgstr "не на канале" +#, c-format +msgid "%d option(s) reset, %d option(s) removed" +msgstr "" + #, c-format msgid "WeeChat uptime: %d %s %02d:%02d:%02d, started on %s" msgstr "WeeChat работает: %d %s %02d:%02d:%02d, запущен %s" @@ -869,7 +869,8 @@ msgid "[option]" msgstr "[команда]" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." @@ -4530,6 +4531,14 @@ msgstr "%s DCC: не могу установить неблокирующий р msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s нет аргумента для параметра \"%s\"\n" +#, fuzzy +#~ msgid "%sOption \"%s\" not found" +#~ msgstr "%s plugin \"%s\" не найден\n" + +#, fuzzy +#~ msgid "Option reset" +#~ msgstr "Настройки pluginов сохранены\n" + #, fuzzy #~ msgid "background color for selected line" #~ msgstr "цвет вводимого текста" diff --git a/po/weechat.pot b/po/weechat.pot index 8ca716869..1428f468a 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-05-07 14:31+0200\n" +"POT-Creation-Date: 2008-05-07 15:25+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -483,17 +483,18 @@ msgid "Option changed" msgstr "" #, c-format -msgid "%sOption \"%s\" not found" +msgid "%sFailed to unset option \"%s\"" msgstr "" msgid "Option reset: " msgstr "" -msgid "Option reset" +#, c-format +msgid "Option removed: %s" msgstr "" #, c-format -msgid "Option \"%s\" removed" +msgid "%d option(s) reset, %d option(s) removed" msgstr "" #, c-format @@ -729,7 +730,8 @@ msgid "[option]" msgstr "" msgid "" -"option: name of an option\n" +"option: name of an option (may begin or end with \"*\" to mass-reset " +"options, use carefully!)\n" "\n" "According to option, it's reset (for standard options) or removed (for " "optional settings, like server values)." diff --git a/src/core/wee-command.c b/src/core/wee-command.c index e227c618d..e16ac024b 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -1906,10 +1906,10 @@ int command_set_display_option_list (char *message, char *search) { int number_found, section_displayed, length; - char *option_full_name; struct t_config_file *ptr_config; struct t_config_section *ptr_section; struct t_config_option *ptr_option; + char *option_full_name; number_found = 0; @@ -1934,7 +1934,7 @@ command_set_display_option_list (char *message, char *search) ptr_config->name, ptr_section->name, ptr_option->name); if ((!search) || - (search && search[0] && option_full_name + (search && search[0] && (string_match (option_full_name, search, 0)))) { if (!section_displayed) @@ -2065,36 +2065,79 @@ int command_unset (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { - struct t_config_option *ptr_option; + struct t_config_file *ptr_config; + struct t_config_section *ptr_section; + struct t_config_option *ptr_option, *next_option; + char *option_full_name; + int length, number_reset, number_removed; /* make C compiler happy */ (void) data; (void) buffer; (void) argv; + number_reset = 0; + number_removed = 0; + if (argc >= 2) { - switch (config_file_unset_with_string (argv_eol[1])) + for (ptr_config = config_files; ptr_config; + ptr_config = ptr_config->next_config) { - case 0: - gui_chat_printf (NULL, _("%sOption \"%s\" not found"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - argv_eol[1]); - break; - case 1: - config_file_search_with_string (argv[1], NULL, NULL, - &ptr_option, NULL); - if (ptr_option) - command_set_display_option (ptr_option, - _("Option reset: ")); - else - gui_chat_printf (NULL, _("Option reset")); - break; - case 2: - gui_chat_printf (NULL, _("Option \"%s\" removed"), - argv_eol[1]); - break; + for (ptr_section = ptr_config->sections; ptr_section; + ptr_section = ptr_section->next_section) + { + ptr_option = ptr_section->options; + while (ptr_option) + { + next_option = ptr_option->next_option; + + length = strlen (ptr_config->name) + 1 + + strlen (ptr_section->name) + 1 + + strlen (ptr_option->name) + 1; + option_full_name = malloc (length); + if (option_full_name) + { + snprintf (option_full_name, length, "%s.%s.%s", + ptr_config->name, ptr_section->name, + ptr_option->name); + if (string_match (option_full_name, argv_eol[1], 0)) + { + switch (config_file_option_unset (ptr_option)) + { + case -1: /* error */ + gui_chat_printf (NULL, + _("%sFailed to unset " + "option \"%s\""), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + option_full_name); + break; + case 0: /* unset not needed on this option */ + break; + case 1: /* option reset */ + command_set_display_option (ptr_option, + _("Option reset: ")); + number_reset++; + break; + case 2: /* option removed */ + gui_chat_printf (NULL, + _("Option removed: %s"), + option_full_name); + number_removed++; + break; + } + } + free (option_full_name); + } + + ptr_option = next_option; + } + } } + gui_chat_printf (NULL, + _("%d option(s) reset, %d option(s) removed"), + number_reset, + number_removed); } return WEECHAT_RC_OK; @@ -2720,7 +2763,8 @@ command_init () hook_command (NULL, "unset", N_("unset/reset config options"), N_("[option]"), - N_("option: name of an option\n\n" + N_("option: name of an option (may begin or end with \"*\" " + "to mass-reset options, use carefully!)\n\n" "According to option, it's reset (for standard options) " "or removed (for optional settings, like server values)."), "%o", diff --git a/src/core/wee-config-file.c b/src/core/wee-config-file.c index d639d2512..7ec4d0291 100644 --- a/src/core/wee-config-file.c +++ b/src/core/wee-config-file.c @@ -839,7 +839,7 @@ config_file_option_reset (struct t_config_option *option, int run_callback) } } - return 0; + return rc; } /* @@ -1089,6 +1089,53 @@ config_file_option_set (struct t_config_option *option, char *value, return rc; } +/* + * config_file_option_unset: unset/reset option + * return: -1 if failed + * 0 if reset not needed + * 1 if option reset + * 2 if option removed + */ + +int +config_file_option_unset (struct t_config_option *option) +{ + int rc; + + rc = 0; + + if (option->section && option->section->user_can_delete_options) + { + /* delete option */ + if (option->callback_delete) + { + (void)(option->callback_delete) + (option->callback_delete_data, + option); + } + config_file_option_free (option); + rc = 2; + } + else + { + /* reset value */ + switch (config_file_option_reset (option, 1)) + { + case 0: + rc = -1; + break; + case 1: + rc = 0; + break; + case 2: + rc = 1; + break; + } + } + + return rc; +} + /* * config_file_option_rename: rename an option */ @@ -1205,46 +1252,25 @@ config_file_option_set_with_string (char *option_name, char *value) } /* - * config_file_unset_with_string: unset/reset option - * return: 0 if failed - * 1 if option reset - * 2 if option removed + * config_file_option_unset_with_string: unset/reset option + * return: -1 if failed + * 0 if reset not needed + * 1 if option reset + * 2 if option removed */ int -config_file_unset_with_string (char *option_name) +config_file_option_unset_with_string (char *option_name) { - struct t_config_section *ptr_section; struct t_config_option *ptr_option; int rc; - rc = 0; + rc = -1; - config_file_search_with_string (option_name, NULL, &ptr_section, - &ptr_option, NULL); + config_file_search_with_string (option_name, NULL, NULL, &ptr_option, NULL); - /* delete option */ - if (ptr_section && ptr_option) - { - if (ptr_section->user_can_delete_options) - { - /* removing option */ - if (ptr_option->callback_delete) - { - (void)(ptr_option->callback_delete) - (ptr_option->callback_delete_data, - ptr_option); - } - config_file_option_free (ptr_option); - rc = 2; - } - else - { - /* reset value */ - config_file_option_reset (ptr_option, 1); - rc = 1; - } - } + if (ptr_option) + rc = config_file_option_unset (ptr_option); return rc; } diff --git a/src/core/wee-config-file.h b/src/core/wee-config-file.h index e4ff16a6f..a11829caa 100644 --- a/src/core/wee-config-file.h +++ b/src/core/wee-config-file.h @@ -203,12 +203,13 @@ extern int config_file_option_reset (struct t_config_option *option, int run_callback); extern int config_file_option_set (struct t_config_option *option, char *value, int run_callback); +extern int config_file_option_unset (struct t_config_option *option); extern void config_file_option_rename (struct t_config_option *option, char *new_name); extern void *config_file_option_get_pointer (struct t_config_option *option, char *property); extern int config_file_option_set_with_string (char *option_name, char *value); -extern int config_file_unset_with_string (char *option_name); +extern int config_file_option_unset_with_string (char *option_name); extern int config_file_option_boolean (struct t_config_option *option); extern int config_file_option_integer (struct t_config_option *option); extern char *config_file_option_string (struct t_config_option *option);