buflist: evaluate option buflist.look.sort (closes #1465)

The evaluation allows to use different sort for the bar items, for example with
such value:

    ${if:${bar_item.name}==buflist?number:short_name}

This sorts by number on the first bar item and by short name on the two other
bar items.
master
Sébastien Helleu 2020-04-06 20:49:17 +02:00
parent a072d769fd
commit fdd39c6b97
26 changed files with 185 additions and 88 deletions

View File

@ -18,6 +18,10 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
[[v2.9]] [[v2.9]]
== Version 2.9 (under dev) == Version 2.9 (under dev)
New features::
* buflist: evaluate option buflist.look.sort so that sort can be customized for each of the three buflist bar items (issue #1465)
Bug fixes:: Bug fixes::
* python: fix crash when invalid UTF-8 string is in a WeeChat hashtable converted to a Python dict (issue #1463) * python: fix crash when invalid UTF-8 string is in a WeeChat hashtable converted to a Python dict (issue #1463)

View File

@ -147,7 +147,7 @@
** Standardwert: `+""+` ** Standardwert: `+""+`
* [[option_buflist.look.sort]] *buflist.look.sort* * [[option_buflist.look.sort]] *buflist.look.sort*
** Beschreibung: pass:none[durch Kommata getrennte Liste von Feldern um die Buffer zu sortieren; jedes Feld ist entweder eine hdata Variable von Buffer ("var"), eine hdata Variable vom Typ IRC Server ("irc_server.var") oder eine hdata Variable vom Typ IRC Channel ("irc_channel.var"); wird das "-" Zeichen vor einem Feld angewendet, wird die Ausgabe umgekehrt, um bei einem Vergleich nicht zwischen Groß- und Kleinschreibung zu unterscheiden wird das Zeichen "~" verwendet; Beispiel: "-~short_name" sortiert die Buffer nach ihrem Kurznamen, wobei dies invertierte passiert und nicht zwischen Groß-oder Kleinschreibung unterschieden wird] ** Beschreibung: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name (note: content is evaluated, only the pointer to bar_item can be used, for example "bar_item.name")]
** Typ: Zeichenkette ** Typ: Zeichenkette
** Werte: beliebige Zeichenkette ** Werte: beliebige Zeichenkette
** Standardwert: `+"number,-active"+` ** Standardwert: `+"number,-active"+`

View File

@ -147,7 +147,7 @@
** default value: `+""+` ** default value: `+""+`
* [[option_buflist.look.sort]] *buflist.look.sort* * [[option_buflist.look.sort]] *buflist.look.sort*
** description: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name] ** description: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name (note: content is evaluated, only the pointer to bar_item can be used, for example "bar_item.name")]
** type: string ** type: string
** values: any string ** values: any string
** default value: `+"number,-active"+` ** default value: `+"number,-active"+`

View File

@ -147,7 +147,7 @@
** valeur par défaut: `+""+` ** valeur par défaut: `+""+`
* [[option_buflist.look.sort]] *buflist.look.sort* * [[option_buflist.look.sort]] *buflist.look.sort*
** description: pass:none[liste de champs séparés par des virgules pour trier les tampons ; chaque champ est une variable hdata du tampon ("var"), une variable hdata du serveur IRC ("irc_server.var") ou une variable hdata du canal IRC ("irc_channel.var") ; le caractère "-" peut être utilisé pour inverser l'ordre, le caractère "~" peut être utilisé pour effectuer une comparaison insensible à la casse ; exemple : "-~short_name" pour un tri inverse insensible à la casse sur le nom court du tampon] ** description: pass:none[liste de champs séparés par des virgules pour trier les tampons ; chaque champ est une variable hdata du tampon ("var"), une variable hdata du serveur IRC ("irc_server.var") ou une variable hdata du canal IRC ("irc_channel.var") ; le caractère "-" peut être utilisé pour inverser l'ordre, le caractère "~" peut être utilisé pour effectuer une comparaison insensible à la casse ; exemple : "-~short_name" pour un tri inverse insensible à la casse sur le nom court du tampon (note : le contenu est évalué, seul le pointeur vers bar_item peut être utilisé, par exemple "bar_item.name")]
** type: chaîne ** type: chaîne
** valeurs: toute chaîne ** valeurs: toute chaîne
** valeur par défaut: `+"number,-active"+` ** valeur par défaut: `+"number,-active"+`

