summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.asciidoc1
-rw-r--r--doc/de/autogen/user/weechat_commands.asciidoc72
-rw-r--r--doc/de/weechat_user.de.asciidoc6
-rw-r--r--doc/en/autogen/user/weechat_commands.asciidoc6
-rw-r--r--doc/en/weechat_user.en.asciidoc2
-rw-r--r--doc/fr/autogen/user/weechat_commands.asciidoc2
-rw-r--r--doc/fr/weechat_user.fr.asciidoc3
-rw-r--r--doc/it/autogen/user/weechat_commands.asciidoc14
-rw-r--r--doc/it/weechat_user.it.asciidoc3
-rw-r--r--doc/ja/autogen/user/weechat_commands.asciidoc70
-rw-r--r--doc/ja/weechat_user.ja.asciidoc5
-rw-r--r--doc/pl/autogen/user/weechat_commands.asciidoc80
-rw-r--r--doc/pl/weechat_user.pl.asciidoc5
-rw-r--r--po/cs.po24
-rw-r--r--po/de.po27
-rw-r--r--po/es.po24
-rw-r--r--po/fr.po41
-rw-r--r--po/hu.po24
-rw-r--r--po/it.po25
-rw-r--r--po/ja.po49
-rw-r--r--po/pl.po27
-rw-r--r--po/pt_BR.po25
-rw-r--r--po/ru.po24
-rw-r--r--po/tr.po24
-rw-r--r--po/weechat.pot24
-rw-r--r--src/core/wee-command.c7
-rw-r--r--src/gui/curses/gui-curses-bar-window.c19
-rw-r--r--src/gui/curses/gui-curses-window.c8
-rw-r--r--src/gui/gui-bar-item.c61
-rw-r--r--src/gui/gui-bar-window.c109
-rw-r--r--src/gui/gui-bar.c26
-rw-r--r--src/gui/gui-bar.h4
32 files changed, 503 insertions, 338 deletions
diff --git a/ChangeLog.asciidoc b/ChangeLog.asciidoc
index fa8c0d67e..30b80da93 100644
--- a/ChangeLog.asciidoc
+++ b/ChangeLog.asciidoc
@@ -17,6 +17,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
=== New features
+* core: check bar conditions in root bars and on each update of a bar item
* core: fully evaluate commands bound to keys in cursor and mouse contexts
* core: add option weechat.completion.command_inline (task #12491)
* core: add bar item "mouse_status", new options weechat.look.item_mouse_status
diff --git a/doc/de/autogen/user/weechat_commands.asciidoc b/doc/de/autogen/user/weechat_commands.asciidoc
index 612e671cf..5edd49d32 100644
--- a/doc/de/autogen/user/weechat_commands.asciidoc
+++ b/doc/de/autogen/user/weechat_commands.asciidoc
@@ -13,50 +13,50 @@ message: Abwesenheitsnachricht (ohne Angabe einer Nachricht wird der Abwesenheit
----
/bar list|listfull|listitems
- add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...]
+ add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <name>|-all
set <name> <option> <value>
hide|show|toggle <name>
scroll <name> <window> <scroll_value>
- list: zeigt alle Infobars an
- listfull: zeigt eine detaillierte Liste aller Infobars an (ausführlich)
- listitems: zeigt alle Items an, die in den Infobars genutzt werden
- add: füge eine neue Infobar hinzu
- name: Name der Infobar (muss einmalig sein)
- type: root: außerhalb eines Fensters,
- window: innerhalb eines Fensters, mit optionalen Merkmalen (siehe unten)
- condition: Merkmal(e) für eine Infobar (nur nutzbar mit Bars vom Typ "window"):
- active: in einem aktiven Fenster
- inactive: in einem inaktiven Fenster
- nicklist: in Fenstern mit einer Benutzerliste
- weitere Merkmale: siehe /help weechat.bar.xxx.conditions und /help eval
- ohne Angabe von Merkmalen wird die Infobar immer angezeigt
- position: bottom (unten), top (oben), left (links) oder right (rechts)
- size: Größe der Infobar (in Zeichen)
- separator: 1 um eine Trennlinien zu zeichnen, bei 0 oder ohne eine Angabe, wird keine Trennlinien gezeichnet
- item1,...: Items die in der Infobar genutzt werden sollen (Items können durch Kommata oder Leerzeichen getrennt werden ("+" (verbindet Items))
- default: erstellt standardisierte Infobars
- del: entfernt eine Infobar (alle Infobars können mit dem Argument "-all" entfernt werden).
- set: setzt einen Wert für Infobar
- option: Option die verändert werden soll (für eine Liste aller möglichen Optionen, bitte folgenden Befehl nutzen: /set weechat.bar.<barname>.*)
- value: neuer Wert für Option
- hide: Infobar wird ausgeblendet
- show: zeigt eine ausgeblendete Infobar an
- toggle: zeigt/versteckt eine Infobar
- scroll: scrollt Infobar hoch/runter
- window: Nummer des Fensters (nutze '*' für aktuelles Fenster oder für die Root-Bars)
- scroll_value: Werte für Scroll-Funktion: 'x' oder 'y' (optional), gefolgt von '+', '-', 'b' (Beginn) oder 'e' (Ende), Wert (für +/-), und optional % (zum scrollen der Breite/Höhe in %, ansonsten wird dieser Wert als Anzahl der Zeichen interpretiert um die gescrollt werden soll)
-
-Beispiele:
- erstellt eine Infobar mit den Items: time, buffer number + name, und Vervollständigung:
+ list: list all bars
+ listfull: list all bars (verbose)
+ listitems: list all bar items
+ add: add a new bar
+ name: name of bar (must be unique)
+ type: root: outside windows,
+ window: inside windows, with optional conditions (see below)
+ conditions: the conditions to display the bar:
+ active: on active window
+ inactive: on inactive windows
+ nicklist: on windows with nicklist
+ other condition: see /help weechat.bar.xxx.conditions and /help eval
+ without conditions, the bar is always displayed
+ position: bottom, top, left or right
+ size: size of bar (in chars)
+ separator: 1 for using separator (line), 0 or nothing means no separator
+ item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
+ default: create a default bar (all default bars if no bar name is given)
+ del: delete a bar (or all bars with -all)
+ set: set a value for a bar property
+ option: option to change (for options list, look at /set weechat.bar.<barname>.*)
+ value: new value for option
+ hide: hide a bar
+ show: show an hidden bar
+ toggle: hide/show a bar
+ scroll: scroll bar
+ window: window number (use '*' for current window or for root bars)
+ scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
+
+Examples:
+ create a bar with time, buffer number + name, and completion:
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
- versteckt die Infobar (meinebar):
- /bar hide meinebar
- scrollt die Benutzerliste im aktuellen Buffer um 10 Zeilen nach unten:
+ hide a bar:
+ /bar hide mybar
+ scroll nicklist 10 lines down on current buffer:
/bar scroll nicklist * y+10
- scrollt zum Ende der Nicklist im aktuellen Buffer:
+ scroll to end of nicklist on current buffer:
/bar scroll nicklist * ye
----
diff --git a/doc/de/weechat_user.de.asciidoc b/doc/de/weechat_user.de.asciidoc
index 61ba38973..cdf88324a 100644
--- a/doc/de/weechat_user.de.asciidoc
+++ b/doc/de/weechat_user.de.asciidoc
@@ -861,9 +861,9 @@ Einige Beispiele, wie die Bar 'nicklist' dargestellt werden kann:
[[bar_conditions]]
==== Bedingungen
-Die Option 'conditions' ist eine Zeichenkette die direkten Einfluss darauf
-nimmt, ob die Bar in einem Fenster dargestellt wird oder nicht (diese Option
-kann nur für Bars vom Typ 'window' genutzt werden).
+// TRANSLATION MISSING
+The option 'conditions' is a string evaluated to know if the bar is displayed
+or not.
Folgende Zeichenketten sind möglich:
diff --git a/doc/en/autogen/user/weechat_commands.asciidoc b/doc/en/autogen/user/weechat_commands.asciidoc
index 0cab07924..70ef1878a 100644
--- a/doc/en/autogen/user/weechat_commands.asciidoc
+++ b/doc/en/autogen/user/weechat_commands.asciidoc
@@ -13,7 +13,7 @@ message: message for away (if no message is given, away status is removed)
----
/bar list|listfull|listitems
- add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...]
+ add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <name>|-all
set <name> <option> <value>
@@ -27,12 +27,12 @@ message: message for away (if no message is given, away status is removed)
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
- condition: condition(s) for displaying bar (only for type "window"):
+ conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
- without condition, the bar is always displayed
+ without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator
diff --git a/doc/en/weechat_user.en.asciidoc b/doc/en/weechat_user.en.asciidoc
index ee454ea92..1f9ae5099 100644
--- a/doc/en/weechat_user.en.asciidoc
+++ b/doc/en/weechat_user.en.asciidoc
@@ -855,7 +855,7 @@ Some examples of filling for bar 'nicklist':
==== Conditions
The option 'conditions' is a string evaluated to know if the bar is displayed
-or not in the window (it is used only for bars with type 'window').
+or not.
The string can be:
diff --git a/doc/fr/autogen/user/weechat_commands.asciidoc b/doc/fr/autogen/user/weechat_commands.asciidoc
index d43f2443a..e254338bb 100644
--- a/doc/fr/autogen/user/weechat_commands.asciidoc
+++ b/doc/fr/autogen/user/weechat_commands.asciidoc
@@ -27,7 +27,7 @@ message : message pour l'absence (si pas de message donné, le statut d'absence
nom : nom de la barre (doit être unique)
type : root : en dehors des fenêtres
window : dans les fenêtres, avec condition(s) optionnelle(s) (voir ci-dessous)
- condition : condition(s) pour afficher cette barre (seulement pour le type "window") :
+ conditions : les conditions pour afficher la barre :
active : sur la fenêtre active
inactive : sur les fenêtres inactives
nicklist : sur les fenêtres avec liste de pseudos
diff --git a/doc/fr/weechat_user.fr.asciidoc b/doc/fr/weechat_user.fr.asciidoc
index 174dbcfae..c047d5e13 100644
--- a/doc/fr/weechat_user.fr.asciidoc
+++ b/doc/fr/weechat_user.fr.asciidoc
@@ -877,8 +877,7 @@ Quelques exemples de remplissage pour la barre 'nicklist' :
==== Conditions
L'option 'conditions' est une chaîne évaluée pour savoir si la barre doit être
-affichée ou non dans la fenêtre (elle est utilisée seulement pour les barres
-avec type 'window').
+affichée ou non.
La chaîne peut être :
diff --git a/doc/it/autogen/user/weechat_commands.asciidoc b/doc/it/autogen/user/weechat_commands.asciidoc
index 0fd27d73c..72050cfcb 100644
--- a/doc/it/autogen/user/weechat_commands.asciidoc
+++ b/doc/it/autogen/user/weechat_commands.asciidoc
@@ -13,12 +13,12 @@ messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene r
----
/bar list|listfull|listitems
- add <nome> <type>[,<condizione>] <posizione> <dimensione> <separatore> <item1>[,<item2>...]
+ add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
- del <nome>|-all
- set <nome> <opzione> <valore>
- hide|show|toggle <nome>
- scroll <nome> <finestra> <scroll_value>
+ del <name>|-all
+ set <name> <option> <value>
+ hide|show|toggle <name>
+ scroll <name> <window> <scroll_value>
list: list all bars
listfull: list all bars (verbose)
@@ -27,12 +27,12 @@ messaggio: messaggio di assenza (se non specificato, lo stato di assenza viene r
name: name of bar (must be unique)
type: root: outside windows,
window: inside windows, with optional conditions (see below)
- condition: condition(s) for displaying bar (only for type "window"):
+ conditions: the conditions to display the bar:
active: on active window
inactive: on inactive windows
nicklist: on windows with nicklist
other condition: see /help weechat.bar.xxx.conditions and /help eval
- without condition, the bar is always displayed
+ without conditions, the bar is always displayed
position: bottom, top, left or right
size: size of bar (in chars)
separator: 1 for using separator (line), 0 or nothing means no separator
diff --git a/doc/it/weechat_user.it.asciidoc b/doc/it/weechat_user.it.asciidoc
index 90536044b..c9f126ed0 100644
--- a/doc/it/weechat_user.it.asciidoc
+++ b/doc/it/weechat_user.it.asciidoc
@@ -895,8 +895,9 @@ Some examples of filling for bar 'nicklist':
[[bar_conditions]]
==== Conditions
+// TRANSLATION MISSING
The option 'conditions' is a string evaluated to know if the bar is displayed
-or not in the window (it is used only for bars with type 'window').
+or not.
The string can be:
diff --git a/doc/ja/autogen/user/weechat_commands.asciidoc b/doc/ja/autogen/user/weechat_commands.asciidoc
index 361d59e42..3ff776b4c 100644
--- a/doc/ja/autogen/user/weechat_commands.asciidoc
+++ b/doc/ja/autogen/user/weechat_commands.asciidoc
@@ -13,50 +13,50 @@ message: 離席メッセージ (メッセージが無い場合は、離席状態
----
/bar list|listfull|listitems
- add <name> <type>[,<condition>] <position> <size> <separator> <item1>[,<item2>...]
+ add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
del <name>|-all
set <name> <option> <value>
hide|show|toggle <name>
scroll <name> <window> <scroll_value>
- list: 全てのバーをリストアップ
- listfull: 全てのバーをリストアップ (詳細)
- listitems: 全てのバーアイテムをリストアップ
- add: 新しいバーを追加
- name: バーの名称 (ユニークな)
- type: root: 外側のウィンドウ、
- window: 内側のウィンドウ、任意の状態を取れる (以下を参照)
- condition: バーの表示状態 (タイプが "window" のバー以外は無効):
- active: アクティブウィンドウに表示
- inactive: 非アクティブウィンドウに表示
- nicklist: ニックネームリストを持つウィンドウに表示
- その他の状態: /help weechat.bar.xxx.conditions と /help eval を参照してください
- 表示状態の指定が無ければ、バーは常に表示されます。
- position: bottom、top、left、right
- size: バーのサイズ (文字数で指定)
- separator: 1 はセパレータ (線) を使用、0 または指定無しはセパレータ無し
- item1,...: バーのアイテム (アイテムはコンマ (アイテム間にスペース) または "+" (アイテム間にスペース無し) で区切ります)
- default: デフォルトバーを作成 (バーの名前が無ければ全てのデフォルトバーが作成されます)
- del: バーを削除 (-all を付ければ全てのバーを削除)
- set: バー属性に値を設定
- option: 変更するオプション (オプション一覧は /set weechat.bar.<barname>.* を参照)
- value: オプションの新しい値
- hide: バーを隠す
- show: 隠されたバーを表示
- toggle: バーの非表示/表示を切り替え
- scroll: バーをスクロール
- window: ウィンドウ番号 (現在のウィンドウかルートバーを指定するには '*' を使う)
- scroll_value: スクロールする量: 'x' または 'y' (任意)の後に、'+' か '-' か 'b' (最初) か 'e' (最後)の後に、値 (+/- を付けて)、任意で % (スクロールする幅/高さの割合、% が無ければ値は文字数と解釈されます)
-
-例:
- 時間、バー番号 + 名前、補完候補からなるバーを作成:
+ list: list all bars
+ listfull: list all bars (verbose)
+ listitems: list all bar items
+ add: add a new bar
+ name: name of bar (must be unique)
+ type: root: outside windows,
+ window: inside windows, with optional conditions (see below)
+ conditions: the conditions to display the bar:
+ active: on active window
+ inactive: on inactive windows
+ nicklist: on windows with nicklist
+ other condition: see /help weechat.bar.xxx.conditions and /help eval
+ without conditions, the bar is always displayed
+ position: bottom, top, left or right
+ size: size of bar (in chars)
+ separator: 1 for using separator (line), 0 or nothing means no separator
+ item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
+ default: create a default bar (all default bars if no bar name is given)
+ del: delete a bar (or all bars with -all)
+ set: set a value for a bar property
+ option: option to change (for options list, look at /set weechat.bar.<barname>.*)
+ value: new value for option
+ hide: hide a bar
+ show: show an hidden bar
+ toggle: hide/show a bar
+ scroll: scroll bar
+ window: window number (use '*' for current window or for root bars)
+ scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
+
+Examples:
+ create a bar with time, buffer number + name, and completion:
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
- バーを隠す:
+ hide a bar:
/bar hide mybar
- 現在のバッファに対応したニックネームリストを 10 行分、下方向にスクロール:
+ scroll nicklist 10 lines down on current buffer:
/bar scroll nicklist * y+10
- 現在のバッファに対応したニックネームリストを最後までスクロール:
+ scroll to end of nicklist on current buffer:
/bar scroll nicklist * ye
----
diff --git a/doc/ja/weechat_user.ja.asciidoc b/doc/ja/weechat_user.ja.asciidoc
index 41e9738c9..c38f53ac4 100644
--- a/doc/ja/weechat_user.ja.asciidoc
+++ b/doc/ja/weechat_user.ja.asciidoc
@@ -853,8 +853,9 @@ WeeChat を起動したターミナルの例:
[[bar_conditions]]
==== 状態
-'conditions' オプションはバーをウィンドウ内に表示するか否かを評価する文字列です
-(このオプションは 'window' 型のバーだけに有効です)。
+// TRANSLATION MISSING
+The option 'conditions' is a string evaluated to know if the bar is displayed
+or not.
文字列は以下のいずれか:
diff --git a/doc/pl/autogen/user/weechat_commands.asciidoc b/doc/pl/autogen/user/weechat_commands.asciidoc
index 4d7b45a97..5129ba7b7 100644
--- a/doc/pl/autogen/user/weechat_commands.asciidoc
+++ b/doc/pl/autogen/user/weechat_commands.asciidoc
@@ -13,50 +13,50 @@ wiadomość: powód nieobecności (jeśli nie podano wiadomości status nieobecn
----
/bar list|listfull|listitems
- add <nazwa> <typ>[,<warunek>] <pozycja> <rozmiar> <separator> <element1>[,<element2>...]
+ add <name> <type>[,<conditions>] <position> <size> <separator> <item1>[,<item2>...]
default [input|title|status|nicklist]
- del <nazwa>|-all
- set <nazwa> <opcja> <wartość>
- hide|show|toggle <nazwa>
- scroll <nazwa> <okno> <wartość_przewinięcia>
-
- list: lista wszystkich pasków
- listfull: lista wszystkich pasków (z polami)
- listitems: lista wszystkich elementów pasków
- add: dodaj nowy pasek
- nazwa: nazwa paska (musi być unikalna)
- typ: root: poza oknami,
- window: wewnątrz okien, z opcjonalnymi warunkami (patrz niżej)
- warunek: warunek(i) dla wyświetlenia paska (tylko dla typu "window"):
- active: w aktywnym oknie
- inactive: w nieaktywnym oknie
- nicklist: w oknach z listą nicków
- inne warunki: zobacz /help weechat.bar.xxx.conditions oraz /help eval
- bez warunku pasek jest zawsze wyświetlany
- pozycja: dół (bottom), góra (top), lewo (left) lub prawo (right)
- rozmiar: rozmiar paska (w znakach)
- separator: 1 dla użycia separatora (linia), 0 - brak separatora
- element1,...: elementy dla tego paska (elementy mogą być oddzielone przecinkiem (przerwa między elementami) lub "+" (sklejone elementy))
- default: tworzy domyślne paski (wszystkie domyślne paski, jeśli nie podamy nazwy)
- del: usuwa pasek (lub wszystkie z użyciem -all)
- set: ustawia wartość dla właściwości paska
- opcja: opcja do zmiany (listę opcji można zobaczyć dzięki /set weechat.bar.<nazwa paska>.*)
- wartość: nowa wartość opcji
- hide: ukrywa pasek
- show: pokazuje ukryty pasek
- toggle: ukrywa/pokazuje pasek
- scroll: przewija pasek
- okno: numer okna ('*' oznacza obecne okno lub pasek typu root)
- wartość_przewinięcia: wartość dla przewinięcia: 'x' lub 'y' (opcjonalne), następnie '+', '-', 'b' (początek) lub 'e' (koniec), wartość (dla +/-), oraz opcjonalnie % (w celu przesunięcia % szerokości/wysokości, w przeciwnym wypadku wartość jest ilością znaków)
-
-Przykłady:
- tworzy pasek z czasem, numerem + nazwą bufora i dopełnianiem:
+ del <name>|-all
+ set <name> <option> <value>
+ hide|show|toggle <name>
+ scroll <name> <window> <scroll_value>
+
+ list: list all bars
+ listfull: list all bars (verbose)
+ listitems: list all bar items
+ add: add a new bar
+ name: name of bar (must be unique)
+ type: root: outside windows,
+ window: inside windows, with optional conditions (see below)
+ conditions: the conditions to display the bar:
+ active: on active window
+ inactive: on inactive windows
+ nicklist: on windows with nicklist
+ other condition: see /help weechat.bar.xxx.conditions and /help eval
+ without conditions, the bar is always displayed
+ position: bottom, top, left or right
+ size: size of bar (in chars)
+ separator: 1 for using separator (line), 0 or nothing means no separator
+ item1,...: items for this bar (items can be separated by comma (space between items) or "+" (glued items))
+ default: create a default bar (all default bars if no bar name is given)
+ del: delete a bar (or all bars with -all)
+ set: set a value for a bar property
+ option: option to change (for options list, look at /set weechat.bar.<barname>.*)
+ value: new value for option
+ hide: hide a bar
+ show: show an hidden bar
+ toggle: hide/show a bar
+ scroll: scroll bar
+ window: window number (use '*' for current window or for root bars)
+ scroll_value: value for scroll: 'x' or 'y' (optional), followed by '+', '-', 'b' (beginning) or 'e' (end), value (for +/-), and optional % (to scroll by % of width/height, otherwise value is number of chars)
+
+Examples:
+ create a bar with time, buffer number + name, and completion:
/bar add mybar root bottom 1 0 [time],buffer_number+:+buffer_name,completion
- ukrywa pasek:
+ hide a bar:
/bar hide mybar
- przewija listę nicków a obecnym buforze o 10 linii w dół :
+ scroll nicklist 10 lines down on current buffer:
/bar scroll nicklist * y+10
- przewija do końca listę nicków w obecnym buforze:
+ scroll to end of nicklist on current buffer:
/bar scroll nicklist * ye
----
diff --git a/doc/pl/weechat_user.pl.asciidoc b/doc/pl/weechat_user.pl.asciidoc
index 3a59d8196..fcaab621a 100644
--- a/doc/pl/weechat_user.pl.asciidoc
+++ b/doc/pl/weechat_user.pl.asciidoc
@@ -860,8 +860,9 @@ Przykłady wypełnień paska 'nicklist':
[[bar_conditions]]
==== Warunki
-Opcja 'conditions' jest ciągiem przetwarzanym w celu ustalenia czy pasek ma
-zostać wyświetlony w oknie (jest używany tylko dla pasków z typem 'window').
+// TRANSLATION MISSING
+The option 'conditions' is a string evaluated to know if the bar is displayed
+or not.
Ciąg może być:
diff --git a/po/cs.po b/po/cs.po
index 9959111e9..c6530eece 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -1016,10 +1016,10 @@ msgstr "řídit pole"
#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <jméno> <typ>[,<podmínka1>[,<podmínka2>...]] "
"<pozice> <velikost> <oddělovac> <položka1>[,<položka2>...] || default [input|"
@@ -1036,13 +1036,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4154,11 +4154,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "typ pole (root, window, window_active, window_inactive)"
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"
diff --git a/po/de.po b/po/de.po
index 18a9e6292..2de7d87e8 100644
--- a/po/de.po
+++ b/po/de.po
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-21 13:35+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <>\n"
@@ -1029,17 +1029,19 @@ msgstr ""
msgid "manage bars"
msgstr "Infobars verwalten"
+#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
+#, fuzzy
msgid ""
" list: list all bars\n"
" listfull: list all bars (verbose)\n"
@@ -1048,13 +1050,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4868,12 +4870,13 @@ msgstr ""
msgid "bar type (root, window, window_active, window_inactive)"
msgstr "Bar-Typ (root, window, window_active, window_inactive)"
+#, fuzzy
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
"Bedingung(en), damit eine Infobar angezeigt wird (Infobars vom Typ \"window"
"\"). Eine einfache Bedingung: \"active\", \"inactive\", \"nicklist"
diff --git a/po/es.po b/po/es.po
index 1b16f6401..d90534c90 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -1018,10 +1018,10 @@ msgstr "gestionar las barras"
#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nombre> <tipo>[,<cond1>[,<cond2>...]] "
"<posición> <tamaño> <separador> <elemento1>[,<elemento2>...] || default "
@@ -1038,13 +1038,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4371,11 +4371,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "tipo de barra (root, window, window_active, window_inactive)"
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"
diff --git a/po/fr.po b/po/fr.po
index 8417c5546..a6437184e 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: 2014-12-21 11:09+0100\n"
-"PO-Revision-Date: 2014-12-21 11:10+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
+"PO-Revision-Date: 2014-12-28 10:53+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@@ -1012,10 +1012,10 @@ msgid "manage bars"
msgstr "gestion des barres"
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nom> <type>[,<conditions>] <position> "
"<taille> <séparateur> <objet1>[,<objet2>...] || default [input|title|status|"
@@ -1030,13 +1030,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -1078,8 +1078,7 @@ msgstr ""
" type : root : en dehors des fenêtres\n"
" window : dans les fenêtres, avec condition(s) optionnelle(s) "
"(voir ci-dessous)\n"
-" condition : condition(s) pour afficher cette barre (seulement pour le "
-"type \"window\") :\n"
+" conditions : les conditions pour afficher la barre :\n"
" active : sur la fenêtre active\n"
" inactive : sur les fenêtres inactives\n"
" nicklist : sur les fenêtres avec liste de pseudos\n"
@@ -4758,18 +4757,18 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "type de barre (root, window, window_active, window_inactive)"
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
-"condition(s) pour afficher la barre (pour les barres de type \"window\") : "
-"une simple condition : \"active\", \"inactive\", \"nicklist\" (la fenêtre "
-"doit être active/inactive, le tampon doit avoir une liste de pseudos), ou "
-"une expression avec condition(s) (voir /help eval), comme : \"${nicklist} && "
-"${window.win_width} > 100\" (les variables locales pour l'expression sont "
-"${active}, ${inactive} et ${nicklist})"
+"conditions pour afficher la barre : une simple condition : \"active\", "
+"\"inactive\", \"nicklist\" (la fenêtre doit être active/inactive, le tampon "
+"doit avoir une liste de pseudos), ou une expression avec condition(s) (voir /"
+"help eval), comme : \"${nicklist} && ${window.win_width} > 100\" (les "
+"variables locales pour l'expression sont ${active}, ${inactive} et "
+"${nicklist})"
msgid "bar position (bottom, top, left, right)"
msgstr ""
diff --git a/po/hu.po b/po/hu.po
index c8ff6e9ad..07664c7ff 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -1050,10 +1050,10 @@ msgid "manage bars"
msgstr "pufferek kezelése"
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@@ -1064,13 +1064,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -3776,11 +3776,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
#, fuzzy
diff --git a/po/it.po b/po/it.po
index 8458e02df..aba735dc4 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -998,11 +998,12 @@ msgstr ""
msgid "manage bars"
msgstr "gestione delle barre"
+#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nome> <type>[,<condizione>] <posizione> "
"<dimensione> <separatore> <item1>[,<item2>...] || default [input|title|"
@@ -1018,13 +1019,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4497,11 +4498,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "tipo di barra (root, window, window_active, window_inactive)"
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"
diff --git a/po/ja.po b/po/ja.po
index 720bd4d9a..498446cdf 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-22 01:28+0900\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/weechat/tree/translation_ja>\n"
@@ -40,11 +40,11 @@ msgid "max chars"
msgstr "最大文字数"
msgid ""
-"a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)"
-"green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal "
-"color number or an alias; attributes are allowed before color (for text "
-"color only, not background): \"*\" for bold, \"!\" for reverse, \"/\" for "
-"italic, \"_\" for underline"
+"a WeeChat color name (default, black, (dark)gray, white, (light)red, "
+"(light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a "
+"terminal color number or an alias; attributes are allowed before color (for "
+"text color only, not background): \"*\" for bold, \"!\" for reverse, \"/\" "
+"for italic, \"_\" for underline"
msgstr ""
"WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、"
"brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号ま"
@@ -992,17 +992,19 @@ msgstr ""
msgid "manage bars"
msgstr "バーの管理"
+#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
"scroll <name> <window> <scroll_value>"
+#, fuzzy
msgid ""
" list: list all bars\n"
" listfull: list all bars (verbose)\n"
@@ -1011,13 +1013,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4554,12 +4556,13 @@ msgstr "バー優先度 (値が大きいものは最初に表示)"
msgid "bar type (root, window, window_active, window_inactive)"
msgstr "バー型 (root、window、window_active、window_inactive)"
+#, fuzzy
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
"バーを表示する条件 (\"window\" タイプのバー): 単純な条件: \"active"
"\"、\"inactive\"、\"nicklist\" (ウィンドウはアクティブ/非アクティブ、バッファ"
@@ -5963,8 +5966,8 @@ msgstr ""
" - 内部サーバ名 (/server add で作成されたもの、利用推奨)\n"
" - ホスト名/ポート番号又は IP アドレス/ポート番号、デフォルトの"
"ポート番号は 6667\n"
-" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:password]@]"
-"irc.example.org[:port][/#channel1][,#channel2[...]]\n"
+" - 次のフォーマットに従う URL: irc[6][s]://[nickname[:"
+"password]@]irc.example.org[:port][/#channel1][,#channel2[...]]\n"
" 注意: アドレス/IP/URL を指定した場合、サーバを一時的に作ります "
"(保存しません)、/help irc.look.temporary_servers を参照してください。\n"
" option: サーバに関するオプション (ブール型オプションでは、value は無視さ"
@@ -10950,8 +10953,8 @@ msgid ""
"Examples (you can also look at default triggers with /trigger listdefault):\n"
" add text attributes *bold*, _underline_ and /italic/ (only in user "
"messages):\n"
-" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
-"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
+" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
+"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" hide nicklist bar on small terminals:\n"
@@ -11027,8 +11030,8 @@ msgstr ""
"\n"
"例 (/trigger listdefault でデフォルトトリガを見ることができます):\n"
" テキスト属性 *太字*、_下線_、/イタリック/ を追加 (ユーザメッセージのみ):\n"
-" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"==\\*"
-"(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
+" /trigger add effects modifier weechat_print \"${tg_tag_nick}\" \"=="
+"\\*(\\S+)\\*==*${color:bold}${re:1}${color:-bold}*== ==_(\\S+)_==_${color:"
"underline}${re:1}${color:-underline}_== ==/(\\S+)/==/${color:"
"italic}${re:1}${color:-italic}/\"\n"
" 狭い端末ではニックネームリストバーを隠す:\n"
diff --git a/po/pl.po b/po/pl.po
index 5ad9c7fb8..96b5b0ef1 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-12-26 19:51+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -1018,17 +1018,19 @@ msgstr ""
msgid "manage bars"
msgstr "zarządzaj paskami"
+#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nazwa> <typ>[,<warunek>] <pozycja> <rozmiar> "
"<separator> <element1>[,<element2>...] || default [input|title|status|"
"nicklist] || del <nazwa>|-all || set <nazwa> <opcja> <wartość> || hide|show|"
"toggle <nazwa> || scroll <nazwa> <okno> <wartość_przewinięcia>"
+#, fuzzy
msgid ""
" list: list all bars\n"
" listfull: list all bars (verbose)\n"
@@ -1037,13 +1039,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4661,12 +4663,13 @@ msgstr ""
msgid "bar type (root, window, window_active, window_inactive)"
msgstr "typ paska (root, window, window_active, window_inactive)"
+#, fuzzy
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
"warunek(i) dla wyświetlania paska (dla pasków o typie \"window\"): prosty "
"warunek: \"active\", \"inactive\", \"nicklist\" (okna muszą być aktywne/"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 737e87f82..7ad6a373a 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -1035,11 +1035,12 @@ msgstr ""
msgid "manage bars"
msgstr "gerenciar barras"
+#, fuzzy
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
"list|listfull|listitems || add <nome> <tipo>[,<cond1>[,<cond2>...]] "
"<posição> <tamanho> <separador> <item1>[,<item2>...] || default [input|title|"
@@ -1057,13 +1058,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -4252,11 +4253,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr "tipo da barra (root, window, window_active, window_inactive)"
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"
diff --git a/po/ru.po b/po/ru.po
index 269e595a3..4a181d174 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-11-09 16:23+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -1071,10 +1071,10 @@ msgid "manage bars"
msgstr "управление буферами"
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@@ -1085,13 +1085,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -3806,11 +3806,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
#, fuzzy
diff --git a/po/tr.po b/po/tr.po
index b647b7b44..d9ea1c3a1 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-07-25 07:50+0200\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -943,10 +943,10 @@ msgid "manage bars"
msgstr ""
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@@ -957,13 +957,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -3408,11 +3408,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"
diff --git a/po/weechat.pot b/po/weechat.pot
index 33ee02dcd..870eccca1 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: 2014-12-21 11:09+0100\n"
+"POT-Creation-Date: 2014-12-28 10:50+0100\n"
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -947,10 +947,10 @@ msgid "manage bars"
msgstr ""
msgid ""
-"list|listfull|listitems || add <name> <type>[,<condition>] <position> <size> "
-"<separator> <item1>[,<item2>...] || default [input|title|status|nicklist] || "
-"del <name>|-all || set <name> <option> <value> || hide|show|toggle <name> || "
-"scroll <name> <window> <scroll_value>"
+"list|listfull|listitems || add <name> <type>[,<conditions>] <position> "
+"<size> <separator> <item1>[,<item2>...] || default [input|title|status|"
+"nicklist] || del <name>|-all || set <name> <option> <value> || hide|show|"
+"toggle <name> || scroll <name> <window> <scroll_value>"
msgstr ""
msgid ""
@@ -961,13 +961,13 @@ msgid ""
" name: name of bar (must be unique)\n"
" type: root: outside windows,\n"
" window: inside windows, with optional conditions (see below)\n"
-" condition: condition(s) for displaying bar (only for type \"window\"):\n"
+" conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions and /"
"help eval\n"
-" without condition, the bar is always displayed\n"
+" without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
@@ -3403,11 +3403,11 @@ msgid "bar type (root, window, window_active, window_inactive)"
msgstr ""
msgid ""
-"condition(s) for displaying bar (for bars of type \"window\"): a simple "
-"condition: \"active\", \"inactive\", \"nicklist\" (window must be active/"
-"inactive, buffer must have a nicklist), or an expression with condition(s) "
-"(see /help eval), like: \"${nicklist} && ${window.win_width} > 100\" (local "
-"variables for expression are ${active}, ${inactive} and ${nicklist})"
+"conditions to display the bar: a simple condition: \"active\", \"inactive\", "
+"\"nicklist\" (window must be active/inactive, buffer must have a nicklist), "
+"or an expression with condition(s) (see /help eval), like: \"${nicklist} && "
+"${window.win_width} > 100\" (local variables for expression are ${active}, "
+"${inactive} and ${nicklist})"
msgstr ""
msgid "bar position (bottom, top, left, right)"
diff --git a/src/core/wee-command.c b/src/core/wee-command.c
index 922eb8221..c37d12d34 100644
--- a/src/core/wee-command.c
+++ b/src/core/wee-command.c
@@ -6810,7 +6810,7 @@ command_init ()
NULL, "bar",
N_("manage bars"),
N_("list|listfull|listitems"
- " || add <name> <type>[,<condition>] <position> <size> <separator> "
+ " || add <name> <type>[,<conditions>] <position> <size> <separator> "
"<item1>[,<item2>...]"
" || default [input|title|status|nicklist]"
" || del <name>|-all"
@@ -6825,14 +6825,13 @@ command_init ()
" type: root: outside windows,\n"
" window: inside windows, with optional conditions "
"(see below)\n"
- " condition: condition(s) for displaying bar (only for type "
- "\"window\"):\n"
+ " conditions: the conditions to display the bar:\n"
" active: on active window\n"
" inactive: on inactive windows\n"
" nicklist: on windows with nicklist\n"
" other condition: see /help weechat.bar.xxx.conditions "
"and /help eval\n"
- " without condition, the bar is always displayed\n"
+ " without conditions, the bar is always displayed\n"
" position: bottom, top, left or right\n"
" size: size of bar (in chars)\n"
" separator: 1 for using separator (line), 0 or nothing means no "
diff --git a/src/gui/curses/gui-curses-bar-window.c b/src/gui/curses/gui-curses-bar-window.c
index 86d1a4f19..28b9a169c 100644
--- a/src/gui/curses/gui-curses-bar-window.c
+++ b/src/gui/curses/gui-curses-bar-window.c
@@ -44,6 +44,10 @@
/*
* Initializes Curses windows for bar window.
+ *
+ * Returns:
+ * 1: OK
+ * 0: error
*/
int
@@ -51,6 +55,9 @@ gui_bar_window_objects_init (struct t_gui_bar_window *bar_window)
{
struct t_gui_bar_window_curses_objects *new_objects;
+ if (!bar_window)
+ return 0;
+
new_objects = malloc (sizeof (*new_objects));
if (new_objects)
{
@@ -69,6 +76,9 @@ gui_bar_window_objects_init (struct t_gui_bar_window *bar_window)
void
gui_bar_window_objects_free (struct t_gui_bar_window *bar_window)
{
+ if (!bar_window)
+ return;
+
if (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar)
{
delwin (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar);
@@ -88,8 +98,11 @@ gui_bar_window_objects_free (struct t_gui_bar_window *bar_window)
void
gui_bar_window_create_win (struct t_gui_bar_window *bar_window)
{
- if (CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
+ if (!bar_window
+ || CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
+ {
return;
+ }
if (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar)
{
@@ -160,7 +173,7 @@ gui_bar_window_print_string (struct t_gui_bar_window *bar_window,
int x_with_hidden, size_on_screen, low_char, hidden;
char utf_char[16], *next_char, *output;
- if (!string || !string[0])
+ if (!bar_window || !string || !string[0])
return 1;
wmove (GUI_BAR_WINDOW_OBJECTS(bar_window)->win_bar, *y, *x);
@@ -417,7 +430,7 @@ gui_bar_window_draw (struct t_gui_bar_window *bar_window,
if (gui_window_bare_display)
return;
- if ((bar_window->x < 0) || (bar_window->y < 0))
+ if (!bar_window || (bar_window->x < 0) || (bar_window->y < 0))
return;
if (!str_start_input[0])
diff --git a/src/gui/curses/gui-curses-window.c b/src/gui/curses/gui-curses-window.c
index af0813e86..f9fb9cf8d 100644
--- a/src/gui/curses/gui-curses-window.c
+++ b/src/gui/curses/gui-curses-window.c
@@ -1226,6 +1226,7 @@ gui_window_switch_to_buffer (struct t_gui_window *window,
if (!weechat_upgrading && (old_buffer != buffer))
gui_hotlist_remove_buffer (buffer, 0);
+ /* remove unused bars and add missing bars in window */
gui_bar_window_remove_unused_bars (window);
gui_bar_window_add_missing_bars (window);
@@ -1304,6 +1305,8 @@ gui_window_switch (struct t_gui_window *window)
old_window = gui_current_window;
gui_current_window = window;
+
+ /* remove unused bars and add missing bars in window */
changes = gui_bar_window_remove_unused_bars (old_window)
|| gui_bar_window_add_missing_bars (old_window);
if (changes)
@@ -1712,9 +1715,14 @@ gui_window_refresh_windows ()
old_current_window = gui_current_window;
+ /* remove unused bars and add missing root bars */
+ gui_bar_window_remove_unused_bars (NULL);
+ gui_bar_window_add_missing_bars (NULL);
+
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
+ && ptr_bar->bar_window
&& !CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
{
gui_bar_window_calculate_pos_size (ptr_bar->bar_window, NULL);
diff --git a/src/gui/gui-bar-item.c b/src/gui/gui-bar-item.c
index ed78db4bc..d6bc7ac88 100644
--- a/src/gui/gui-bar-item.c
+++ b/src/gui/gui-bar-item.c
@@ -195,6 +195,9 @@ gui_bar_item_used_in_bar (struct t_gui_bar *bar, const char *item_name,
{
int i, j, length;
+ if (!bar || !item_name)
+ return 0;
+
length = strlen (item_name);
for (i = 0; i < bar->items_count; i++)
@@ -238,6 +241,9 @@ gui_bar_item_used_in_at_least_one_bar (const char *item_name, int partial_name,
struct t_gui_bar *ptr_bar;
int i, j, length;
+ if (!item_name)
+ return 0;
+
length = strlen (item_name);
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
@@ -371,7 +377,7 @@ gui_bar_item_get_value (struct t_gui_bar *bar, struct t_gui_window *window,
struct t_gui_buffer *buffer;
struct t_gui_bar_item *ptr_item;
- if (!bar->items_array[item][subitem])
+ if (!bar || !bar->items_array[item][subitem])
return NULL;
buffer = (window) ?
@@ -569,10 +575,15 @@ gui_bar_item_update (const char *item_name)
struct t_gui_bar *ptr_bar;
struct t_gui_window *ptr_window;
struct t_gui_bar_window *ptr_bar_window;
- int i, j;
+ int i, j, check_bar_conditions, condition_ok;
+
+ if (!item_name)
+ return;
for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
+ check_bar_conditions = 0;
+
for (i = 0; i < ptr_bar->items_count; i++)
{
for (j = 0; j < ptr_bar->items_subcount[i]; j++)
@@ -580,9 +591,15 @@ gui_bar_item_update (const char *item_name)
if (ptr_bar->items_name[i][j]
&& (strcmp (ptr_bar->items_name[i][j], item_name) == 0))
{
- if (ptr_bar->bar_window)
+ if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
+ check_bar_conditions = 1;
+
+ if (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
{
- ptr_bar->bar_window->items_refresh_needed[i][j] = 1;
+ if (ptr_bar->bar_window)
+ {
+ ptr_bar->bar_window->items_refresh_needed[i][j] = 1;
+ }
}
else
{
@@ -604,6 +621,39 @@ gui_bar_item_update (const char *item_name)
}
}
}
+
+ /*
+ * evaluate bar conditions (if needed) to check if bar must be toggled
+ * (hidden if shown, or shown if hidden)
+ */
+ if (check_bar_conditions)
+ {
+ if (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
+ {
+ condition_ok = gui_bar_check_conditions (ptr_bar, NULL);
+ if ((condition_ok && !ptr_bar->bar_window)
+ || (!condition_ok && ptr_bar->bar_window))
+ {
+ gui_window_ask_refresh (1);
+ }
+ }
+ else
+ {
+ for (ptr_window = gui_windows; ptr_window;
+ ptr_window = ptr_window->next_window)
+ {
+ condition_ok = gui_bar_check_conditions (ptr_bar,
+ ptr_window);
+ ptr_bar_window = gui_bar_window_search_bar (ptr_window,
+ ptr_bar);
+ if ((condition_ok && !ptr_bar_window)
+ || (!condition_ok && ptr_bar_window))
+ {
+ gui_window_ask_refresh (1);
+ }
+ }
+ }
+ }
}
}
@@ -614,6 +664,9 @@ gui_bar_item_update (const char *item_name)
void
gui_bar_item_free (struct t_gui_bar_item *item)
{
+ if (!item)
+ return;
+
/* force refresh of bars displaying this bar item */
gui_bar_item_update (item->name);
diff --git a/src/gui/gui-bar-window.c b/src/gui/gui-bar-window.c
index e5fa41ebf..6f9a3de16 100644
--- a/src/gui/gui-bar-window.c
+++ b/src/gui/gui-bar-window.c
@@ -96,6 +96,9 @@ gui_bar_window_search_bar (struct t_gui_window *window, struct t_gui_bar *bar)
{
struct t_gui_bar_window *ptr_bar_win;
+ if (!window)
+ return NULL;
+
for (ptr_bar_win = window->bar_windows; ptr_bar_win;
ptr_bar_win = ptr_bar_win->next_bar_window)
{
@@ -283,6 +286,10 @@ gui_bar_window_get_size (struct t_gui_bar *bar, struct t_gui_window *window,
int total_size;
total_size = 0;
+
+ if (!window)
+ return total_size;
+
for (ptr_bar_window = window->bar_windows; ptr_bar_window;
ptr_bar_window = ptr_bar_window->next_bar_window)
{
@@ -313,6 +320,7 @@ gui_bar_window_get_size (struct t_gui_bar *bar, struct t_gui_window *window,
}
}
}
+
return total_size;
}
@@ -327,8 +335,11 @@ gui_bar_window_calculate_pos_size (struct t_gui_bar_window *bar_window,
int x1, y1, x2, y2;
int add_bottom, add_top, add_left, add_right;
- if (CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
+ if (!bar_window
+ || CONFIG_BOOLEAN(bar_window->bar->options[GUI_BAR_OPTION_HIDDEN]))
+ {
return;
+ }
if (window)
{
@@ -405,6 +416,9 @@ gui_bar_window_find_pos (struct t_gui_bar *bar, struct t_gui_window *window)
{
struct t_gui_bar_window *ptr_bar_window;
+ if (!window)
+ return NULL;
+
for (ptr_bar_window = window->bar_windows; ptr_bar_window;
ptr_bar_window = ptr_bar_window->next_bar_window)
{
@@ -426,6 +440,9 @@ gui_bar_window_content_alloc (struct t_gui_bar_window *bar_window)
{
int i, j;
+ if (!bar_window)
+ return;
+
bar_window->items_count = bar_window->bar->items_count;
bar_window->items_subcount = NULL;
bar_window->items_content = NULL;
@@ -535,6 +552,9 @@ gui_bar_window_content_free (struct t_gui_bar_window *bar_window)
{
int i, j;
+ if (!bar_window)
+ return;
+
if (bar_window->items_content)
{
for (i = 0; i < bar_window->items_count; i++)
@@ -571,6 +591,9 @@ gui_bar_window_content_build_item (struct t_gui_bar_window *bar_window,
struct t_gui_window *window,
int index_item, int index_subitem)
{
+ if (!bar_window)
+ return;
+
if (bar_window->items_content)
{
if (bar_window->items_content[index_item][index_subitem])
@@ -605,6 +628,9 @@ gui_bar_window_content_build (struct t_gui_bar_window *bar_window,
{
int i, j;
+ if (!bar_window)
+ return;
+
gui_bar_window_content_free (bar_window);
gui_bar_window_content_alloc (bar_window);
@@ -626,6 +652,9 @@ gui_bar_window_content_get (struct t_gui_bar_window *bar_window,
struct t_gui_window *window,
int index_item, int index_subitem)
{
+ if (!bar_window)
+ return NULL;
+
/* rebuild content if refresh is needed */
if (bar_window->items_refresh_needed[index_item][index_subitem])
{
@@ -1075,7 +1104,7 @@ gui_bar_window_new (struct t_gui_bar *bar, struct t_gui_window *window)
if (window)
{
if ((CONFIG_INTEGER(bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
- && (!gui_bar_check_conditions_for_window (bar, window)))
+ && (!gui_bar_check_conditions (bar, window)))
return;
}
@@ -1268,6 +1297,11 @@ gui_bar_window_free (struct t_gui_bar_window *bar_window,
if (window->last_bar_window == bar_window)
window->last_bar_window = bar_window->prev_bar_window;
}
+ else
+ {
+ if (bar_window->bar)
+ (bar_window->bar)->bar_window = NULL;
+ }
/* free data */
gui_bar_window_content_free (bar_window);
@@ -1281,7 +1315,10 @@ gui_bar_window_free (struct t_gui_bar_window *bar_window,
}
/*
- * Removes unused bars for a window.
+ * Removes unused bars, according to bars conditions.
+ *
+ * If window is NULL, unused root bars are removed.
+ * If window is not NULL, unused window bars in this window are removed.
*
* Returns:
* 1: at least one bar was removed
@@ -1293,29 +1330,51 @@ gui_bar_window_remove_unused_bars (struct t_gui_window *window)
{
int rc;
struct t_gui_bar_window *ptr_bar_win, *next_bar_win;
+ struct t_gui_bar *ptr_bar;
rc = 0;
- ptr_bar_win = window->bar_windows;
- while (ptr_bar_win)
+ if (window)
{
- next_bar_win = ptr_bar_win->next_bar_window;
+ /* remove unused window bars in window */
+ ptr_bar_win = window->bar_windows;
+ while (ptr_bar_win)
+ {
+ next_bar_win = ptr_bar_win->next_bar_window;
- if ((CONFIG_INTEGER(ptr_bar_win->bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
- && (!gui_bar_check_conditions_for_window (ptr_bar_win->bar, window)))
+ if ((CONFIG_INTEGER(ptr_bar_win->bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
+ && (!gui_bar_check_conditions (ptr_bar_win->bar, window)))
+ {
+ gui_bar_window_free (ptr_bar_win, window);
+ rc = 1;
+ }
+
+ ptr_bar_win = next_bar_win;
+ }
+ }
+ else
+ {
+ /* remove unused root bars */
+ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
- gui_bar_window_free (ptr_bar_win, window);
- rc = 1;
+ if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
+ && ptr_bar->bar_window
+ && (!gui_bar_check_conditions (ptr_bar, NULL)))
+ {
+ gui_bar_window_free (ptr_bar->bar_window, NULL);
+ rc = 1;
+ }
}
-
- ptr_bar_win = next_bar_win;
}
return rc;
}
/*
- * Adds missing bars for a window.
+ * Adds missing bars, according to bars conditions.
+ *
+ * If window is NULL, missing root bars are added.
+ * If window is not NULL, missing window bars in this window are added.
*
* Returns:
* 1: at least one bar was created
@@ -1330,18 +1389,34 @@ gui_bar_window_add_missing_bars (struct t_gui_window *window)
rc = 0;
- for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
+ if (window)
{
- if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
- && gui_bar_check_conditions_for_window (ptr_bar, window))
+ /* add missing window bars in window */
+ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
{
- if (!gui_bar_window_search_bar (window, ptr_bar))
+ if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_WINDOW)
+ && (!gui_bar_window_search_bar (window, ptr_bar))
+ && (gui_bar_check_conditions (ptr_bar, window)))
{
gui_bar_window_new (ptr_bar, window);
rc = 1;
}
}
}
+ else
+ {
+ /* add missing root bars */
+ for (ptr_bar = gui_bars; ptr_bar; ptr_bar = ptr_bar->next_bar)
+ {
+ if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
+ && !ptr_bar->bar_window
+ && (gui_bar_check_conditions (ptr_bar, NULL)))
+ {
+ gui_bar_window_new (ptr_bar, NULL);
+ rc = 1;
+ }
+ }
+ }
return rc;
}
diff --git a/src/gui/gui-bar.c b/src/gui/gui-bar.c
index 58ed2c52b..c83bf260b 100644
--- a/src/gui/gui-bar.c
+++ b/src/gui/gui-bar.c
@@ -369,20 +369,25 @@ gui_bar_insert (struct t_gui_bar *bar)
/*
* Checks if bar must be displayed in window according to conditions.
*
+ * If window is NULL (case of root bars), the current window is used.
+ *
* Returns:
* 1: bar must be displayed
* 0: bar must not be displayed
*/
int
-gui_bar_check_conditions_for_window (struct t_gui_bar *bar,
- struct t_gui_window *window)
+gui_bar_check_conditions (struct t_gui_bar *bar,
+ struct t_gui_window *window)
{
int rc;
char str_modifier[256], str_window[128], *str_displayed, *result;
const char *conditions;
struct t_hashtable *pointers, *extra_vars, *options;
+ if (!window)
+ window = gui_current_window;
+
/* check bar condition(s) */
conditions = CONFIG_STRING(bar->options[GUI_BAR_OPTION_CONDITIONS]);
if (string_strcasecmp (conditions, "active") == 0)
@@ -490,7 +495,8 @@ gui_bar_root_get_size (struct t_gui_bar *bar, enum t_gui_bar_position position)
if (bar && (ptr_bar == bar))
return total_size;
- if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
+ if (!CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN])
+ && ptr_bar->bar_window)
{
if ((CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_TYPE]) == GUI_BAR_TYPE_ROOT)
&& (CONFIG_INTEGER(ptr_bar->options[GUI_BAR_OPTION_POSITION]) == (int)position))
@@ -858,7 +864,6 @@ gui_bar_config_change_hidden (void *data, struct t_config_option *option)
if (CONFIG_BOOLEAN(ptr_bar->options[GUI_BAR_OPTION_HIDDEN]))
{
gui_bar_window_free (ptr_bar->bar_window, NULL);
- ptr_bar->bar_window = NULL;
}
else
{
@@ -1404,12 +1409,12 @@ gui_bar_create_option (const char *bar_name, int index_option, const char *value
ptr_option = config_file_new_option (
weechat_config_file, weechat_config_section_bar,
option_name, "string",
- N_("condition(s) for displaying bar (for bars of type "
- "\"window\"): a simple condition: \"active\", \"inactive\", "
- "\"nicklist\" (window must be active/inactive, buffer must "
- "have a nicklist), or an expression with condition(s) (see "
- "/help eval), like: \"${nicklist} && ${window.win_width} > "
- "100\" (local variables for expression are ${active}, "
+ N_("conditions to display the bar: a simple condition: "
+ "\"active\", \"inactive\", \"nicklist\" (window must be "
+ "active/inactive, buffer must have a nicklist), or an "
+ "expression with condition(s) (see /help eval), "
+ "like: \"${nicklist} && ${window.win_width} > 100\" "
+ "(local variables for expression are ${active}, "
"${inactive} and ${nicklist})"),
NULL, 0, 0, value, NULL, 0,
NULL, NULL, &gui_bar_config_change_conditions, NULL, NULL, NULL);
@@ -2231,7 +2236,6 @@ gui_bar_free_bar_windows (struct t_gui_bar *bar)
if (bar->bar_window)
{
gui_bar_window_free (bar->bar_window, NULL);
- bar->bar_window = NULL;
}
else
{
diff --git a/src/gui/gui-bar.h b/src/gui/gui-bar.h
index 974a54b87..6482e75c7 100644
--- a/src/gui/gui-bar.h
+++ b/src/gui/gui-bar.h
@@ -116,8 +116,8 @@ extern int gui_bar_search_option (const char *option_name);
extern int gui_bar_search_type (const char *type);
extern int gui_bar_search_position (const char *position);
extern enum t_gui_bar_filling gui_bar_get_filling (struct t_gui_bar *bar);
-extern int gui_bar_check_conditions_for_window (struct t_gui_bar *bar,
- struct t_gui_window *window);
+extern int gui_bar_check_conditions (struct t_gui_bar *bar,
+ struct t_gui_window *window);
extern int gui_bar_root_get_size (struct t_gui_bar *bar,
enum t_gui_bar_position position);
extern struct t_gui_bar *gui_bar_search (const char *name);