diff --git a/ChangeLog.adoc b/ChangeLog.adoc index b5dfeea5c..81e42942f 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -20,6 +20,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] New features:: + * core: allow multiple arguments in command /buffer close * core: allow multiple options "-r" ("--run-command") in command line arguments (issue #1248) * core: add option "-P" (or "--plugins") to customize the plugins to load at startup * core: allow partial buffer name in command /buffer close (issue #1226) diff --git a/doc/de/autogen/user/weechat_commands.adoc b/doc/de/autogen/user/weechat_commands.adoc index e2fda2ebf..d1aa43325 100644 --- a/doc/de/autogen/user/weechat_commands.adoc +++ b/doc/de/autogen/user/weechat_commands.adoc @@ -79,7 +79,7 @@ Beispiele: hide [||-all [|...]] unhide [||-all [|...]] renumber [ [ []]] - close [[-]|] + close [[-]|...] notify localvar set [] diff --git a/doc/en/autogen/user/weechat_commands.adoc b/doc/en/autogen/user/weechat_commands.adoc index e07bdd9a0..8d920c99b 100644 --- a/doc/en/autogen/user/weechat_commands.adoc +++ b/doc/en/autogen/user/weechat_commands.adoc @@ -79,7 +79,7 @@ Examples: hide [||-all [|...]] unhide [||-all [|...]] renumber [ [ []]] - close [[-]|] + close [[-]|...] notify localvar set [] diff --git a/doc/fr/autogen/user/weechat_commands.adoc b/doc/fr/autogen/user/weechat_commands.adoc index d48b94067..bfb943dc4 100644 --- a/doc/fr/autogen/user/weechat_commands.adoc +++ b/doc/fr/autogen/user/weechat_commands.adoc @@ -79,7 +79,7 @@ Exemples : hide [||-all [|...]] unhide [||-all [|...]] renumber [ []] - close [[-]|] + close [[-]|...] notify localvar set [] diff --git a/doc/it/autogen/user/weechat_commands.adoc b/doc/it/autogen/user/weechat_commands.adoc index e58b3f625..9b1361c48 100644 --- a/doc/it/autogen/user/weechat_commands.adoc +++ b/doc/it/autogen/user/weechat_commands.adoc @@ -79,7 +79,7 @@ Examples: hide [||-all [|...]] unhide [||-all [|...]] renumber [ [ []]] - close [[-]|] + close [[-]|...] notify localvar set [] diff --git a/doc/ja/autogen/user/weechat_commands.adoc b/doc/ja/autogen/user/weechat_commands.adoc index 2fd751cda..1752d6388 100644 --- a/doc/ja/autogen/user/weechat_commands.adoc +++ b/doc/ja/autogen/user/weechat_commands.adoc @@ -79,7 +79,7 @@ message: 離席メッセージ (メッセージが無い場合は、離席状態 hide [||-all [|...]] unhide [||-all [|...]] renumber [ [ []]] - close [[-]|] + close [[-]|...] notify localvar set [] diff --git a/doc/pl/autogen/user/weechat_commands.adoc b/doc/pl/autogen/user/weechat_commands.adoc index 868d41cdd..8267a9f73 100644 --- a/doc/pl/autogen/user/weechat_commands.adoc +++ b/doc/pl/autogen/user/weechat_commands.adoc @@ -69,22 +69,22 @@ Przykłady: ---- /buffer list - add [-free] [-switch] - clear [||-merged|-all [|...]] - move |-|+ - swap | [|] - cycle | [|...] - merge | - unmerge [|-all] - hide [||-all [|...]] - unhide [||-all [|...]] - renumber [ [ []]] - close [[-]|] - notify + add [-free] [-switch] + clear [||-merged|-all [|...]] + move |-|+ + swap | [|] + cycle | [|...] + merge | + unmerge [|-all] + hide [||-all [|...]] + unhide [||-all [|...]] + renumber [ [ []]] + close [[-]|...] + notify localvar - set [] - get - |-|+| + set [] + get + |-|+| list: wyświetla listę buforów (bez podania argumenty wyświetlana jest ta lista) add: dodaje nowy bufor (może zostać zamknięty komendą "/buffer close" albo "q") diff --git a/po/cs.po b/po/cs.po index 0b9d83539..07ea53028 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -1205,9 +1205,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || clear [<číslo>|-merged|-all] || move|merge <číslo> || unmerge " "[<číslo>] || close [[-]] || notify <úroveň> || localvar || set " diff --git a/po/de.po b/po/de.po index a529919ce..d78c0f689 100644 --- a/po/de.po +++ b/po/de.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-09-09 10:03+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -1234,15 +1234,16 @@ msgstr "" msgid "manage buffers" msgstr "Buffer verwalten" +#, fuzzy msgid "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " diff --git a/po/es.po b/po/es.po index 2022111af..ad87943d1 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -1201,9 +1201,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || clear [||-merged|-all] || move|merge || " "swap| [|] || unmerge [|-all] || " diff --git a/po/fr.po b/po/fr.po index 6ab1622fc..e585cbe3d 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" -"PO-Revision-Date: 2018-09-09 10:03+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" +"PO-Revision-Date: 2018-09-18 21:26+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -1214,16 +1214,16 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] || " -"renumber [ []] || close [[-]|] || " +"renumber [ []] || close [[-]|...] || " "notify || localvar || set [] || get " "|| |" diff --git a/po/hu.po b/po/hu.po index ddee31b39..c53e8d61b 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -1173,9 +1173,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" #, fuzzy diff --git a/po/it.po b/po/it.po index a10e5dee0..5f909506c 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -1179,9 +1179,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || clear [||-merged|-all] || move|merge || swap " "| [|] || unmerge [|-all] || close " diff --git a/po/ja.po b/po/ja.po index 6fc70a729..7f4531765 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-09-09 10:05+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " diff --git a/po/pl.po b/po/pl.po index 7f6520cf6..97b554508 100644 --- a/po/pl.po +++ b/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-09-09 10:05+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish \n" @@ -1212,15 +1212,16 @@ msgstr "" msgid "manage buffers" msgstr "zarządzaj buforami" +#, fuzzy msgid "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || add [-free] [-switch] || clear [||-merged|-all " "[|...]] || move |-|+ || swap | " diff --git a/po/pt.po b/po/pt.po index 629343337..b7cc03598 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:36+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -1205,9 +1205,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || clear [||-merged|-all [|...]] || move " "|-|+ || swap | [|] || cycle |" diff --git a/po/pt_BR.po b/po/pt_BR.po index e30e1358b..556b66fb3 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:37+0200\n" "Last-Translator: Eduardo Elias \n" "Language-Team: weechat-dev \n" @@ -1222,9 +1222,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" "list || clear [||-merged|-all] || move|merge || swap " "| [|] || unmerge [|-all] || close " diff --git a/po/ru.po b/po/ru.po index df468db74..622234dfd 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2018-03-31 15:37+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -1194,9 +1194,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" #, fuzzy diff --git a/po/tr.po b/po/tr.po index 864dd0228..7e93e986e 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2017-06-26 23:33+0200\n" "Last-Translator: Hasan Kiran \n" "Language-Team: weechat-dev \n" @@ -1064,9 +1064,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" msgid "" diff --git a/po/weechat.pot b/po/weechat.pot index 21fd5253e..cf0ec4a8f 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2018-09-09 10:02+0200\n" +"POT-Creation-Date: 2018-09-18 21:23+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -1068,9 +1068,9 @@ msgid "" "[|] || cycle | [|...] || merge " "| || unmerge [|-all] || hide [||-all " "[|...]] || unhide [||-all [|...]] " -"|| renumber [ [ []]] || close [[-]|] " -"|| notify || localvar || set [] || get " -"|| |-|+|" +"|| renumber [ [ []]] || close [[-]|" +"...] || notify || localvar || set [] || get " +" || |-|+|" msgstr "" msgid "" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 938dd0bd9..3fe983430 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -41,6 +41,7 @@ #include "weechat.h" #include "wee-command.h" +#include "wee-arraylist.h" #include "wee-config.h" #include "wee-config-file.h" #include "wee-debug.h" @@ -543,10 +544,11 @@ command_buffer_display_localvar (void *data, COMMAND_CALLBACK(buffer) { struct t_gui_buffer *ptr_buffer, *ptr_buffer1, *ptr_buffer2; - struct t_gui_buffer *ptr_prev_buffer, *weechat_buffer; + struct t_gui_buffer *weechat_buffer; + struct t_arraylist *buffers_to_close; long number, number1, number2, numbers[3]; char *error, *value, *pos, *str_number1, *pos_number2; - int i, error_main_buffer, num_buffers, count, prev_number, clear_number; + int i, count, prev_number, clear_number; int buffer_found, arg_name, type_free, switch_to_buffer; /* make C compiler happy */ @@ -963,126 +965,116 @@ COMMAND_CALLBACK(buffer) /* close buffer */ if (string_strcasecmp (argv[1], "close") == 0) { - weechat_buffer = gui_buffer_search_main (); + buffers_to_close = arraylist_new (32, 0, 0, NULL, NULL, NULL, NULL); if (argc < 3) { - if (buffer == weechat_buffer) - { - gui_chat_printf (NULL, - _("%sError: WeeChat main buffer can't be " - "closed"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); - } - else - { - gui_buffer_close (buffer); - } + arraylist_add (buffers_to_close, buffer); } else { - if (isdigit ((unsigned char)argv_eol[2][0])) + for (i = 2; i < argc; i++) { - number1 = -1; - number2 = -1; - pos = strchr (argv_eol[2], '-'); - if (pos) + if (isdigit ((unsigned char)argv[i][0])) { - str_number1 = string_strndup (argv_eol[2], - pos - argv_eol[2]); - pos_number2 = pos + 1; - } - else - { - str_number1 = strdup (argv_eol[2]); - pos_number2 = NULL; - } - if (str_number1) - { - error = NULL; - number1 = strtol (str_number1, &error, 10); - if (error && !error[0]) + number1 = -1; + number2 = -1; + pos = strchr (argv[i], '-'); + if (pos) { - if (pos_number2) - { - error = NULL; - number2 = strtol (pos_number2, &error, 10); - if (!error || error[0]) - { - free (str_number1); - COMMAND_ERROR; - } - } - else - number2 = number1; + str_number1 = string_strndup (argv[i], + pos - argv[i]); + pos_number2 = pos + 1; } else { - number1 = -1; - number2 = -1; + str_number1 = strdup (argv[i]); + pos_number2 = NULL; } - free (str_number1); - } - if ((number1 >= 1) && (number2 >= 1) && (number2 >= number1)) - { - error_main_buffer = 0; - num_buffers = 0; - ptr_buffer = last_gui_buffer; - while (ptr_buffer) + if (str_number1) { - ptr_prev_buffer = ptr_buffer->prev_buffer; - if (ptr_buffer->number < number1) - break; - if (ptr_buffer->number <= number2) + error = NULL; + number1 = strtol (str_number1, &error, 10); + if (error && !error[0]) { - num_buffers++; - if (ptr_buffer == weechat_buffer) + if (pos_number2) { - error_main_buffer = 1; + error = NULL; + number2 = strtol (pos_number2, &error, 10); + if (!error || error[0]) + { + free (str_number1); + COMMAND_ERROR; + } } else - { - gui_buffer_close (ptr_buffer); - } + number2 = number1; } - ptr_buffer = ptr_prev_buffer; + else + { + free (str_number1); + COMMAND_ERROR; + } + free (str_number1); } + if ((number1 >= 1) && (number2 >= 1) && (number2 >= number1)) + { + ptr_buffer = gui_buffers; + while (ptr_buffer && (ptr_buffer->number <= number2)) + { + if (ptr_buffer->number >= number1) + { + arraylist_add (buffers_to_close, + ptr_buffer); + } + ptr_buffer = ptr_buffer->next_buffer; + } + } + } + else + { + ptr_buffer = gui_buffer_search_by_full_name (argv[i]); + if (!ptr_buffer) + { + ptr_buffer = gui_buffer_search_by_partial_name ( + NULL, argv[i]); + } + if (ptr_buffer) + arraylist_add (buffers_to_close, ptr_buffer); + } + } + } + + weechat_buffer = gui_buffer_search_main (); + + for (i = 0; i < arraylist_size (buffers_to_close); i++) + { + ptr_buffer = (struct t_gui_buffer *)arraylist_get (buffers_to_close, + i); + if (!gui_buffer_valid (ptr_buffer)) + continue; + if (ptr_buffer == weechat_buffer) + { + if (arraylist_size (buffers_to_close) == 1) + { /* * display error for main buffer if it was the only * buffer to close with matching number */ - if (error_main_buffer && (num_buffers <= 1)) - { - gui_chat_printf (NULL, - _("%sError: WeeChat main " - "buffer can't be closed"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); - } + gui_chat_printf (NULL, + _("%sError: WeeChat main buffer can't be " + "closed"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); } } else { - ptr_buffer = gui_buffer_search_by_full_name (argv_eol[2]); - if (!ptr_buffer) - { - ptr_buffer = gui_buffer_search_by_partial_name ( - NULL, argv_eol[2]); - } - if (ptr_buffer) - { - if (ptr_buffer == weechat_buffer) - { - gui_chat_printf (NULL, - _("%sError: WeeChat main buffer can't " - "be closed"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); - } - else - gui_buffer_close (ptr_buffer); - } + gui_buffer_close (ptr_buffer); } } + arraylist_free (buffers_to_close); + return WEECHAT_RC_OK; } @@ -7109,7 +7101,7 @@ command_init () " || hide [||-all [|...]]" " || unhide [||-all [|...]]" " || renumber [ [ []]]" - " || close [[-]|]" + " || close [[-]|...]" " || notify " " || localvar" " || set []" @@ -7195,7 +7187,7 @@ command_init () " || unhide %(buffers_numbers)|%(buffers_plugins_names)|-all " "%(buffers_numbers)|%(buffers_plugins_names)|%*" " || renumber %(buffers_numbers) %(buffers_numbers) %(buffers_numbers)" - " || close %(buffers_plugins_names)" + " || close %(buffers_plugins_names)|%*" " || list" " || notify reset|none|highlight|message|all" " || localvar"