From 67f8f7386a0b8e96586b014b376fc0750e8a4940 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Mon, 18 May 2009 23:23:40 +0200 Subject: [PATCH] Add argument with buffer number/range for command "/buffer close" (task #9390, task #7239) --- ChangeLog | 2 + doc/de/autogen/weechat_commands.xml | 7 +-- doc/en/autogen/weechat_commands.xml | 7 +-- doc/fr/autogen/weechat_commands.xml | 7 +-- po/cs.po | 11 ++-- po/de.po | 11 ++-- po/es.po | 11 ++-- po/fr.po | 22 ++++---- po/hu.po | 11 ++-- po/pl.po | 11 ++-- po/ru.po | 11 ++-- po/weechat.pot | 11 ++-- src/core/wee-command.c | 82 ++++++++++++++++++++++++----- 13 files changed, 137 insertions(+), 67 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92e3c5000..4212e49c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -76,6 +76,8 @@ Version 0.3.0 (under dev!) for current buffer only (task #7286) * core: add polish translation (thanks to Soltys) * core: remove key functions, replaced by /input command +* core: add argument with buffer number/range for command "/buffer close" + (task #9390, task #7239) * core: fix nick completion bug (missing space after nick) Version 0.2.6.2 (2009-04-18) diff --git a/doc/de/autogen/weechat_commands.xml b/doc/de/autogen/weechat_commands.xml index 7f08235ab..589fd0f7c 100644 --- a/doc/de/autogen/weechat_commands.xml +++ b/doc/de/autogen/weechat_commands.xml @@ -52,13 +52,13 @@ Examples: /bar scroll nicklist * ye -/buffer [clear [number | -all] | move number | close | list | notify level | localvar | set property value | number | name] +/buffer [clear [number | -all] | move number | close [n1[-n2]]| list | notify level | localvar | set property value | number | name] Puffer verwalten clear: clear buffer content (-all for all buffers, number for a buffer, or nothing for current buffer) move: move buffer in the list (may be relative, for example -1) - close: close buffer + close: close buffer (number/range is optional) list: list buffers (no parameter implies this list) notify: set notify level for current buffer: this level determines whether buffer will be added to hotlist or not: none: never @@ -78,7 +78,8 @@ Examples: clear current buffer: /buffer clear clear all buffers: /buffer clear -all move buffer: /buffer move 5 - close buffer: /buffer close +close current buffer: /buffer close +close buffers 5 to 7: /buffer close 5-7 jump to #weechat: /buffer #weechat jump to next buffer: /buffer +1 diff --git a/doc/en/autogen/weechat_commands.xml b/doc/en/autogen/weechat_commands.xml index 8ff739f4f..1fbb6105d 100644 --- a/doc/en/autogen/weechat_commands.xml +++ b/doc/en/autogen/weechat_commands.xml @@ -52,13 +52,13 @@ Examples: /bar scroll nicklist * ye -/buffer [clear [number | -all] | move number | close | list | notify level | localvar | set property value | number | name] +/buffer [clear [number | -all] | move number | close [n1[-n2]]| list | notify level | localvar | set property value | number | name] manage buffers clear: clear buffer content (-all for all buffers, number for a buffer, or nothing for current buffer) move: move buffer in the list (may be relative, for example -1) - close: close buffer + close: close buffer (number/range is optional) list: list buffers (no parameter implies this list) notify: set notify level for current buffer: this level determines whether buffer will be added to hotlist or not: none: never @@ -78,7 +78,8 @@ Examples: clear current buffer: /buffer clear clear all buffers: /buffer clear -all move buffer: /buffer move 5 - close buffer: /buffer close +close current buffer: /buffer close +close buffers 5 to 7: /buffer close 5-7 jump to #weechat: /buffer #weechat jump to next buffer: /buffer +1 diff --git a/doc/fr/autogen/weechat_commands.xml b/doc/fr/autogen/weechat_commands.xml index 4a23ed575..76d46d201 100644 --- a/doc/fr/autogen/weechat_commands.xml +++ b/doc/fr/autogen/weechat_commands.xml @@ -52,13 +52,13 @@ Exemples : /bar scroll nicklist * ye -/buffer [clear [nombre | -all] | move nombre | close | list | notify niveau | localvar | set propriété valeur | nombre | nom] +/buffer [clear [nombre | -all] | move nombre | close [n1[-n2]] | list | notify niveau | localvar | set propriété valeur | nombre | nom] gestion des tampons clear: efface le contenu du tampon (-all pour tous les tampons, un numéro pour un tampon, ou rien pour le tampon courant) move: déplace le tampon dans la liste (peut être relatif, par exemple -1) - close: ferme le tampon + close: ferme le tampon (nombre/intervalle optionnel) list: liste les tampons ouverts (pas de paramètre affiche cette liste) notify: définit le niveau de notification pour le tampon courant: ce niveau détermine si le buffer doit être ajouté à la hotlist ou pas : none: jamais @@ -78,7 +78,8 @@ Exemples: effacer le tampon courant: /buffer clear effacer tous les tampons: /buffer clear -all déplacer le tampon: /buffer move 5 - fermer le tampon: /buffer close + fermer le tampon courant: /buffer close + fermer les tampons 5 à 7: /buffer close 5-7 aller sur #weechat: /buffer #weechat aller au tampon suivant: /buffer +1 diff --git a/po/cs.po b/po/cs.po index dd415af29..4a7f168bb 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -771,8 +771,8 @@ msgid "manage buffers" msgstr "řídit buffery" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" #, fuzzy @@ -780,7 +780,7 @@ msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -802,7 +802,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/po/de.po b/po/de.po index 56326cbd3..f90f42c54 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Thomas Schuetz \n" "Language-Team: weechat-dev \n" @@ -828,8 +828,8 @@ msgid "manage buffers" msgstr "Puffer verwalten" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" #, fuzzy @@ -837,7 +837,7 @@ msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -859,7 +859,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/po/es.po b/po/es.po index 63519c352..dffb72b0b 100644 --- a/po/es.po +++ b/po/es.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Roberto González Cardenete \n" "Language-Team: weechat-dev \n" @@ -824,8 +824,8 @@ msgid "manage buffers" msgstr "gestionar los búfers" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" #, fuzzy @@ -833,7 +833,7 @@ msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -855,7 +855,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/po/fr.po b/po/fr.po index 9c1b1e21f..2f17b3909 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" -"PO-Revision-Date: 2009-05-18 18:26+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" +"PO-Revision-Date: 2009-05-18 23:06+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" "MIME-Version: 1.0\n" @@ -827,17 +827,17 @@ msgid "manage buffers" msgstr "gestion des tampons" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" -"[clear [nombre | -all] | move nombre | close | list | notify niveau | " -"localvar | set propriété valeur | nombre | nom]" +"[clear [nombre | -all] | move nombre | close [n1[-n2]] | list | notify " +"niveau | localvar | set propriété valeur | nombre | nom]" msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -859,7 +859,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" @@ -867,7 +868,7 @@ msgstr "" "pour un tampon, ou rien pour le tampon courant)\n" " move: déplace le tampon dans la liste (peut être relatif, par exemple -" "1)\n" -" close: ferme le tampon\n" +" close: ferme le tampon (nombre/intervalle optionnel)\n" " list: liste les tampons ouverts (pas de paramètre affiche cette liste)\n" " notify: définit le niveau de notification pour le tampon courant: ce " "niveau détermine si le buffer doit être ajouté à la hotlist ou pas :\n" @@ -889,7 +890,8 @@ msgstr "" "effacer le tampon courant: /buffer clear\n" " effacer tous les tampons: /buffer clear -all\n" " déplacer le tampon: /buffer move 5\n" -" fermer le tampon: /buffer close\n" +" fermer le tampon courant: /buffer close\n" +" fermer les tampons 5 à 7: /buffer close 5-7\n" " aller sur #weechat: /buffer #weechat\n" " aller au tampon suivant: /buffer +1" diff --git a/po/hu.po b/po/hu.po index 4822aca21..fd2a360bb 100644 --- a/po/hu.po +++ b/po/hu.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -828,8 +828,8 @@ msgid "manage buffers" msgstr "pufferek kezelése" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" #, fuzzy @@ -837,7 +837,7 @@ msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -859,7 +859,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/po/pl.po b/po/pl.po index b007cd376..de3e8c5ae 100644 --- a/po/pl.po +++ b/po/pl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: \n" "Language-Team: Polish\n" @@ -770,15 +770,15 @@ msgid "manage buffers" msgstr "" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -800,7 +800,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/po/ru.po b/po/ru.po index b49b8616b..4e3f35c1b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.0-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: 2009-05-11 13:02+0200\n" "Last-Translator: Pavel Shevchuk \n" "Language-Team: weechat-dev \n" @@ -822,8 +822,8 @@ msgid "manage buffers" msgstr "управление буферами" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" #, fuzzy @@ -831,7 +831,7 @@ msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -853,7 +853,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/po/weechat.pot b/po/weechat.pot index 5f03752d0..82d76a714 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: 2009-05-18 18:25+0200\n" +"POT-Creation-Date: 2009-05-18 22:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -738,15 +738,15 @@ msgid "manage buffers" msgstr "" msgid "" -"[clear [number | -all] | move number | close | list | notify level | " -"localvar | set property value | number | name]" +"[clear [number | -all] | move number | close [n1[-n2]]| list | notify level " +"| localvar | set property value | number | name]" msgstr "" msgid "" " clear: clear buffer content (-all for all buffers, number for a buffer, " "or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for example -1)\n" -" close: close buffer\n" +" close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this level determines whether " "buffer will be added to hotlist or not:\n" @@ -768,7 +768,8 @@ msgid "" "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" -" close buffer: /buffer close\n" +"close current buffer: /buffer close\n" +"close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1" msgstr "" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index d285fd8bc..5f1f21c2f 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -495,8 +495,8 @@ command_buffer (void *data, struct t_gui_buffer *buffer, { struct t_gui_buffer *ptr_buffer; struct t_gui_buffer_local_var *ptr_local_var; - long number; - char *error, *value; + long number, number1, number2; + char *error, *value, *pos, *str_number1, *pos_number2; int i, target_buffer; /* make C compiler happy */ @@ -603,15 +603,69 @@ command_buffer (void *data, struct t_gui_buffer *buffer, /* close buffer */ if (string_strcasecmp (argv[1], "close") == 0) { - if (!buffer->plugin) + if (argc < 3) { - gui_chat_printf (NULL, - _("%sError: WeeChat main buffer can't be " - "closed"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]); - return WEECHAT_RC_ERROR; + number1 = buffer->number; + number2 = buffer->number; + } + else + { + pos = strchr (argv_eol[2], '-'); + if (pos) + { + 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]) + { + if (pos_number2) + { + error = NULL; + number2 = strtol (pos_number2, &error, 10); + if (!error || error[0]) + return WEECHAT_RC_ERROR; + } + else + number2 = number1; + } + else + { + number1 = -1; + number2 = -1; + } + free (str_number1); + } + if ((number1 < 0) || (number2 < 0) || (number2 < number1)) + return WEECHAT_RC_ERROR; + } + for (i = number2; i >= number1; i--) + { + ptr_buffer = gui_buffer_search_by_number (i); + if (ptr_buffer) + { + if (!ptr_buffer->plugin) + { + 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 (buffer); return WEECHAT_RC_OK; } @@ -3697,13 +3751,14 @@ command_init () &command_bar, NULL); hook_command (NULL, "buffer", N_("manage buffers"), - N_("[clear [number | -all] | move number | close | list | " - "notify level | localvar | set property value | number | name]"), + N_("[clear [number | -all] | move number | close [n1[-n2]]| " + "list | notify level | localvar | set property value | " + "number | name]"), N_(" clear: clear buffer content (-all for all buffers, " "number for a buffer, or nothing for current buffer)\n" " move: move buffer in the list (may be relative, for " "example -1)\n" - " close: close buffer\n" + " close: close buffer (number/range is optional)\n" " list: list buffers (no parameter implies this list)\n" " notify: set notify level for current buffer: this " "level determines whether buffer will be added to " @@ -3725,7 +3780,8 @@ command_init () "clear current buffer: /buffer clear\n" " clear all buffers: /buffer clear -all\n" " move buffer: /buffer move 5\n" - " close buffer: /buffer close\n" + "close current buffer: /buffer close\n" + "close buffers 5 to 7: /buffer close 5-7\n" " jump to #weechat: /buffer #weechat\n" " jump to next buffer: /buffer +1"), "clear -all|%(buffers_numbers)"