View File

@ -147,7 +147,7 @@
** valore predefinito: `+""+` ** valore predefinito: `+""+`
* [[option_buflist.look.sort]] *buflist.look.sort* * [[option_buflist.look.sort]] *buflist.look.sort*
** descrizione: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name] ** descrizione: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name (note: content is evaluated, only the pointer to bar_item can be used, for example "bar_item.name")]
** tipo: stringa ** tipo: stringa
** valori: qualsiasi stringa ** valori: qualsiasi stringa
** valore predefinito: `+"number,-active"+` ** valore predefinito: `+"number,-active"+`

View File

@ -147,7 +147,7 @@
** デフォルト値: `+""+` ** デフォルト値: `+""+`
* [[option_buflist.look.sort]] *buflist.look.sort* * [[option_buflist.look.sort]] *buflist.look.sort*
** 説明: pass:none[バッファをソートする際に考慮するフィールドのコンマ区切りリスト; 各フィールドはバッファの hdata 変数 ("var")、IRC サーバの hdata 変数 ("irc_server.var")、IRC チャンネルの hdata 変数 ("irc_channel.var") のどれかです; フィールドの先頭に "-" 文字を付けることでソート順を逆にすることも可能です。大文字小文字を区別せずに比較を行うには "~" 文字を使います; 例: "-~short_name" バッファの短縮名を使い、大文字小文字を区別せずにソートして、順番を逆にします] ** 説明: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name (note: content is evaluated, only the pointer to bar_item can be used, for example "bar_item.name")]
** タイプ: 文字列 ** タイプ: 文字列
** 値: 未制約文字列 ** 値: 未制約文字列
** デフォルト値: `+"number,-active"+` ** デフォルト値: `+"number,-active"+`

View File

@ -147,7 +147,7 @@
** domyślna wartość: `+""+` ** domyślna wartość: `+""+`
* [[option_buflist.look.sort]] *buflist.look.sort* * [[option_buflist.look.sort]] *buflist.look.sort*
** opis: pass:none[oddzielona przecinkami lista pól do sortowania buforów; każde pole to zmienna hdata bufora ("var"), zmienna hdata serwera IRC ("irc_server.var") lub zmienna hdata kanału IRC ("irc_channel.var"); znak "-" użyty przed nazwą pola odwraca kolejność, znak "~" może zostać użyty do porównań niewrażliwych na wielkość liter; przykład: "-~short_name" dla sortowania odwrotnego, niewrażliwego na wielkość liter po skróconej nazwie bufora] ** opis: pass:none[comma-separated list of fields to sort buffers; each field is a hdata variable of buffer ("var"), a hdata variable of IRC server ("irc_server.var") or a hdata variable of IRC channel ("irc_channel.var"); char "-" can be used before field to reverse order, char "~" can be used to do a case insensitive comparison; example: "-~short_name" for case insensitive and reverse sort on buffer short name (note: content is evaluated, only the pointer to bar_item can be used, for example "bar_item.name")]
** typ: ciąg ** typ: ciąg
** wartości: dowolny ciąg ** wartości: dowolny ciąg
** domyślna wartość: `+"number,-active"+` ** domyślna wartość: `+"number,-active"+`

View File

@ -21,7 +21,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n" "Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -5036,7 +5036,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -24,7 +24,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-04-03 20:03+0200\n" "PO-Revision-Date: 2020-04-03 20:03+0200\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n" "Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <kde-i18n-de@kde.org>\n" "Language-Team: German <kde-i18n-de@kde.org>\n"
@ -6095,13 +6095,15 @@ msgstr ""
"benutzerdefinierte Variablen genutzt werden und dadurch eine Aktualisierung " "benutzerdefinierte Variablen genutzt werden und dadurch eine Aktualisierung "
"erforderlich wird" "erforderlich wird"
#, fuzzy
msgid "" msgid ""
"comma-separated list of fields to sort buffers; each field is a hdata " "comma-separated list of fields to sort buffers; each field is a hdata "
"variable of buffer (\"var\"), a hdata variable of IRC server (\"irc_server." "variable of buffer (\"var\"), a hdata variable of IRC server (\"irc_server."
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
"durch Kommata getrennte Liste von Feldern um die Buffer zu sortieren; jedes " "durch Kommata getrennte Liste von Feldern um die Buffer zu sortieren; jedes "
"Feld ist entweder eine hdata Variable von Buffer (\"var\"), eine hdata " "Feld ist entweder eine hdata Variable von Buffer (\"var\"), eine hdata "

