core: display more verbose debug with two "-d" in command /eval

Now a single -d in command /eval shows less debug messages than previous
versions.

To get the same debug messages than previous versions, two -d must be used.
This commit is contained in:
Sébastien Helleu 2020-12-31 20:37:43 +01:00
parent 33c7b96146
commit 2ad3da03a2
28 changed files with 287 additions and 220 deletions

View File

@ -20,6 +20,7 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
New features:: New features::
* core: display more verbose debug with two "-d" in command /eval
* core: add options "setvar" and "delvar" in command /buffer, rename option "localvar" to "listvar" * core: add options "setvar" and "delvar" in command /buffer, rename option "localvar" to "listvar"
* core: add buffer local variable "completion_default_template" (evaluated) to override the value of option "weechat.completion.default_template" (issue #1600) * core: add buffer local variable "completion_default_template" (evaluated) to override the value of option "weechat.completion.default_template" (issue #1600)
* core: add option "recreate" in command /filter * core: add option "recreate" in command /filter

View File

@ -1302,80 +1302,80 @@ infolists: zeigt Information über die Infolists an
---- ----
/eval [-n|-s] [-d] <expression> /eval [-n|-s] [-d] <expression>
[-n] [-d] -c <expression1> <operator> <expression2> [-n] [-d [-d]] -c <expression1> <operator> <expression2>
-n: gibt das Ergebnis aus, ohne dass dieses in den Buffer gesendet wird (debug Modus) -n: display result without sending it to buffer (debug mode)
-s: teilt Ausdrücke, bevor sie evaluiert werden (mehrere Befehle können durch Semikolon getrennt werden) -s: split expression before evaluating it (many commands can be separated by semicolons)
-d: eine Debug-Ausgabe nach Auswertung anzeigen -d: display debug output after evaluation (with two -d: more verbose debug)
-c: Auswertung als Bedingung: nutzt Operatoren und runde Klammern, Rückgabewert als Boolean-Wert ("0" oder "1") -c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
expression: Ausdruck welcher verarbeitet werden soll. Variablen im Format ${variable} werden ersetzt (siehe unten); mehrere Befehle werden durch ein Semikolon voneinander getrennt expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: ein logischer oder vergleichender Operand: operator: a logical or comparison operator:
- logische Operanden: - logical operators:
&& boolean "und" && boolean "and"
|| boolean "oder" || boolean "or"
- vergleichende Operanden: - comparison operators:
== gleich == equal
!= ungleich != not equal
<= kleiner oder gleich <= less or equal
< kleiner < less
>= größer oder gleich >= greater or equal
> größer > greater
=~ stimmt mit regulärem POSIX Ausdruck überein =~ is matching POSIX extended regex
!~ stimmt NICHT mit regulärem POSIX Ausdruck überein !~ is NOT matching POSIX extended regex
==* stimmt mit Maske überein (Platzhalter "*" ist erlaubt) ==* is matching mask, case sensitive (wildcard "*" is allowed)
!!* stimmt mit Maske NICHT überein (Platzhalter "*" ist erlaubt) !!* is NOT matching mask, case sensitive (wildcard "*" is allowed)
=* stimmt mit Maske überein, Groß- und Kleinschreibung wird nicht beachtet (Platzhalter "*" ist erlaubt) =* is matching mask, case insensitive (wildcard "*" is allowed)
!* stimmt mit Maske NICHT überein, Groß- und Kleinschreibung wird nicht beachtet (Platzhalter "*" ist erlaubt) !* is NOT matching mask, case insensitive (wildcard "*" is allowed)
==- ist enthalten, Groß- und Kleinschreibung wird beachtet ==- is included, case sensitive
!!- ist NICHT enthalten, Groß- und Kleinschreibung wird beachtet !!- is NOT included, case sensitive
=- ist enthalten, Groß- und Kleinschreibung wird nicht beachtet =- is included, case insensitive
!- ist NICHT enthalten, Groß- und Kleinschreibung wird nicht beachtet !- is NOT included, case insensitive
Ein Ausdruck gilt als "wahr" sofern das Ergebnis weder NULL, nicht leer und von "0" abweichend ist. An expression is considered as "true" if it is not NULL, not empty, and different from "0".
Für einen Vergleich werden Fließkommazahlen genutzt, insofern es sich bei beiden Ausdrücken um gültige Zahlen handelt, folgende Formate werden unterstützt: The comparison is made using floating point numbers if the two expressions are valid numbers, with one of the following formats:
- Integer (Beispiele: 5, -7) - integer (examples: 5, -7)
- Fließkommazahl (Beispiele: 5.2, -7.5, 2.83e-2) - floating point number (examples: 5.2, -7.5, 2.83e-2)
- hexadezimale Zahl (Beispiele: 0xA3, -0xA3) - hexadecimal number (examples: 0xA3, -0xA3)
Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrücke in Anführungszeichen gesetzt werden, zum Beispiel: To force a string comparison, you can add double quotes around each expression, for example:
50 > 100 ==> 0 50 > 100 ==> 0
"50" > "100" ==> 1 "50" > "100" ==> 1
Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität: Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
1. eine evaluierte Teilzeichenkette (Format: "eval:xxx") 1. an evaluated sub-string (format: "eval:xxx")
2. eine evaluierte Bedingung (Format: "eval_cond:xxx") 2. an evaluated condition (format: "eval_cond:xxx")
3. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx") 3. a string with escaped chars (format: "esc:xxx" or "\xxx")
4. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette") 4. a string with chars to hide (format: "hide:char,string")
5. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:+Max,Suffix,Zeichenkette") 5. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
6. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx") 6. a reversed string (format: "rev:xxx" or "revscr:xxx")
7. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette") 7. a repeated string (format: "repeat:count,string")
8. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx") 8. length of a string (format: "length:xxx" or "lengthscr:xxx")
9. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color") 9. a color (format: "color:xxx", see "Plugin API reference", function "color")
10. ein Modifizierer (Format: "info:Name,Argumente", Argumente sind optional) 10. a modifier (format: "modifier:name,data,string")
11. eine Info (Format: "Info:Name,Argumente", Argumente sind optional) 11. an info (format: "info:name,arguments", arguments are optional)
12. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx") 12. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
13. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format") 13. current date/time (format: "date" or "date:format")
14. eine Umgebungsvariable (Format: "env:XXX") 14. an environment variable (format: "env:XXX")
15. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr") 15. a ternary operator (format: "if:condition?value_if_true:value_if_false")
16. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx") 16. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
17. eine Option (Format: "file.section.option") 17. an option (format: "file.section.option")
18. eine lokale Variable eines Buffers 18. a local variable in buffer
19. ein(e) hdata - Name/Variable (der Wert wird automatisch in eine Zeichenkette konvertiert), standardmäßig wird für "window" und "buffer" das aktuelle Fenster/Buffer verwendet. 19. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
Das Format für hdata kann wie folgt aufgebaut sein: Format for hdata can be one of following:
hdata.var1.var2...: startet mit hdata (der Pointer muss bekannt sein) und fragt eine Variable nach der anderen ab (weitere hdata können folgen) hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
hdata[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel: hdata[list].var1.var2...: start with a hdata using a list, for example:
${buffer[gui_buffers].full_name}: der vollständige Name des ersten Buffers, in der verknüpften Liste aller Buffer ${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers
${plugin[weechat_plugins].name}: Name der ersten Erweiterung, in der verknüpften Liste aller Erweiterungen ${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins
hdata[pointer].var1.var2...: startet hdata mittels einem Pointer, zum Beispiel: hdata[pointer].var1.var2...: start with a hdata using a pointer, for example:
${buffer[0x1234abcd].full_name}: vollständiger Name eines Buffers und des dazugehörigen Pointers (kann in triggern benutzt werden) ${buffer[0x1234abcd].full_name}: full name of the buffer with this pointer (can be used in triggers)
Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
Beispiele (einfache Zeichenketten): Examples (simple strings):
/eval -n ${eval_cond:${window.win_width}>100} ==> 1 /eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3 /eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user /eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3 /eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.freenode_password} ==> geheim /eval -n ${sec.data.freenode_password} ==> secret
/eval -n ${window} ==> 0x2549aa0 /eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320 /eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat /eval -n ${window.buffer.full_name} ==> core.weechat
@ -1393,17 +1393,17 @@ Beispiele (einfache Zeichenketten):
/eval -n ${base_encode:64,test} ==> dGVzdA== /eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test /eval -n ${base_decode:64,dGVzdA==} ==> test
Beispiele (Bedingungen): Examples (conditions):
/eval -n -c ${window.buffer.number} > 2 ==> 0 /eval -n -c ${window.buffer.number} > 2 ==> 0
/eval -n -c ${window.win_width} > 100 ==> 1 /eval -n -c ${window.win_width} > 100 ==> 1
/eval -n -c (8 > 12) || (5 > 2) ==> 1 /eval -n -c (8 > 12) || (5 > 2) ==> 1
/eval -n -c (8 > 12) && (5 > 2) ==> 0 /eval -n -c (8 > 12) && (5 > 2) ==> 0
/eval -n -c abcd =~ ^ABC ==> 1 /eval -n -c abcd =~ ^ABC ==> 1
/eval -n -c abcd =~ (?-i)^ABC ==> 0 /eval -n -c abcd =~ (?-i)^ABC ==> 0
/eval -n -c abcd =~ (?-i)^abc ==> 1 /eval -n -c abcd =~ (?-i)^abc ==> 1
/eval -n -c abcd !~ abc ==> 0 /eval -n -c abcd !~ abc ==> 0
/eval -n -c abcd =* a*d ==> 1 /eval -n -c abcd =* a*d ==> 1
/eval -n -c abcd =- bc ==> 1 /eval -n -c abcd =- bc ==> 1
---- ----
[[command_weechat_filter]] [[command_weechat_filter]]

View File

@ -1302,11 +1302,11 @@ infolists: display infos about infolists
---- ----
/eval [-n|-s] [-d] <expression> /eval [-n|-s] [-d] <expression>
[-n] [-d] -c <expression1> <operator> <expression2> [-n] [-d [-d]] -c <expression1> <operator> <expression2>
-n: display result without sending it to buffer (debug mode) -n: display result without sending it to buffer (debug mode)
-s: split expression before evaluating it (many commands can be separated by semicolons) -s: split expression before evaluating it (many commands can be separated by semicolons)
-d: display debug output after evaluation -d: display debug output after evaluation (with two -d: more verbose debug)
-c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1") -c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: a logical or comparison operator: operator: a logical or comparison operator:

View File

@ -2246,6 +2246,10 @@ Arguments:
** _regex_replace_: the replacement text to use with _regex_, to replace ** _regex_replace_: the replacement text to use with _regex_, to replace
text in _expr_ (the _regex_replace_ is evaluated on each match of _regex_ text in _expr_ (the _regex_replace_ is evaluated on each match of _regex_
against _expr_, until no match is found) against _expr_, until no match is found)
** _debug_: debug level (string with integer number ≥ 1), if enabled, a key
"debug_output" is added in hashtable _options_:
*** _1_: enable debug
*** _2_: enable more verbose debug
Return value: Return value:

View File

@ -1301,12 +1301,12 @@ infolists : afficher des infos sur les infolists
* `+eval+`: évaluer une expression * `+eval+`: évaluer une expression
---- ----
/eval [-n|-s] [-d] <expression> /eval [-n|-s] [-d [-d]] <expression>
[-n] [-d] -c <expression1> <opérateur> <expression2> [-n] [-d] -c <expression1> <opérateur> <expression2>
-n : afficher le résultat sans envoyer au tampon (mode debug) -n : afficher le résultat sans envoyer au tampon (mode debug)
-s : découper l'expression avant de l'évaluer (plusieurs commandes peuvent être séparées par des points-virgules) -s : découper l'expression avant de l'évaluer (plusieurs commandes peuvent être séparées par des points-virgules)
-d : afficher la sortie de debug après l'évaluation -d : afficher la sortie de debug après l'évaluation (avec deux -d : mode debug plus verbeux)
-c : évaluer comme une condition : utiliser les opérateurs et les parenthèses, retourner une valeur booléenne ("0" ou "1") -c : évaluer comme une condition : utiliser les opérateurs et les parenthèses, retourner une valeur booléenne ("0" ou "1")
expression : expression à évaluer, les variables avec le format ${variable} sont remplacées (voir ci-dessous) ; plusieurs commandes peuvent être séparées par des points-virgules expression : expression à évaluer, les variables avec le format ${variable} sont remplacées (voir ci-dessous) ; plusieurs commandes peuvent être séparées par des points-virgules
opérateur : un opérateur logique ou de comparaison : opérateur : un opérateur logique ou de comparaison :

View File

@ -2288,6 +2288,10 @@ Paramètres :
remplacer du texte dans _expr_ (_regex_replace_ est évalué sur chaque remplacer du texte dans _expr_ (_regex_replace_ est évalué sur chaque
correspondance de _regex_ sur _expr_, jusqu'à ce que plus aucune correspondance de _regex_ sur _expr_, jusqu'à ce que plus aucune
correspondance ne soit trouvée) correspondance ne soit trouvée)
** _debug_ : niveau de debug (chaîne avec un nombre entier ≥ 1), si activé,
une clé "debug_output" est ajoutée dans la table de hachage _options_ :
*** _1_ : activer le debug
*** _2_ : activer le debug plus verbeux
Valeur de retour : Valeur de retour :

View File

@ -1302,11 +1302,11 @@ infolists: display infos about infolists
---- ----
/eval [-n|-s] [-d] <expression> /eval [-n|-s] [-d] <expression>
[-n] [-d] -c <expression1> <operator> <expression2> [-n] [-d [-d]] -c <expression1> <operator> <expression2>
-n: display result without sending it to buffer (debug mode) -n: display result without sending it to buffer (debug mode)
-s: split expression before evaluating it (many commands can be separated by semicolons) -s: split expression before evaluating it (many commands can be separated by semicolons)
-d: display debug output after evaluation -d: display debug output after evaluation (with two -d: more verbose debug)
-c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1") -c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: a logical or comparison operator: operator: a logical or comparison operator:

View File

@ -2345,6 +2345,11 @@ Argomenti:
** _regex_replace_: the replacement text to use with _regex_, to replace ** _regex_replace_: the replacement text to use with _regex_, to replace
text in _expr_ (the _regex_replace_ is evaluated on each match of _regex_ text in _expr_ (the _regex_replace_ is evaluated on each match of _regex_
against _expr_, until no match is found) against _expr_, until no match is found)
// TRANSLATION MISSING
** _debug_: debug level (string with integer number ≥ 1), if enabled, a key
"debug_output" is added in hashtable _options_:
*** _1_: enable debug
*** _2_: enable more verbose debug
Valore restituito: Valore restituito:

View File

@ -1302,11 +1302,11 @@ infolists: インフォリストに関する情報を表示
---- ----
/eval [-n|-s] [-d] <expression> /eval [-n|-s] [-d] <expression>
[-n] [-d] -c <expression1> <operator> <expression2> [-n] [-d [-d]] -c <expression1> <operator> <expression2>
-n: display result without sending it to buffer (debug mode) -n: display result without sending it to buffer (debug mode)
-s: split expression before evaluating it (many commands can be separated by semicolons) -s: split expression before evaluating it (many commands can be separated by semicolons)
-d: display debug output after evaluation -d: display debug output after evaluation (with two -d: more verbose debug)
-c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1") -c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: a logical or comparison operator: operator: a logical or comparison operator:

View File

@ -2262,6 +2262,11 @@ char *weechat_string_eval_expression (const char *expr,
** _regex_replace_: _regex_ と一緒に使われる置換テキスト、_expr_ ** _regex_replace_: _regex_ と一緒に使われる置換テキスト、_expr_
に含まれるテキストを置換する (_regex_replace_ は、_expr_ 内で に含まれるテキストを置換する (_regex_replace_ は、_expr_ 内で
_regex_ 引数にマッチする部分が見つからなくなるまで、毎回評価されます) _regex_ 引数にマッチする部分が見つからなくなるまで、毎回評価されます)
// TRANSLATION MISSING
** _debug_: debug level (string with integer number ≥ 1), if enabled, a key
"debug_output" is added in hashtable _options_:
*** _1_: enable debug
*** _2_: enable more verbose debug
戻り値: 戻り値:

View File

@ -1300,82 +1300,81 @@ infolists: wyświetla informacje o infolistach
* `+eval+`: przetwórz wyrażenie * `+eval+`: przetwórz wyrażenie
---- ----
/eval [-n|-s] [-d] <wyrażenie> /eval [-n|-s] [-d] <expression>
[-n] [-d ] -c <wyrażenie1> <operator> <wyrażenie2> [-n] [-d [-d]] -c <expression1> <operator> <expression2>
-n: wyświetla wynik bez wysyłania go do buforu (tryb debugowania) -n: display result without sending it to buffer (debug mode)
-s: podziel wyrażenie przed przetworzeniem go (wiele komend może być oddzielonych średnikami) -s: split expression before evaluating it (many commands can be separated by semicolons)
-d: wyświetl wyjście debugowe po ewaluacji -d: display debug output after evaluation (with two -d: more verbose debug)
-c: przetwarza jako warunek: użyj operatorów i nawiasów, zwraca wartość logiczną ("0" lub "1") -c: evaluate as condition: use operators and parentheses, return a boolean value ("0" or "1")
wyrażenie: wyrażenie do przetworzenia, zmienne o formacie ${zmienna} są zastępowane (zobacz niżej); wiele komend można oddzielić średnikami expression: expression to evaluate, variables with format ${variable} are replaced (see below); many commands can be separated by semicolons
operator: operator logiczny lub porównania: operator: a logical or comparison operator:
- operatory logiczne: - logical operators:
&& logiczne "i" && boolean "and"
|| logiczne "lub" || boolean "or"
- operatory porównania: - comparison operators:
== równy == equal
!= różny != not equal
<= mniejszy lub równy <= less or equal
< mniejszy < less
>= większy lub równy >= greater or equal
> większy > greater
=~ pasuje do rozszerzonego wyrażenia regularnego POSIX =~ is matching POSIX extended regex
!~ NIE pasuje do rozszerzonego wyrażenia regularnego POSIX !~ is NOT matching POSIX extended regex
==* is matching mask, case sensitive (wildcard "*" is allowed)
!!* is NOT matching mask, case sensitive (wildcard "*" is allowed)
=* is matching mask, case insensitive (wildcard "*" is allowed)
!* is NOT matching mask, case insensitive (wildcard "*" is allowed)
==- is included, case sensitive
!!- is NOT included, case sensitive
=- is included, case insensitive
!- is NOT included, case insensitive
==* pasuje do maski, rozróżnia wielkość znaków (dzika karta "*" dozwolona) An expression is considered as "true" if it is not NULL, not empty, and different from "0".
!!* NIE pasuje do maski, rozróżnia wielkość znaków (dzika karta "*" dozwolona) The comparison is made using floating point numbers if the two expressions are valid numbers, with one of the following formats:
=* pasuje do maski, nie rozróżnia wielkość znaków (dzika karta "*" dozwolona) - integer (examples: 5, -7)
!* NIE pasuje do maski, nie rozróżnia wielkość znaków (dzika karta "*" dozwolona) - floating point number (examples: 5.2, -7.5, 2.83e-2)
==- jest zawarte, rozróżnia wielkość znaków - hexadecimal number (examples: 0xA3, -0xA3)
!!- NIE jest zawarte,rozróżnia wielkość znaków To force a string comparison, you can add double quotes around each expression, for example:
=- jest zawarte, nie rozróżnia wielkość znaków
!- NIE jest zawarte, nie rozróżnia wielkość znaków
Wyrażenie jest uznawane za „prawdziwe” jeśli nie jest NULL, nie jest puste, oraz różni się od "0".
Porównania dokonuje się z użyciem liczb całkowitych jeśli oba wyrażenia są liczbami całkowitymi, w jednym z następujących formatów:
- liczby całkowite (przykłady: 5, -7)
- liczby zmiennoprzecinkowe (przykłady: 5.2, -7.5, 2.83e-2)
- liczby szesnastkowe (przykłady: 0xA3, -0xA3)
W celu wymuszenia porównywania ciągów, należy umieścić każde wyrażenie w cudzysłowie, na przykład:
50 > 100 ==> 0 50 > 100 ==> 0
"50" > "100" ==> 1 "50" > "100" ==> 1
Niektóre zmienne w wyrażeniach są zamieniane, poprzez zastosowanie formatu ${zmienna}, według priorytetu zmienną może być: Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority:
1. przetworzony ciąg (format: "eval:xxx") 1. an evaluated sub-string (format: "eval:xxx")
2. przetworzone wyrażenie (format: "eval_cond:xxx") 2. an evaluated condition (format: "eval_cond:xxx")
3. ciąg z wyescapowanymi znakami (format: "esc:xxx" lub "\xxx") 3. a string with escaped chars (format: "esc:xxx" or "\xxx")
4. ciąg ze znakami do ukrycia (format: "hide:char,string") 4. a string with chars to hide (format: "hide:char,string")
5. ciąg o maksymalnej długości (format: "cut:max,suffix,string" lub "cut:+max,suffix,string") 5. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string")
lub maksymalna ilość znaków wyświetlanych na ekranie (format: "cutscr:max,suffix,string" lub "cutscr:+max,suffix,string") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string")
6. odwrócony ciąg (format: "rev:xxx") 6. a reversed string (format: "rev:xxx" or "revscr:xxx")
7. powtórzony ciąg (format: "repeat:ilość,ciąg") 7. a repeated string (format: "repeat:count,string")
8. długość ciągu (format: "length:xxx" or "lengthscr:xxx") 8. length of a string (format: "length:xxx" or "lengthscr:xxx")
9. kolor (format "color:xxx", zobacz „Opis API wtyczek”, funkcja "color") 9. a color (format: "color:xxx", see "Plugin API reference", function "color")
10. modyfikator (format: "modifier:name,data,string") 10. a modifier (format: "modifier:name,data,string")
11. informacja (format: "info:nazwa,argumenty", argumenty są opcjonalne) 11. an info (format: "info:name,arguments", arguments are optional)
12. ciąg zakodowany/zdekodowany z base 16/32/64 (format: "base_encode:base,xxx" lub "base_decode:base,xxx") 12. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
13. obecna data/czas (format: "date" lub "date:format") 13. current date/time (format: "date" or "date:format")
14. zmienna środowiskowa (format: "env:XXX") 14. an environment variable (format: "env:XXX")
15. wyrażenie warunkowe (format: "if:condition?value_if_true:value_if_false") 15. a ternary operator (format: "if:condition?value_if_true:value_if_false")
16. wynik wyrażenia z nawiasami i operatorami + - * / // % ** (format: "calc:xxx") 16. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
17. opcja (format: plik.sekcja.opcja) 17. an option (format: "file.section.option")
18 zmienna lokalna w buforze 18. a local variable in buffer
19. nazwa hdatay/zmiennej (wartość jest automatycznie konwertowana na ciąg znaków), domyślnie "window" i "buffer" wskazują na aktualne okno/bufor. 19. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer.
Format dla hdata może być jednym z poniższych: Format for hdata can be one of following:
hdata.zmienna1.zmienna2...: inicjuje hdata (wskaźnik musi być znany), następnie wypytuje zmienne jedna po drugiej (inne hdata mogą być następne) hdata.var1.var2...: start with a hdata (pointer must be known), and ask variables one after one (other hdata can be followed)
hdata[list].zmienna1.zmienna2...: inicjuje hdata z wykorzystaniem listy, na przykład: hdata[list].var1.var2...: start with a hdata using a list, for example:
${buffer[gui_buffers].full_name}: pełna nazwa buforu w połączonej liście buforów ${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers
${plugin[weechat_plugins].name}: nazwa pierwszej wtyczki w połączonej liście wtyczek ${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins
hdata[wskaźnik].zmienna1.zmienna2...: zacznij z hdata używając wskaźnika, na przykład: hdata[pointer].var1.var2...: start with a hdata using a pointer, for example:
${buffer[0x1234abcd].full_name}: pełna nazwa buforu z tym wskaźnikiem (może zostać użyte w triggerach) ${buffer[0x1234abcd].full_name}: full name of the buffer with this pointer (can be used in triggers)
Nazwy hdata i zmiennych, można znaleźć w „Opisie API wtyczek”, funkcja "weechat_hdata_get". For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get".
Przykłady (proste ciągi): Examples (simple strings):
/eval -n ${eval_cond:${window.win_width}>100} ==> 1 /eval -n ${eval_cond:${window.win_width}>100} ==> 1
/eval -n ${info:version} ==> 0.4.3 /eval -n ${info:version} ==> 0.4.3
/eval -n ${env:HOME} ==> /home/user /eval -n ${env:HOME} ==> /home/user
/eval -n ${weechat.look.scroll_amount} ==> 3 /eval -n ${weechat.look.scroll_amount} ==> 3
/eval -n ${sec.data.freenode_password} ==> secret /eval -n ${sec.data.freenode_password} ==> secret
/eval -n ${window} ==> 0x2549aa0 /eval -n ${window} ==> 0x2549aa0
/eval -n ${window.buffer} ==> 0x2549320 /eval -n ${window.buffer} ==> 0x2549320
/eval -n ${window.buffer.full_name} ==> core.weechat /eval -n ${window.buffer.full_name} ==> core.weechat
@ -1393,7 +1392,7 @@ Przykłady (proste ciągi):
/eval -n ${base_encode:64,test} ==> dGVzdA== /eval -n ${base_encode:64,test} ==> dGVzdA==
/eval -n ${base_decode:64,dGVzdA==} ==> test /eval -n ${base_decode:64,dGVzdA==} ==> test
Przykłady (warunki): Examples (conditions):
/eval -n -c ${window.buffer.number} > 2 ==> 0 /eval -n -c ${window.buffer.number} > 2 ==> 0
/eval -n -c ${window.win_width} > 100 ==> 1 /eval -n -c ${window.win_width} > 100 ==> 1
/eval -n -c (8 > 12) || (5 > 2) ==> 1 /eval -n -c (8 > 12) || (5 > 2) ==> 1
@ -1403,6 +1402,7 @@ Przykłady (warunki):
/eval -n -c abcd =~ (?-i)^abc ==> 1 /eval -n -c abcd =~ (?-i)^abc ==> 1
/eval -n -c abcd !~ abc ==> 0 /eval -n -c abcd !~ abc ==> 0
/eval -n -c abcd =* a*d ==> 1 /eval -n -c abcd =* a*d ==> 1
/eval -n -c abcd =- bc ==> 1
---- ----
[[command_weechat_filter]] [[command_weechat_filter]]

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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"
@ -1544,7 +1544,7 @@ msgstr "vyhodnotit výraz"
#, fuzzy #, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "[-n|-s] <výraz> || [-n] -c <výraz1> <operátor> <výraz2>" msgstr "[-n|-s] <výraz> || [-n] -c <výraz1> <operátor> <výraz2>"
@ -1552,7 +1552,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-12-21 13:06+0100\n" "PO-Revision-Date: 2020-12-21 13:06+0100\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"
@ -1681,18 +1681,21 @@ msgstr ""
msgid "evaluate expression" msgid "evaluate expression"
msgstr "evaluierter Ausdruck" msgstr "evaluierter Ausdruck"
#, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> "
"<expression2>" "<expression2>"
#, fuzzy
msgid "" msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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"
@ -1574,7 +1574,7 @@ msgid "evaluate expression"
msgstr "" msgstr ""
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
@ -1582,7 +1582,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-12-19 18:18+0100\n" "PO-Revision-Date: 2020-12-31 18:54+0100\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"
@ -1656,17 +1656,18 @@ msgid "evaluate expression"
msgstr "évaluer une expression" msgstr "évaluer une expression"
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <opérateur> " "[-n|-s] [-d [-d]] <expression> || [-n] [-d] -c <expression1> <opérateur> "
"<expression2>" "<expression2>"
msgid "" msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "
@ -1792,7 +1793,8 @@ msgstr ""
" -n : afficher le résultat sans envoyer au tampon (mode debug)\n" " -n : afficher le résultat sans envoyer au tampon (mode debug)\n"
" -s : découper l'expression avant de l'évaluer (plusieurs commandes " " -s : découper l'expression avant de l'évaluer (plusieurs commandes "
"peuvent être séparées par des points-virgules)\n" "peuvent être séparées par des points-virgules)\n"
" -d : afficher la sortie de debug après l'évaluation\n" " -d : afficher la sortie de debug après l'évaluation (avec deux -d : "
"mode debug plus verbeux)\n"
" -c : évaluer comme une condition : utiliser les opérateurs et les " " -c : évaluer comme une condition : utiliser les opérateurs et les "
"parenthèses, retourner une valeur booléenne (\"0\" ou \"1\")\n" "parenthèses, retourner une valeur booléenne (\"0\" ou \"1\")\n"
"expression : expression à évaluer, les variables avec le format ${variable} " "expression : expression à évaluer, les variables avec le format ${variable} "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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"
@ -1462,7 +1462,7 @@ msgid "evaluate expression"
msgstr "" msgstr ""
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
@ -1470,7 +1470,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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"
@ -1555,7 +1555,7 @@ msgstr ""
#, fuzzy #, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
"[-n] <espressione> || [-n] -c <espressione1> <operatore> <espressione2>" "[-n] <espressione> || [-n] -c <espressione1> <operatore> <espressione2>"
@ -1565,7 +1565,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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/"
@ -1613,7 +1613,7 @@ msgstr "式を評価"
#, fuzzy #, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "[-n|-s] <expression> || [-n] -c <expression1> <operator> <expression2>" msgstr "[-n|-s] <expression> || [-n] -c <expression1> <operator> <expression2>"
@ -1622,7 +1622,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-12-27 19:05+0100\n" "PO-Revision-Date: 2020-12-27 19:05+0100\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"
@ -1649,18 +1649,21 @@ msgstr ""
msgid "evaluate expression" msgid "evaluate expression"
msgstr "przetwórz wyrażenie" msgstr "przetwórz wyrażenie"
#, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
"[-n|-s] [-d] <wyrażenie> || [-n] [-d ] -c <wyrażenie1> <operator> " "[-n|-s] [-d] <wyrażenie> || [-n] [-d ] -c <wyrażenie1> <operator> "
"<wyrażenie2>" "<wyrażenie2>"
#, fuzzy
msgid "" msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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"
@ -1615,7 +1615,7 @@ msgstr "avaliar uma expressão"
#, fuzzy #, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "[-n|-s] <expressão> || [-n] -c <expressão1> <operador> <expressão2>" msgstr "[-n|-s] <expressão> || [-n] -c <expressão1> <operador> <expressão2>"
@ -1624,7 +1624,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-18 11:34+0200\n" "PO-Revision-Date: 2020-04-18 11:34+0200\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"
@ -1620,7 +1620,7 @@ msgstr "avaliar expressão"
#, fuzzy #, fuzzy
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "[-n|-s] <expression> || [-n] -c <expression1> <operator> <expression2>" msgstr "[-n|-s] <expression> || [-n] -c <expression1> <operator> <expression2>"
@ -1628,7 +1628,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\n"
"PO-Revision-Date: 2020-04-28 16:40+0200\n" "PO-Revision-Date: 2020-04-28 16:40+0200\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"
@ -1484,7 +1484,7 @@ msgid "evaluate expression"
msgstr "" msgstr ""
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
@ -1492,7 +1492,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\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"
@ -1315,7 +1315,7 @@ msgid "evaluate expression"
msgstr "" msgstr ""
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
@ -1323,7 +1323,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

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-12-19 18:17+0100\n" "POT-Creation-Date: 2020-12-31 18:53+0100\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"
@ -1317,7 +1317,7 @@ msgid "evaluate expression"
msgstr "" msgstr ""
msgid "" msgid ""
"[-n|-s] [-d] <expression> || [-n] [-d] -c <expression1> <operator> " "[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
"<expression2>" "<expression2>"
msgstr "" msgstr ""
@ -1325,7 +1325,8 @@ msgid ""
" -n: display result without sending it to buffer (debug mode)\n" " -n: display result without sending it to buffer (debug mode)\n"
" -s: split expression before evaluating it (many commands can be " " -s: split expression before evaluating it (many commands can be "
"separated by semicolons)\n" "separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation (with two -d: more verbose "
"debug)\n"
" -c: evaluate as condition: use operators and parentheses, return a " " -c: evaluate as condition: use operators and parentheses, return a "
"boolean value (\"0\" or \"1\")\n" "boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format ${variable} are " "expression: expression to evaluate, variables with format ${variable} are "

View File

@ -2023,7 +2023,7 @@ COMMAND_CALLBACK(debug)
COMMAND_CALLBACK(eval) COMMAND_CALLBACK(eval)
{ {
int i, print_only, split_command, condition, debug, error; int i, print_only, split_command, condition, debug, error;
char *result, *ptr_args, **commands; char *result, *ptr_args, **commands, str_debug[32];
const char **debug_output; const char **debug_output;
struct t_hashtable *pointers, *options; struct t_hashtable *pointers, *options;
@ -2060,7 +2060,7 @@ COMMAND_CALLBACK(eval)
} }
else if (string_strcasecmp (argv[i], "-d") == 0) else if (string_strcasecmp (argv[i], "-d") == 0)
{ {
debug = 1; debug++;
ptr_args = argv_eol[i + 1]; ptr_args = argv_eol[i + 1];
} }
else else
@ -2096,8 +2096,11 @@ COMMAND_CALLBACK(eval)
{ {
if (condition) if (condition)
hashtable_set (options, "type", "condition"); hashtable_set (options, "type", "condition");
if (debug) if (debug > 0)
hashtable_set (options, "debug", "1"); {
snprintf (str_debug, sizeof (str_debug), "%d", debug);
hashtable_set (options, "debug", str_debug);
}
} }
} }
@ -7459,12 +7462,13 @@ command_init ()
NULL, "eval", NULL, "eval",
N_("evaluate expression"), N_("evaluate expression"),
N_("[-n|-s] [-d] <expression>" N_("[-n|-s] [-d] <expression>"
" || [-n] [-d] -c <expression1> <operator> <expression2>"), " || [-n] [-d [-d]] -c <expression1> <operator> <expression2>"),
N_(" -n: display result without sending it to buffer " N_(" -n: display result without sending it to buffer "
"(debug mode)\n" "(debug mode)\n"
" -s: split expression before evaluating it " " -s: split expression before evaluating it "
"(many commands can be separated by semicolons)\n" "(many commands can be separated by semicolons)\n"
" -d: display debug output after evaluation\n" " -d: display debug output after evaluation "
"(with two -d: more verbose debug)\n"
" -c: evaluate as condition: use operators and parentheses, " " -c: evaluate as condition: use operators and parentheses, "
"return a boolean value (\"0\" or \"1\")\n" "return a boolean value (\"0\" or \"1\")\n"
"expression: expression to evaluate, variables with format " "expression: expression to evaluate, variables with format "

View File

@ -46,8 +46,8 @@
#include "../plugins/plugin.h" #include "../plugins/plugin.h"
#define EVAL_DEBUG(msg, argz...) \ #define EVAL_DEBUG(level, msg, argz...) \
if (eval_context->debug) \ if (eval_context->debug_level >= level) \
eval_debug_message (eval_context, msg, ##argz); eval_debug_message (eval_context, msg, ##argz);
char *logical_ops[EVAL_NUM_LOGICAL_OPS] = char *logical_ops[EVAL_NUM_LOGICAL_OPS] =
@ -125,7 +125,7 @@ eval_strstr_level (const char *string, const char *search,
int level, length_search; int level, length_search;
int length_prefix, length_prefix2, length_suffix, length_suffix2; int length_prefix, length_prefix2, length_suffix, length_suffix2;
EVAL_DEBUG("eval_strstr_level(\"%s\", \"%s\", \"%s\", \"%s\", %d)", EVAL_DEBUG(2, "eval_strstr_level(\"%s\", \"%s\", \"%s\", \"%s\", %d)",
string, search, extra_prefix, extra_suffix, escape); string, search, extra_prefix, extra_suffix, escape);
if (!string || !search) if (!string || !search)
@ -676,7 +676,7 @@ eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path,
int type; int type;
struct t_hashtable *hashtable; struct t_hashtable *hashtable;
EVAL_DEBUG("eval_hdata_get_value(\"%s\", 0x%lx, \"%s\")", EVAL_DEBUG(1, "eval_hdata_get_value(\"%s\", 0x%lx, \"%s\")",
hdata->name, pointer, path); hdata->name, pointer, path);
value = NULL; value = NULL;
@ -958,7 +958,7 @@ eval_replace_vars_cb (void *data, const char *text)
eval_context = (struct t_eval_context *)data; eval_context = (struct t_eval_context *)data;
EVAL_DEBUG("eval_replace_vars_cb(\"%s\")", text); EVAL_DEBUG(1, "eval_replace_vars_cb(\"%s\")", text);
/* 1. variable in hashtable "extra_vars" */ /* 1. variable in hashtable "extra_vars" */
if (eval_context->extra_vars) if (eval_context->extra_vars)
@ -1148,7 +1148,7 @@ eval_replace_vars (const char *expr, struct t_eval_context *eval_context)
const char *no_replace_prefix_list[] = { "if:", NULL }; const char *no_replace_prefix_list[] = { "if:", NULL };
char *result; char *result;
EVAL_DEBUG("eval_replace_vars(\"%s\")", expr); EVAL_DEBUG(1, "eval_replace_vars(\"%s\")", expr);
eval_context->recursion_count++; eval_context->recursion_count++;
@ -1195,7 +1195,7 @@ eval_compare (const char *expr1, int comparison, const char *expr2,
double value1, value2; double value1, value2;
char *error; char *error;
EVAL_DEBUG("eval_compare(\"%s\", \"%s\", \"%s\")", EVAL_DEBUG(1, "eval_compare(\"%s\", \"%s\", \"%s\")",
expr1, comparisons[comparison], expr2); expr1, comparisons[comparison], expr2);
rc = 0; rc = 0;
@ -1328,7 +1328,7 @@ eval_expression_condition (const char *expr,
const char *pos, *pos_end; const char *pos, *pos_end;
char *expr2, *sub_expr, *value, *tmp_value, *tmp_value2; char *expr2, *sub_expr, *value, *tmp_value, *tmp_value2;
EVAL_DEBUG("eval_expression_condition(\"%s\")", expr); EVAL_DEBUG(1, "eval_expression_condition(\"%s\")", expr);
value = NULL; value = NULL;
@ -1566,7 +1566,7 @@ eval_replace_regex (const char *string, regex_t *regex, const char *replace,
int empty_replace_allowed; int empty_replace_allowed;
struct t_eval_regex eval_regex; struct t_eval_regex eval_regex;
EVAL_DEBUG("eval_replace_regex(\"%s\", 0x%lx, \"%s\")", EVAL_DEBUG(1, "eval_replace_regex(\"%s\", 0x%lx, \"%s\")",
string, regex, replace); string, regex, replace);
if (!string || !regex || !replace) if (!string || !regex || !replace)
@ -1714,7 +1714,8 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
struct t_eval_context context, *eval_context; struct t_eval_context context, *eval_context;
int condition, rc, pointers_allocated, regex_allocated; int condition, rc, pointers_allocated, regex_allocated;
int ptr_window_added, ptr_buffer_added; int ptr_window_added, ptr_buffer_added;
char *value; long number;
char *value, *error;
const char *default_prefix = EVAL_DEFAULT_PREFIX; const char *default_prefix = EVAL_DEFAULT_PREFIX;
const char *default_suffix = EVAL_DEFAULT_SUFFIX; const char *default_suffix = EVAL_DEFAULT_SUFFIX;
const char *ptr_value, *regex_replace; const char *ptr_value, *regex_replace;
@ -1758,6 +1759,7 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
eval_context->suffix = default_suffix; eval_context->suffix = default_suffix;
eval_context->regex = NULL; eval_context->regex = NULL;
eval_context->recursion_count = 0; eval_context->recursion_count = 0;
eval_context->debug_level = 0;
eval_context->debug = NULL; eval_context->debug = NULL;
/* /*
@ -1830,11 +1832,19 @@ eval_expression (const char *expr, struct t_hashtable *pointers,
} }
/* check for debug */ /* check for debug */
if (hashtable_has_key (options, "debug")) ptr_value = hashtable_get (options, "debug");
eval_context->debug = string_dyn_alloc (256); if (ptr_value && ptr_value[0])
{
number = strtol (ptr_value, &error, 10);
if (error && !error[0] && (number >= 1))
{
eval_context->debug_level = (int)number;
eval_context->debug = string_dyn_alloc (256);
}
}
} }
EVAL_DEBUG("eval_expression(\"%s\")", expr); EVAL_DEBUG(1, "eval_expression(\"%s\")", expr);
/* evaluate expression */ /* evaluate expression */
if (condition) if (condition)

View File

@ -71,14 +71,15 @@ struct t_eval_regex
struct t_eval_context struct t_eval_context
{ {
struct t_hashtable *pointers; struct t_hashtable *pointers; /* pointers used in eval */
struct t_hashtable *extra_vars; struct t_hashtable *extra_vars; /* extra variables used in eval */
int extra_vars_eval; int extra_vars_eval; /* 1 if extra vars must be evaluated */
const char *prefix; const char *prefix; /* prefix (default is "${") */
const char *suffix; const char *suffix; /* suffix (default is "}") */
struct t_eval_regex *regex; struct t_eval_regex *regex; /* in case of replace with regex */
int recursion_count; int recursion_count; /* to prevent infinite recursion */
char **debug; int debug_level; /* 0: no debug, 1: debug, 2: extra */
char **debug; /* not NULL if debug_level >= 1 */
}; };
extern int eval_is_true (const char *value); extern int eval_is_true (const char *value);

View File

@ -278,10 +278,25 @@ TEST(CoreEval, EvalCondition)
hashtable_remove (options, "prefix"); hashtable_remove (options, "prefix");
hashtable_remove (options, "suffix"); hashtable_remove (options, "suffix");
/* test with debug */ /* test with debug level 1 */
hashtable_set (options, "debug", "1"); hashtable_set (options, "debug", "1");
WEE_CHECK_EVAL("1", "abc < def"); WEE_CHECK_EVAL("1", "abc < def");
ptr_debug_output = (const char *)hashtable_get (options, "debug_output"); ptr_debug_output = (const char *)hashtable_get (options, "debug_output");
STRCMP_EQUAL("eval_expression(\"abc < def\")\n"
"eval_expression_condition(\"abc < def\")\n"
"eval_expression_condition(\"abc\")\n"
"eval_replace_vars(\"abc\")\n"
"eval_expression_condition(\"def\")\n"
"eval_replace_vars(\"def\")\n"
"eval_compare(\"abc\", \"<\", \"def\")",
ptr_debug_output);
hashtable_remove (options, "debug");
hashtable_remove (options, "debug_output");
/* test with debug level 2 */
hashtable_set (options, "debug", "2");
WEE_CHECK_EVAL("1", "abc < def");
ptr_debug_output = (const char *)hashtable_get (options, "debug_output");
STRCMP_EQUAL("eval_expression(\"abc < def\")\n" STRCMP_EQUAL("eval_expression(\"abc < def\")\n"
"eval_expression_condition(\"abc < def\")\n" "eval_expression_condition(\"abc < def\")\n"
"eval_strstr_level(\"abc < def\", \"||\", \"(\", \")\", 0)\n" "eval_strstr_level(\"abc < def\", \"||\", \"(\", \")\", 0)\n"