View File

@ -22,7 +22,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -5236,7 +5236,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -21,8 +21,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-04-02 20:26+0200\n" "PO-Revision-Date: 2020-04-06 20:37+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n" "Language: fr\n"
@ -5962,7 +5962,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
"liste de champs séparés par des virgules pour trier les tampons ; chaque " "liste de champs séparés par des virgules pour trier les tampons ; chaque "
"champ est une variable hdata du tampon (\"var\"), une variable hdata du " "champ est une variable hdata du tampon (\"var\"), une variable hdata du "
@ -5970,7 +5971,9 @@ msgstr ""
"(\"irc_channel.var\") ; le caractère \"-\" peut être utilisé pour inverser " "(\"irc_channel.var\") ; le caractère \"-\" peut être utilisé pour inverser "
"l'ordre, le caractère \"~\" peut être utilisé pour effectuer une comparaison " "l'ordre, le caractère \"~\" peut être utilisé pour effectuer une comparaison "
"insensible à la casse ; exemple : \"-~short_name\" pour un tri inverse " "insensible à la casse ; exemple : \"-~short_name\" pour un tri inverse "
"insensible à la casse sur le nom court du tampon" "insensible à la casse sur le nom court du tampon (note : le contenu est "
"évalué, seul le pointeur vers bar_item peut être utilisé, par exemple "
"\"bar_item.name\")"
msgid "" msgid ""
"format of each line with a buffer (note: content is evaluated, see /help " "format of each line with a buffer (note: content is evaluated, see /help "

View File

@ -20,7 +20,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -4574,7 +4574,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -20,7 +20,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n" "Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -5371,7 +5371,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -20,7 +20,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n" "Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/" "Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
@ -5680,13 +5680,15 @@ msgstr ""
"れは一部のカスタム変数が書式内で使われており、明示的に再読込が必要な場合に便" "れは一部のカスタム変数が書式内で使われており、明示的に再読込が必要な場合に便"
"利です" "利です"
#, fuzzy
msgid "" msgid ""
"comma-separated list of fields to sort buffers; each field is a hdata " "comma-separated list of fields to sort buffers; each field is a hdata "
"variable of buffer (\"var\"), a hdata variable of IRC server (\"irc_server." "variable of buffer (\"var\"), a hdata variable of IRC server (\"irc_server."
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
"バッファをソートする際に考慮するフィールドのコンマ区切りリスト; 各フィールド" "バッファをソートする際に考慮するフィールドのコンマ区切りリスト; 各フィールド"
"はバッファの hdata 変数 (\"var\")、IRC サーバの hdata 変数 (\"irc_server.var" "はバッファの hdata 変数 (\"var\")、IRC サーバの hdata 変数 (\"irc_server.var"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-04-05 13:44+0200\n" "PO-Revision-Date: 2020-04-05 13:44+0200\n"
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n" "Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
"Language-Team: Polish <kde-i18n-doc@kde.org>\n" "Language-Team: Polish <kde-i18n-doc@kde.org>\n"
@ -30,8 +30,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
" || n%100>=20) ? 1 : 2);\n" "|| n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 19.12.3\n" "X-Generator: Lokalize 19.12.3\n"
msgid "any string" msgid "any string"
@ -5674,9 +5674,9 @@ msgstr ""
" - dane elementu paska (pełną listę można znaleźć w dokumentacji API dla " " - dane elementu paska (pełną listę można znaleźć w dokumentacji API dla "
"hdata \"bar_item\"), na przykład:\n" "hdata \"bar_item\"), na przykład:\n"
" - ${bar_item.name}\n" " - ${bar_item.name}\n"
" - dane okna, w którym element paska jest wyświetlany (okna nie ma w głównych " " - dane okna, w którym element paska jest wyświetlany (okna nie ma w "
"paskach, zobacz hdata \"window\" w dokumentacji API dla pełnej listy " "głównych paskach, zobacz hdata \"window\" w dokumentacji API dla pełnej "
"zmiennych), na przykład:\n" "listy zmiennych), na przykład:\n"
" - ${window.number}\n" " - ${window.number}\n"
" - ${window.buffer.full_name}\n" " - ${window.buffer.full_name}\n"
" - dane buforu (zobacz hdata \"buffer\" w dokumentacji API dla pełnej listy " " - dane buforu (zobacz hdata \"buffer\" w dokumentacji API dla pełnej listy "
@ -5815,13 +5815,15 @@ msgstr ""
"ustawione są jakieś zmienne używane do formatowania wymagające odpowiedniego " "ustawione są jakieś zmienne używane do formatowania wymagające odpowiedniego "
"odświeżania" "odświeżania"
#, fuzzy
msgid "" msgid ""
"comma-separated list of fields to sort buffers; each field is a hdata " "comma-separated list of fields to sort buffers; each field is a hdata "
"variable of buffer (\"var\"), a hdata variable of IRC server (\"irc_server." "variable of buffer (\"var\"), a hdata variable of IRC server (\"irc_server."
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
"oddzielona przecinkami lista pól do sortowania buforów; każde pole to " "oddzielona przecinkami lista pól do sortowania buforów; każde pole to "
"zmienna hdata bufora (\"var\"), zmienna hdata serwera IRC (\"irc_server.var" "zmienna hdata bufora (\"var\"), zmienna hdata serwera IRC (\"irc_server.var"
@ -6915,12 +6917,11 @@ msgid ""
"evaluation of string and then much faster; formats can be switched with key " "evaluation of string and then much faster; formats can be switched with key "
"ctrl+X" "ctrl+X"
msgstr "" msgstr ""
"pierwszy format dla każdej linii, użyty kiedy opcja fset.look.format_number" "pierwszy format dla każdej linii, użyty kiedy opcja fset.look.format_number "
" ma " "ma wartość 1 (uwaga: zawartość jest przetwarzana, zobacz /help fset); pusty "
"wartość 1 (uwaga: zawartość jest przetwarzana, zobacz /help fset); pusty ciąg " "ciąg używa domyślnego formatu (\"${marked} ${name} ${type} ${value2}\"), "
"używa domyślnego formatu (\"${marked} ${name} ${type} ${value2}\"), który " "który nie przetwarza ciągów, przez co jest szybszy; formaty można zmienić za "
"nie przetwarza ciągów, przez co jest szybszy; formaty można zmienić za pomocą " "pomocą ctrl-X"
"ctrl-X"
msgid "" msgid ""
"second format of each line, used when option fset.look.format_number is set " "second format of each line, used when option fset.look.format_number is set "
@ -6930,11 +6931,10 @@ msgid ""
"ctrl+X" "ctrl+X"
msgstr "" msgstr ""
"drugi format dla każdej linii, użyty kiedy opcja fset.look.format_number ma " "drugi format dla każdej linii, użyty kiedy opcja fset.look.format_number ma "
"wartość 2 (uwaga: zawartość jest przetwarzana, zobacz /help fset); pusty ciąg" "wartość 2 (uwaga: zawartość jest przetwarzana, zobacz /help fset); pusty "
" używa " "ciąg używa domyślnego formatu (\"${marked} ${name} ${type} ${value2}\"), "
"domyślnego formatu (\"${marked} ${name} ${type} ${value2}\"), który nie " "który nie przetwarza ciągów, przez co jest szybszy; formaty można zmienić za "
"przetwarza ciągów, przez co jest szybszy; formaty można zmienić za pomocą " "pomocą ctrl-X"
"ctrl-X"
msgid "color for default value" msgid "color for default value"
msgstr "kolor dla wartości domyślnej" msgstr "kolor dla wartości domyślnej"
@ -9144,11 +9144,10 @@ msgid ""
"evaluated with ${irc_server.xxx} and ${server} is replaced by the server " "evaluated with ${irc_server.xxx} and ${server} is replaced by the server "
"name)" "name)"
msgstr "" msgstr ""
"hasło do klucza prywatnego certyfikatu SSL; tylko dla gnutls w wersji >=" "hasło do klucza prywatnego certyfikatu SSL; tylko dla gnutls w wersji >= "
" 3.1.0 " "3.1.0 (uwaga: zawartość jest przetwarzana zobacz /help eval; opcje serwera "
"(uwaga: zawartość jest przetwarzana zobacz /help eval; opcje serwera są" "są przetwarzane w postaci ${irc_server.xxx}, ${server} jest zastępowany "
" przetwarzane " "nazwą serwera)"
"w postaci ${irc_server.xxx}, ${server} jest zastępowany nazwą serwera)"
msgid "" msgid ""
"string with priorities for gnutls (for syntax, see documentation of function " "string with priorities for gnutls (for syntax, see documentation of function "
@ -11528,9 +11527,8 @@ msgid ""
"1 if automatic connection to servers is enabled, 0 if it has been disabled " "1 if automatic connection to servers is enabled, 0 if it has been disabled "
"by the user (option \"-a\" or \"--no-connect\")" "by the user (option \"-a\" or \"--no-connect\")"
msgstr "" msgstr ""
"1 jeśli automatycznie łączenie z serwerami jest włączone, 0 jeśli zostało" "1 jeśli automatycznie łączenie z serwerami jest włączone, 0 jeśli zostało "
" wyłączone " "wyłączone przez użytkownika (opcja \"-a\" lub \"--no-connect\")"
"przez użytkownika (opcja \"-a\" lub \"--no-connect\")"
msgid "terminal charset" msgid "terminal charset"
msgstr "kodowanie terminala" msgstr "kodowanie terminala"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n" "Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
"Language-Team: Portuguese <>\n" "Language-Team: Portuguese <>\n"
@ -5645,7 +5645,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -21,7 +21,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2019-11-03 08:38+0100\n" "PO-Revision-Date: 2019-11-03 08:38+0100\n"
"Last-Translator: Eduardo Elias <camponez@gmail.com>\n" "Last-Translator: Eduardo Elias <camponez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -5187,7 +5187,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -21,7 +21,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2020-03-08 14:22+0100\n" "PO-Revision-Date: 2020-03-08 14:22+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n" "Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -4611,7 +4611,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -20,7 +20,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2019-11-03 08:38+0100\n" "PO-Revision-Date: 2019-11-03 08:38+0100\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n" "Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -4181,7 +4181,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -21,7 +21,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WeeChat\n" "Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2020-04-02 08:04+0200\n" "POT-Creation-Date: 2020-04-06 20:37+0200\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -4165,7 +4165,8 @@ msgid ""
"var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" " "var\") or a hdata variable of IRC channel (\"irc_channel.var\"); char \"-\" "
"can be used before field to reverse order, char \"~\" can be used to do a " "can be used before field to reverse order, char \"~\" can be used to do a "
"case insensitive comparison; example: \"-~short_name\" for case insensitive " "case insensitive comparison; example: \"-~short_name\" for case insensitive "
"and reverse sort on buffer short name" "and reverse sort on buffer short name (note: content is evaluated, only the "
"pointer to bar_item can be used, for example \"bar_item.name\")"
msgstr "" msgstr ""
msgid "" msgid ""

View File

@ -29,13 +29,15 @@
#include "buflist-config.h" #include "buflist-config.h"
struct t_gui_bar_item *buflist_bar_item_buflist[BUFLIST_BAR_NUM_ITEMS]; struct t_gui_bar_item *buflist_bar_item_buflist[BUFLIST_BAR_NUM_ITEMS] =
{ NULL, NULL, NULL };
struct t_hashtable *buflist_hashtable_pointers = NULL; struct t_hashtable *buflist_hashtable_pointers = NULL;
struct t_hashtable *buflist_hashtable_extra_vars = NULL; struct t_hashtable *buflist_hashtable_extra_vars = NULL;
struct t_hashtable *buflist_hashtable_options_conditions = NULL; struct t_hashtable *buflist_hashtable_options_conditions = NULL;
struct t_arraylist *buflist_list_buffers[BUFLIST_BAR_NUM_ITEMS]; struct t_arraylist *buflist_list_buffers[BUFLIST_BAR_NUM_ITEMS] =
{ NULL, NULL, NULL };
int old_line_number_current_buffer[BUFLIST_BAR_NUM_ITEMS]; int old_line_number_current_buffer[BUFLIST_BAR_NUM_ITEMS] = { -1, -1, -1 };
/* /*
@ -81,6 +83,24 @@ buflist_bar_item_get_index (const char *item_name)
return -1; return -1;
} }
/*
* Returns the bar item index with a bar item pointer, -1 if not found.
*/
int
buflist_bar_item_get_index_with_pointer (struct t_gui_bar_item *item)
{
int i;
for (i = 0; i < BUFLIST_BAR_NUM_ITEMS; i++)
{
if (buflist_bar_item_buflist[i] == item)
return i;
}
return -1;
}
/* /*
* Updates buflist bar item if buflist is enabled (or if force argument is 1). * Updates buflist bar item if buflist is enabled (or if force argument is 1).
*/ */
@ -332,7 +352,7 @@ buflist_bar_item_buflist_cb (const void *pointer, void *data,
16, 0, 1, 16, 0, 1,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
buffers = buflist_sort_buffers (); buffers = buflist_sort_buffers (item);
num_buffers = weechat_arraylist_size (buffers); num_buffers = weechat_arraylist_size (buffers);
for (i = 0; i < num_buffers; i++) for (i = 0; i < num_buffers; i++)

View File

@ -24,10 +24,14 @@
#define BUFLIST_BAR_NUM_ITEMS 3 #define BUFLIST_BAR_NUM_ITEMS 3
struct t_gui_bar_item;
extern struct t_gui_bar_item *buflist_bar_item_buflist[BUFLIST_BAR_NUM_ITEMS];
extern struct t_arraylist *buflist_list_buffers[BUFLIST_BAR_NUM_ITEMS]; extern struct t_arraylist *buflist_list_buffers[BUFLIST_BAR_NUM_ITEMS];
extern const char *buflist_bar_item_get_name (int index); extern const char *buflist_bar_item_get_name (int index);
extern int buflist_bar_item_get_index (const char *item_name); extern int buflist_bar_item_get_index (const char *item_name);
extern int buflist_bar_item_get_index_with_pointer (struct t_gui_bar_item *item);
extern void buflist_bar_item_update (int force); extern void buflist_bar_item_update (int force);
extern int buflist_bar_item_init (); extern int buflist_bar_item_init ();
extern void buflist_bar_item_end (); extern void buflist_bar_item_end ();

View File

@ -61,8 +61,8 @@ struct t_config_option *buflist_config_format_number;
struct t_hook **buflist_config_signals_refresh = NULL; struct t_hook **buflist_config_signals_refresh = NULL;
int buflist_config_num_signals_refresh = 0; int buflist_config_num_signals_refresh = 0;
char **buflist_config_sort_fields = NULL; char **buflist_config_sort_fields[BUFLIST_BAR_NUM_ITEMS] = { NULL, NULL, NULL };
int buflist_config_sort_fields_count = 0; int buflist_config_sort_fields_count[BUFLIST_BAR_NUM_ITEMS] = { 0, 0, 0 };
char *buflist_config_format_buffer_eval = NULL; char *buflist_config_format_buffer_eval = NULL;
char *buflist_config_format_buffer_current_eval = NULL; char *buflist_config_format_buffer_current_eval = NULL;
char *buflist_config_format_hotlist_eval = NULL; char *buflist_config_format_hotlist_eval = NULL;
@ -246,23 +246,58 @@ void
buflist_config_change_sort (const void *pointer, void *data, buflist_config_change_sort (const void *pointer, void *data,
struct t_config_option *option) struct t_config_option *option)
{ {
int i;
struct t_hashtable *hashtable_pointers;
char *sort;
/* make C compiler happy */ /* make C compiler happy */
(void) pointer; (void) pointer;
(void) data; (void) data;
(void) option; (void) option;
if (buflist_config_sort_fields) for (i = 0; i < BUFLIST_BAR_NUM_ITEMS; i++)
weechat_string_free_split (buflist_config_sort_fields); {
if (buflist_config_sort_fields[i])
{
weechat_string_free_split (buflist_config_sort_fields[i]);
buflist_config_sort_fields[i] = NULL;
buflist_config_sort_fields_count[i] = 0;
}
}
buflist_config_sort_fields = weechat_string_split ( hashtable_pointers = weechat_hashtable_new (
weechat_config_string (buflist_config_look_sort), 32,
",", WEECHAT_HASHTABLE_STRING,
WEECHAT_HASHTABLE_POINTER,
NULL, NULL,
WEECHAT_STRING_SPLIT_STRIP_LEFT NULL);
| WEECHAT_STRING_SPLIT_STRIP_RIGHT if (!hashtable_pointers)
| WEECHAT_STRING_SPLIT_COLLAPSE_SEPS, return;
0,
&buflist_config_sort_fields_count); for (i = 0; i < BUFLIST_BAR_NUM_ITEMS; i++)
{
weechat_hashtable_set (hashtable_pointers,
"bar_item", buflist_bar_item_buflist[i]);
sort = weechat_string_eval_expression (
weechat_config_string (buflist_config_look_sort),
hashtable_pointers,
NULL,
NULL);
buflist_config_sort_fields[i] = weechat_string_split (
(sort) ? sort : "",
",",
NULL,
WEECHAT_STRING_SPLIT_STRIP_LEFT
| WEECHAT_STRING_SPLIT_STRIP_RIGHT
| WEECHAT_STRING_SPLIT_COLLAPSE_SEPS,
0,
&buflist_config_sort_fields_count[i]);
if (sort)
free (sort);
}
buflist_bar_item_update (0); buflist_bar_item_update (0);
} }
@ -522,7 +557,9 @@ buflist_config_init ()
"char \"-\" can be used before field to reverse order, " "char \"-\" can be used before field to reverse order, "
"char \"~\" can be used to do a case insensitive comparison; " "char \"~\" can be used to do a case insensitive comparison; "
"example: \"-~short_name\" for case insensitive and reverse " "example: \"-~short_name\" for case insensitive and reverse "
"sort on buffer short name"), "sort on buffer short name "
"(note: content is evaluated, only the pointer to bar_item can be "
"used, for example \"bar_item.name\")"),
NULL, 0, 0, "number,-active", NULL, 0, NULL, 0, 0, "number,-active", NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL,
&buflist_config_change_sort, NULL, NULL, &buflist_config_change_sort, NULL, NULL,
@ -726,16 +763,21 @@ buflist_config_write ()
void void
buflist_config_free () buflist_config_free ()
{ {
int i;
weechat_config_free (buflist_config_file); weechat_config_free (buflist_config_file);
if (buflist_config_signals_refresh) if (buflist_config_signals_refresh)
buflist_config_free_signals_refresh (); buflist_config_free_signals_refresh ();
if (buflist_config_sort_fields) for (i = 0; i < BUFLIST_BAR_NUM_ITEMS; i++)
{ {
weechat_string_free_split (buflist_config_sort_fields); if (buflist_config_sort_fields[i])
buflist_config_sort_fields = NULL; {
buflist_config_sort_fields_count = 0; weechat_string_free_split (buflist_config_sort_fields[i]);
buflist_config_sort_fields[i] = NULL;
buflist_config_sort_fields_count[i] = 0;
}
} }
if (buflist_config_format_buffer_eval) if (buflist_config_format_buffer_eval)

View File

@ -20,6 +20,8 @@
#ifndef WEECHAT_PLUGIN_BUFLIST_CONFIG_H #ifndef WEECHAT_PLUGIN_BUFLIST_CONFIG_H
#define WEECHAT_PLUGIN_BUFLIST_CONFIG_H #define WEECHAT_PLUGIN_BUFLIST_CONFIG_H
#include "buflist-bar-item.h"
#define BUFLIST_CONFIG_NAME "buflist" #define BUFLIST_CONFIG_NAME "buflist"
#define BUFLIST_CONFIG_SIGNALS_REFRESH \ #define BUFLIST_CONFIG_SIGNALS_REFRESH \
@ -56,12 +58,14 @@ extern struct t_config_option *buflist_config_format_name;
extern struct t_config_option *buflist_config_format_nick_prefix; extern struct t_config_option *buflist_config_format_nick_prefix;
extern struct t_config_option *buflist_config_format_number; extern struct t_config_option *buflist_config_format_number;
extern char **buflist_config_sort_fields; extern char **buflist_config_sort_fields[BUFLIST_BAR_NUM_ITEMS];
extern int buflist_config_sort_fields_count; extern int buflist_config_sort_fields_count[BUFLIST_BAR_NUM_ITEMS];
extern char *buflist_config_format_buffer_eval; extern char *buflist_config_format_buffer_eval;
extern char *buflist_config_format_buffer_current_eval; extern char *buflist_config_format_buffer_current_eval;
extern char *buflist_config_format_hotlist_eval; extern char *buflist_config_format_hotlist_eval;
extern void buflist_config_change_sort (const void *pointer, void *data,
struct t_config_option *option);
extern int buflist_config_init (); extern int buflist_config_init ();
extern int buflist_config_read (); extern int buflist_config_read ();
extern int buflist_config_write (); extern int buflist_config_write ();

View File

@ -221,25 +221,30 @@ int
buflist_compare_buffers (void *data, struct t_arraylist *arraylist, buflist_compare_buffers (void *data, struct t_arraylist *arraylist,
void *pointer1, void *pointer2) void *pointer1, void *pointer2)
{ {
int i, reverse, case_sensitive, rc; int i, item_number, reverse, case_sensitive, rc;
const char *ptr_field; const char *ptr_field;
struct t_gui_hotlist *ptr_hotlist1, *ptr_hotlist2; struct t_gui_hotlist *ptr_hotlist1, *ptr_hotlist2;
void *ptr_server1, *ptr_server2, *ptr_channel1, *ptr_channel2; void *ptr_server1, *ptr_server2, *ptr_channel1, *ptr_channel2;
struct t_hdata *hdata_irc_server, *hdata_irc_channel; struct t_hdata *hdata_irc_server, *hdata_irc_channel;
struct t_gui_bar_item *ptr_item;
/* make C compiler happy */ /* make C compiler happy */
(void) data;
(void) arraylist; (void) arraylist;
ptr_item = (struct t_gui_bar_item *)data;
item_number = buflist_bar_item_get_index_with_pointer (ptr_item);
if (item_number < 0)
item_number= 0;
hdata_irc_server = weechat_hdata_get ("irc_server"); hdata_irc_server = weechat_hdata_get ("irc_server");
hdata_irc_channel = weechat_hdata_get ("irc_channel"); hdata_irc_channel = weechat_hdata_get ("irc_channel");
for (i = 0; i < buflist_config_sort_fields_count; i++) for (i = 0; i < buflist_config_sort_fields_count[item_number]; i++)
{ {
rc = 0; rc = 0;
reverse = 1; reverse = 1;
case_sensitive = 1; case_sensitive = 1;
ptr_field = buflist_config_sort_fields[i]; ptr_field = buflist_config_sort_fields[item_number][i];
while ((ptr_field[0] == '-') || (ptr_field[0] == '~')) while ((ptr_field[0] == '-') || (ptr_field[0] == '~'))
{ {
if (ptr_field[0] == '-') if (ptr_field[0] == '-')
@ -337,13 +342,13 @@ buflist_compare_buffers (void *data, struct t_arraylist *arraylist,
*/ */
struct t_arraylist * struct t_arraylist *
buflist_sort_buffers () buflist_sort_buffers (struct t_gui_bar_item *item)
{ {
struct t_arraylist *buffers; struct t_arraylist *buffers;
struct t_gui_buffer *ptr_buffer; struct t_gui_buffer *ptr_buffer;
buffers = weechat_arraylist_new (128, 1, 1, buffers = weechat_arraylist_new (128, 1, 1,
&buflist_compare_buffers, NULL, &buflist_compare_buffers, item,
NULL, NULL); NULL, NULL);
ptr_buffer = weechat_hdata_get_list (buflist_hdata_buffer, "gui_buffers"); ptr_buffer = weechat_hdata_get_list (buflist_hdata_buffer, "gui_buffers");
@ -454,6 +459,8 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[])
if (!buflist_bar_item_init ()) if (!buflist_bar_item_init ())
return WEECHAT_RC_ERROR; return WEECHAT_RC_ERROR;
buflist_config_change_sort (NULL, NULL, NULL);
buflist_command_init (); buflist_command_init ();
if (weechat_config_boolean (buflist_config_look_enabled)) if (weechat_config_boolean (buflist_config_look_enabled))

View File

@ -25,6 +25,8 @@
#define BUFLIST_BAR_NAME "buflist" #define BUFLIST_BAR_NAME "buflist"
struct t_gui_bar_item;
extern struct t_weechat_plugin *weechat_buflist_plugin; extern struct t_weechat_plugin *weechat_buflist_plugin;
extern struct t_hdata *buflist_hdata_window; extern struct t_hdata *buflist_hdata_window;
@ -38,6 +40,6 @@ extern void buflist_add_bar ();
extern void buflist_buffer_get_irc_pointers (struct t_gui_buffer *buffer, extern void buflist_buffer_get_irc_pointers (struct t_gui_buffer *buffer,
void **irc_server, void **irc_server,
void **irc_channel); void **irc_channel);
extern struct t_arraylist *buflist_sort_buffers (); extern struct t_arraylist *buflist_sort_buffers (struct t_gui_bar_item *item);
#endif /* WEECHAT_PLUGIN_BUFLIST_H */ #endif /* WEECHAT_PLUGIN_BUFLIST_H */