From a6826af796c2809681dec21e7d9dcbd9896ffe42 Mon Sep 17 00:00:00 2001 From: Sébastien Helleu Date: Sat, 18 Sep 2021 14:56:25 +0200 Subject: core: add creation of user variables in evaluated expressions with ${define:name,value} --- ChangeLog.adoc | 7 + doc/de/includes/autogen_user_commands.de.adoc | 231 +++++++++++----------- doc/en/includes/autogen_user_commands.en.adoc | 113 +++++------ doc/en/weechat_plugin_api.en.adoc | 17 +- doc/fr/includes/autogen_user_commands.fr.adoc | 113 +++++------ doc/fr/weechat_plugin_api.fr.adoc | 17 +- doc/it/includes/autogen_user_commands.it.adoc | 113 +++++------ doc/it/weechat_plugin_api.it.adoc | 17 +- doc/ja/includes/autogen_user_commands.ja.adoc | 113 +++++------ doc/ja/weechat_plugin_api.ja.adoc | 19 +- doc/pl/includes/autogen_user_commands.pl.adoc | 113 +++++------ doc/sr/includes/autogen_user_commands.sr.adoc | 113 +++++------ doc/sr/weechat_plugin_api.sr.adoc | 19 +- po/cs.po | 115 +++++------ po/de.po | 265 ++++++++++++++++++++------ po/es.po | 115 +++++------ po/fr.po | 233 +++++++++++----------- po/hu.po | 115 +++++------ po/it.po | 115 +++++------ po/ja.po | 115 +++++------ po/pl.po | 115 +++++------ po/pt.po | 115 +++++------ po/pt_BR.po | 115 +++++------ po/ru.po | 115 +++++------ po/sr.po | 115 +++++------ po/tr.po | 115 +++++------ po/weechat.pot | 115 +++++------ src/core/wee-command.c | 113 +++++------ src/core/wee-eval.c | 51 ++++- src/core/wee-eval.h | 1 + tests/unit/core/test-core-eval.cpp | 8 + 31 files changed, 1701 insertions(+), 1355 deletions(-) diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 758a735ec..a57de7dc5 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -15,6 +15,13 @@ https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes] (file _ReleaseNotes.adoc_ in sources). +[[v3.4]] +== Version 3.4 (under dev) + +New features:: + + * api: add user variables in evaluation of expressions with "define:name,value" + [[v3.3]] == Version 3.3 (2021-09-19) diff --git a/doc/de/includes/autogen_user_commands.de.adoc b/doc/de/includes/autogen_user_commands.de.adoc index 2f7cefe70..6e8dc132b 100644 --- a/doc/de/includes/autogen_user_commands.de.adoc +++ b/doc/de/includes/autogen_user_commands.de.adoc @@ -1337,123 +1337,126 @@ infolists: zeigt Information über die Infolists an /eval [-n|-s] [-d] [-n] [-d [-d]] -c - -n: gibt das Ergebnis aus, ohne dass dieses in den Buffer gesendet wird (debug Modus) - -s: teilt Ausdrücke, bevor sie evaluiert werden (mehrere Befehle können durch Semikolon getrennt werden) - -d: eine Debug-Ausgabe nach Auswertung anzeigen (Nutzung von zwei -d: ausführliche Debug-Ausgabe) - -c: Auswertung als Bedingung: nutzt Operatoren und runde Klammern, Rückgabewert als Boolean-Wert ("0" oder "1") -expression: Ausdruck welcher verarbeitet werden soll. Variablen im Format ${variable} werden ersetzt (siehe unten); mehrere Befehle werden durch ein Semikolon voneinander getrennt - operator: ein logischer oder vergleichender Operand: - - logische Operanden: - && boolean "und" - || boolean "oder" - - vergleichende Operanden: - == gleich - != ungleich - <= kleiner oder gleich - < kleiner - >= größer oder gleich - > größer - =~ stimmt mit regulärem POSIX Ausdruck überein - !~ stimmt NICHT mit regulärem POSIX Ausdruck überein - ==* stimmt mit Maske überein (Platzhalter "*" ist erlaubt) - !!* stimmt mit Maske NICHT überein (Platzhalter "*" ist erlaubt) - =* stimmt mit Maske überein, Groß- und Kleinschreibung wird nicht beachtet (Platzhalter "*" ist erlaubt) - !* stimmt mit Maske NICHT überein, Groß- und Kleinschreibung wird nicht beachtet (Platzhalter "*" ist erlaubt) - ==- ist enthalten, Groß- und Kleinschreibung wird beachtet - !!- ist NICHT enthalten, Groß- und Kleinschreibung wird beachtet - =- ist enthalten, Groß- und Kleinschreibung wird nicht beachtet - !- ist NICHT enthalten, Groß- und Kleinschreibung wird nicht beachtet - -Ein Ausdruck gilt als "wahr" sofern das Ergebnis weder NULL, nicht leer und von "0" abweichend ist. -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: - - Integer (Beispiele: 5, -7) - - Fließkommazahl (Beispiele: 5.2, -7.5, 2.83e-2) - - hexadezimale Zahl (Beispiele: 0xA3, -0xA3) -Um einen Vergleich zwischen zwei Zeichenketten zu erzwingen, müssen die Ausdrücke in Anführungszeichen gesetzt werden, zum Beispiel: + -n: display result without sending it to buffer (debug mode) + -s: split expression before evaluating it (many commands can be separated by semicolons) + -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") +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: + - logical operators: + && boolean "and" + || boolean "or" + - comparison operators: + == equal + != not equal + <= less or equal + < less + >= greater or equal + > greater + =~ is matching POSIX extended regex + !~ 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 + +An expression is considered as "true" if it is not NULL, not empty, and different from "0". +The comparison is made using floating point numbers if the two expressions are valid numbers, with one of the following formats: + - integer (examples: 5, -7) + - floating point number (examples: 5.2, -7.5, 2.83e-2) + - hexadecimal number (examples: 0xA3, -0xA3) +To force a string comparison, you can add double quotes around each expression, for example: 50 > 100 ==> 0 "50" > "100" ==> 1 -Einige Variablen werden im Ausdruck mittels der Formatierung ${variable} ersetzt. Mögliche Variablen sind, nach Reihenfolge ihrer Priorität: - 1. die Zeichenfolge selbst ohne Auswertung (Format: "raw:xxx")\n - 2. eine evaluierte Teilzeichenkette (Format: "eval:xxx") - 3. eine evaluierte Bedingung (Format: "eval_cond:xxx") - 4. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx") - 5. Zeichen, die in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette") - 6. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:max,suffix,string" oder "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") - 7. eine Zeichenkette umkehren (Format: "rev:xxx" oder "revscr:xxx") - 8. eine Zeichenkette wiederholen (Format: "repeat:Anzahl,Zeichenkette") - 9. Länge einer Zeichenkette (Format: "length:xxx" oder "lengthscr:xxx") - 10. Aufteilen einer Zeichenkette (Format: "split:Anzahl,Trennzeichen,Flags,xxx") - 11. Aufteilen von Shell-Argumenten (Format: "split_shell:Anzahl,xxx") - 12. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color") - 13. zum modifizieren (Format: "modifier:name,data,string") - 14. eine Info (Format: "Info:Name,Argumente", Argumente sind optional) - 15. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx") - 16. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format") - 17. eine Umgebungsvariable (Format: "env:XXX") - 18. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr") - 19. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx") - 20. eine zufällige ganze Zahl (Format: "random:min,max") - 21. eine übersetzte Zeichenkette (Format: "translate:xxx") - 22. eine Option (Format: "file.section.option") - 23. eine lokale Variable eines Buffers - 24. 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. -Das Format für hdata kann wie folgt aufgebaut sein: - 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[list].var1.var2...: startet hdata mittels einer Liste, zum Beispiel: - ${buffer[gui_buffers].full_name}: der vollständige Name des ersten Buffers, in der verknüpften Liste aller Buffer - ${plugin[weechat_plugins].name}: Name der ersten Erweiterung, in der verknüpften Liste aller Erweiterungen - hdata[pointer].var1.var2...: startet hdata mittels einem Pointer, zum Beispiel: - ${buffer[0x1234abcd].full_name}: vollständiger Name eines Buffers und des dazugehörigen Pointers (kann in triggern benutzt werden) - ${buffer[my_pointer].full_name}: vollständiger Name des Buffers mit dem entsprechenden Pointernamen (kann in Triggern verwendet werden) -Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben - -Beispiele (einfache Zeichenketten): - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> geheim - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Erweiterung - -Beispiele (Bedingungen): - /eval -n -c ${window.buffer.number} > 2 ==> 0 - /eval -n -c ${window.win_width} > 100 ==> 1 - /eval -n -c (8 > 12) || (5 > 2) ==> 1 - /eval -n -c (8 > 12) && (5 > 2) ==> 0 - /eval -n -c abcd =~ ^ABC ==> 1 - /eval -n -c abcd =~ (?-i)^ABC ==> 0 - /eval -n -c abcd =~ (?-i)^abc ==> 1 - /eval -n -c abcd !~ abc ==> 0 - /eval -n -c abcd =* a*d ==> 1 - /eval -n -c abcd =- bc ==> 1 +Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: + 1. the string itself without evaluation (format: "raw:xxx") + 2. a user-defined variable (format: "name") + 3. an evaluated sub-string (format: "eval:xxx") + 4. an evaluated condition (format: "eval_cond:xxx") + 5. a string with escaped chars (format: "esc:xxx" or "\xxx") + 6. a string with chars to hide (format: "hide:char,string") + 7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") + or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string") + 8. a reversed string (format: "rev:xxx" or "revscr:xxx") + 9. a repeated string (format: "repeat:count,string") + 10. length of a string (format: "length:xxx" or "lengthscr:xxx") + 11. split of a string (format: "split:number,separators,flags,xxx") + 12. split of shell argmuents (format: "split_shell:number,xxx") + 13. a color (format: "color:xxx", see "Plugin API reference", function "color") + 14. a modifier (format: "modifier:name,data,string") + 15. an info (format: "info:name,arguments", arguments are optional) + 16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") + 17. current date/time (format: "date" or "date:format") + 18. an environment variable (format: "env:XXX") + 19. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") + 21. a random integer number (format: "random:min,max") + 22. a translated string (format: "translate:xxx") + 23. define a user variable (format: "define:name,value") + 24. an option (format: "file.section.option") + 25. a local variable in buffer + 26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. +Format for hdata can be one of following: + 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...: start with a hdata using a list/pointer/pointer name, for example: + ${buffer[gui_buffers].full_name}: full name of first buffer in linked list of buffers + ${plugin[weechat_plugins].name}: name of first plugin in linked list of plugins + hdata[pointer].var1.var2...: start with a hdata using a pointer, for example: + ${buffer[0x1234abcd].full_name}: full name of the buffer with this pointer (can be used in triggers) + ${buffer[my_pointer].full_name}: full name of the buffer with this pointer name (can be used in triggers) +For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". + +Examples (simple strings): + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 + +Examples (conditions): + /eval -n -c ${window.buffer.number} > 2 ==> 0 + /eval -n -c ${window.win_width} > 100 ==> 1 + /eval -n -c (8 > 12) || (5 > 2) ==> 1 + /eval -n -c (8 > 12) && (5 > 2) ==> 0 + /eval -n -c abcd =~ ^ABC ==> 1 + /eval -n -c abcd =~ (?-i)^ABC ==> 0 + /eval -n -c abcd =~ (?-i)^abc ==> 1 + /eval -n -c abcd !~ abc ==> 0 + /eval -n -c abcd =* a*d ==> 1 + /eval -n -c abcd =- bc ==> 1 ---- [[command_weechat_filter]] diff --git a/doc/en/includes/autogen_user_commands.en.adoc b/doc/en/includes/autogen_user_commands.en.adoc index ec823278c..abe5fbf20 100644 --- a/doc/en/includes/autogen_user_commands.en.adoc +++ b/doc/en/includes/autogen_user_commands.en.adoc @@ -1375,30 +1375,32 @@ To force a string comparison, you can add double quotes around each expression, Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: 1. the string itself without evaluation (format: "raw:xxx") - 2. an evaluated sub-string (format: "eval:xxx") - 3. an evaluated condition (format: "eval_cond:xxx") - 4. a string with escaped chars (format: "esc:xxx" or "\xxx") - 5. a string with chars to hide (format: "hide:char,string") - 6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") + 2. a user-defined variable (format: "name") + 3. an evaluated sub-string (format: "eval:xxx") + 4. an evaluated condition (format: "eval_cond:xxx") + 5. a string with escaped chars (format: "esc:xxx" or "\xxx") + 6. a string with chars to hide (format: "hide:char,string") + 7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string") - 7. a reversed string (format: "rev:xxx" or "revscr:xxx") - 8. a repeated string (format: "repeat:count,string") - 9. length of a string (format: "length:xxx" or "lengthscr:xxx") - 10. split of a string (format: "split:number,separators,flags,xxx") - 11. split of shell argmuents (format: "split_shell:number,xxx") - 12. a color (format: "color:xxx", see "Plugin API reference", function "color") - 13. a modifier (format: "modifier:name,data,string") - 14. an info (format: "info:name,arguments", arguments are optional) - 15. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") - 16. current date/time (format: "date" or "date:format") - 17. an environment variable (format: "env:XXX") - 18. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 19. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") - 20. a random integer number (format: "random:min,max") - 21. a translated string (format: "translate:xxx") - 22. an option (format: "file.section.option") - 23. a local variable in buffer - 24. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 8. a reversed string (format: "rev:xxx" or "revscr:xxx") + 9. a repeated string (format: "repeat:count,string") + 10. length of a string (format: "length:xxx" or "lengthscr:xxx") + 11. split of a string (format: "split:number,separators,flags,xxx") + 12. split of shell argmuents (format: "split_shell:number,xxx") + 13. a color (format: "color:xxx", see "Plugin API reference", function "color") + 14. a modifier (format: "modifier:name,data,string") + 15. an info (format: "info:name,arguments", arguments are optional) + 16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") + 17. current date/time (format: "date" or "date:format") + 18. an environment variable (format: "env:XXX") + 19. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") + 21. a random integer number (format: "random:min,max") + 22. a translated string (format: "translate:xxx") + 23. define a user variable (format: "define:name,value") + 24. an option (format: "file.section.option") + 25. a local variable in buffer + 26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. Format for hdata can be one of following: 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...: start with a hdata using a list/pointer/pointer name, for example: @@ -1410,38 +1412,39 @@ Format for hdata can be one of following: For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". Examples (simple strings): - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> secret - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Extension + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 Examples (conditions): /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/en/weechat_plugin_api.en.adoc b/doc/en/weechat_plugin_api.en.adoc index b155422d4..1c03e17f9 100644 --- a/doc/en/weechat_plugin_api.en.adoc +++ b/doc/en/weechat_plugin_api.en.adoc @@ -2253,7 +2253,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" ==== string_eval_expression _WeeChat ≥ 0.4.0, updated in 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, 2.0, -2.2, 2.3, 2.7, 2.9, 3.1, 3.2 and 3.3._ +2.2, 2.3, 2.7, 2.9, 3.1, 3.2, 3.3 and 3.4._ Evaluate an expression and return result as a string. Special variables with format `+${variable}+` are expanded (see table below). @@ -2574,6 +2574,12 @@ expanded to last): `+${raw:${info:version}}+` | `+${info:version}+` +| `+${name}+` + + _(WeeChat ≥ 3.4)_ | + User variable (defined with `+${define:name,value}+`). | + `+${name}+` | + `+value+` + | `+${name}+` | Variable `name` from hashtable _extra_vars_. | `+${name}+` | @@ -2863,6 +2869,13 @@ expanded to last): `+${translate:Plugin}+` | `+Extension+` (example in French) +| `+${define:name,value}+` + + _(WeeChat ≥ 3.4)_ | + Define a variable `name` set to `value`, which can then be used in the same + evaluated expression with `+${name}+`. | + `+${define:len,${calc:5+3}}${len}x${len}+` | + `+8x8+` + | `+${sec.data.name}+` | Value of the secured data `name`. | `+${sec.data.libera_pass}+` | @@ -2880,7 +2893,7 @@ expanded to last): | `+${pointer}+` | Variable `pointer` from hashtable _pointers_. | - `+${my_pointer}+` | + `+${buffer}+` | `+0x1234abcd+` | `+${hdata.var1.var2...}+` + diff --git a/doc/fr/includes/autogen_user_commands.fr.adoc b/doc/fr/includes/autogen_user_commands.fr.adoc index f8987eb44..dba61e8e2 100644 --- a/doc/fr/includes/autogen_user_commands.fr.adoc +++ b/doc/fr/includes/autogen_user_commands.fr.adoc @@ -1375,30 +1375,32 @@ Pour forcer une comparaison de chaînes, vous pouvez ajouter des guillemets auto Des variables sont remplacées dans l'expression, en utilisant le format ${variable}, la variable pouvant être, par ordre de priorité : 1. la chaîne elle-même sans évaluation (format : "raw:xxx") - 2. une sous-chaîne évaluée (format : "eval:xxx") - 3. une condition évaluée (format : "eval_cond:xxx") - 4. une chaîne avec les caractères échappés (format : "esc:xxx" ou "\xxx") - 5. une chaîne avec des caractères à cacher (format : "hide:caractère,chaîne") - 6. une chaîne avec un maximum de caractères (format : "cut:max,suffixe,chaîne" ou "cut:+max,suffixe,chaîne") + 2. une variable définie par l'utilisateur (format : "nom") + 3. une sous-chaîne évaluée (format : "eval:xxx") + 4. une condition évaluée (format : "eval_cond:xxx") + 5. une chaîne avec les caractères échappés (format : "esc:xxx" ou "\xxx") + 6. une chaîne avec des caractères à cacher (format : "hide:caractère,chaîne") + 7. une chaîne avec un maximum de caractères (format : "cut:max,suffixe,chaîne" ou "cut:+max,suffixe,chaîne") ou un maximum de caractères affichés à l'écran (format : "cutscr:max,suffixe,chaîne" ou "cutscr:+max,suffixe,chaîne") - 7. une chaîne inversée (format : "rev:xxx" ou "revscr:xxx") - 8. une chaîne répétée (format : "repeat:nombre,chaîne") - 9. longueur d'une chaîne (format : "length:xxx" ou "lengthscr:xxx") - 10. découpage d'une chaîne (format : "split:nombre,séparateurs,flags,xxx") - 11. découpage de paramètres shell (format : "split_shell:nombre,xxx") - 12. une couleur (format : "color:xxx", voir la "Référence API extension", fonction "color") - 13. un modificateur (format : "modifier:nom,données,chaîne") - 14. une info (format : "info:nom,paramètres", les paramètres sont optionnels) - 15. une chaîne encodée/decodée en base 16, 32 ou 64 (format : "base_encode:base,xxx" ou "base_decode:base,xxx") - 16. la date/heure courante (format : "date" ou "date:format") - 17. une variable d'environnement (format : "env:XXX") - 18. un opérateur ternaire (format : "if:condition?valeur_si_vrai:valeur_si_faux") - 19. le résultat d'une expression avec parenthèses et les opérateurs + - * / // % ** (format: "calc:xxx") - 20. un nombre entier aléatoire (format : "random:min,max") - 21. une chaîne traduite (format : "translate:xxx") - 22. une option (format : "fichier.section.option") - 23. une variable locale du tampon - 24. un hdata/variable (la valeur est automatiquement convertie en chaîne), par défaut "window" et "buffer" pointent vers la fenêtre et le tampon courants. + 8. une chaîne inversée (format : "rev:xxx" ou "revscr:xxx") + 9. une chaîne répétée (format : "repeat:nombre,chaîne") + 10. longueur d'une chaîne (format : "length:xxx" ou "lengthscr:xxx") + 11. découpage d'une chaîne (format : "split:nombre,séparateurs,flags,xxx") + 12. découpage de paramètres shell (format : "split_shell:nombre,xxx") + 13. une couleur (format : "color:xxx", voir la "Référence API extension", fonction "color") + 14. un modificateur (format : "modifier:nom,données,chaîne") + 15. une info (format : "info:nom,paramètres", les paramètres sont optionnels) + 16. une chaîne encodée/decodée en base 16, 32 ou 64 (format : "base_encode:base,xxx" ou "base_decode:base,xxx") + 17. la date/heure courante (format : "date" ou "date:format") + 18. une variable d'environnement (format : "env:XXX") + 19. un opérateur ternaire (format : "if:condition?valeur_si_vrai:valeur_si_faux") + 20. le résultat d'une expression avec parenthèses et les opérateurs + - * / // % ** (format : "calc:xxx") + 21. un nombre entier aléatoire (format : "random:min,max") + 22. une chaîne traduite (format : "translate:xxx") + 23. déclaration d'une variable utilisateur (format : "define:nom,valeur") + 24. une option (format : "fichier.section.option") + 25. une variable locale du tampon + 26. un hdata/variable (la valeur est automatiquement convertie en chaîne), par défaut "window" et "buffer" pointent vers la fenêtre et le tampon courants. Le format du hdata peut être le suivant : hdata.var1.var2... : démarrer avec un hdata (le pointeur doit être connu), et demander les variables l'une après l'autre (d'autres hdata peuvent être suivis) hdata[liste].var1.var2... : démarrer avec un hdata en utilisant une liste/pointeur/nom de pointeur, par exemple : @@ -1410,38 +1412,39 @@ Le format du hdata peut être le suivant : Pour le nom du hdata et des variables, voir la "Référence API extension", fonction "weechat_hdata_get". Exemples (chaînes simples) : - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> secret - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Extension + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 Exemples (conditions) : /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/fr/weechat_plugin_api.fr.adoc b/doc/fr/weechat_plugin_api.fr.adoc index 48ff7cc11..d5e7032a5 100644 --- a/doc/fr/weechat_plugin_api.fr.adoc +++ b/doc/fr/weechat_plugin_api.fr.adoc @@ -2291,7 +2291,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" ==== string_eval_expression _WeeChat ≥ 0.4.0, mis à jour dans la 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, -2.0, 2.2, 2.3, 2.7, 2.9, 3.1, 3.2 et 3.3._ +2.0, 2.2, 2.3, 2.7, 2.9, 3.1, 3.2, 3.3 et 3.4._ Évaluer l'expression et retourner le résultat sous forme de chaîne. Les variables spéciales avec le format `+${variable}+` sont étendues (voir le @@ -2618,6 +2618,12 @@ première étendue à la dernière) : `+${raw:${info:version}}+` | `+${info:version}+` +| `+${nom}+` + + _(WeeChat ≥ 3.4)_ | + Variable définie par l'utilisateur (avec `+${define:nom,valeur}+`). | + `+${nom}+` | + `+valeur+` + | `+${nom}+` | Variable `nom` de la table de hachage _extra_vars_. | `+${nom}+` | @@ -2910,6 +2916,13 @@ première étendue à la dernière) : `+${translate:Plugin}+` | `+Extension+` (exemple en Français) +| `+${define:nom,valeur}+` + + _(WeeChat ≥ 3.4)_ | + Définir une variable `nom` à `valeur`, qui peut être utilisée dans la même + expression évaluée avec `+${nom}+`. | + `+${define:len,${calc:5+3}}${len}x${len}+` | + `+8x8+` + | `+${sec.data.nom}+` | Valeur de la donnée sécurisée `nom`. | `+${sec.data.libera_pass}+` | @@ -2927,7 +2940,7 @@ première étendue à la dernière) : | `+${pointeur}+` | Variable `pointeur` de la table de hachage _pointers_. | - `+${mon_pointeur}+` | + `+${buffer}+` | `+0x1234abcd+` | `+${hdata.var1.var2...}+` + diff --git a/doc/it/includes/autogen_user_commands.it.adoc b/doc/it/includes/autogen_user_commands.it.adoc index 640109973..1c66492aa 100644 --- a/doc/it/includes/autogen_user_commands.it.adoc +++ b/doc/it/includes/autogen_user_commands.it.adoc @@ -1375,30 +1375,32 @@ To force a string comparison, you can add double quotes around each expression, Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: 1. the string itself without evaluation (format: "raw:xxx") - 2. an evaluated sub-string (format: "eval:xxx") - 3. an evaluated condition (format: "eval_cond:xxx") - 4. a string with escaped chars (format: "esc:xxx" or "\xxx") - 5. a string with chars to hide (format: "hide:char,string") - 6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") + 2. a user-defined variable (format: "name") + 3. an evaluated sub-string (format: "eval:xxx") + 4. an evaluated condition (format: "eval_cond:xxx") + 5. a string with escaped chars (format: "esc:xxx" or "\xxx") + 6. a string with chars to hide (format: "hide:char,string") + 7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string") - 7. a reversed string (format: "rev:xxx" or "revscr:xxx") - 8. a repeated string (format: "repeat:count,string") - 9. length of a string (format: "length:xxx" or "lengthscr:xxx") - 10. split of a string (format: "split:number,separators,flags,xxx") - 11. split of shell argmuents (format: "split_shell:number,xxx") - 12. a color (format: "color:xxx", see "Plugin API reference", function "color") - 13. a modifier (format: "modifier:name,data,string") - 14. an info (format: "info:name,arguments", arguments are optional) - 15. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") - 16. current date/time (format: "date" or "date:format") - 17. an environment variable (format: "env:XXX") - 18. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 19. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") - 20. a random integer number (format: "random:min,max") - 21. a translated string (format: "translate:xxx") - 22. an option (format: "file.section.option") - 23. a local variable in buffer - 24. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 8. a reversed string (format: "rev:xxx" or "revscr:xxx") + 9. a repeated string (format: "repeat:count,string") + 10. length of a string (format: "length:xxx" or "lengthscr:xxx") + 11. split of a string (format: "split:number,separators,flags,xxx") + 12. split of shell argmuents (format: "split_shell:number,xxx") + 13. a color (format: "color:xxx", see "Plugin API reference", function "color") + 14. a modifier (format: "modifier:name,data,string") + 15. an info (format: "info:name,arguments", arguments are optional) + 16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") + 17. current date/time (format: "date" or "date:format") + 18. an environment variable (format: "env:XXX") + 19. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") + 21. a random integer number (format: "random:min,max") + 22. a translated string (format: "translate:xxx") + 23. define a user variable (format: "define:name,value") + 24. an option (format: "file.section.option") + 25. a local variable in buffer + 26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. Format for hdata can be one of following: 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...: start with a hdata using a list/pointer/pointer name, for example: @@ -1410,38 +1412,39 @@ Format for hdata can be one of following: For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". Examples (simple strings): - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> secret - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Extension + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 Examples (conditions): /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/it/weechat_plugin_api.it.adoc b/doc/it/weechat_plugin_api.it.adoc index 1c35f0ed9..4719ae3bc 100644 --- a/doc/it/weechat_plugin_api.it.adoc +++ b/doc/it/weechat_plugin_api.it.adoc @@ -2351,7 +2351,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" ==== string_eval_expression _WeeChat ≥ 0.4.0, updated in 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, 2.0, -2.2, 2.3, 2.7, 2.9, 3.1, 3.2 and 3.3._ +2.2, 2.3, 2.7, 2.9, 3.1, 3.2, 3.3 and 3.4._ Evaluate an expression and return result as a string. Special variables with format `+${variable}+` are expanded (see table below). @@ -2672,6 +2672,12 @@ expanded to last): `+${raw:${info:version}}+` | `+${info:version}+` +| `+${name}+` + + _(WeeChat ≥ 3.4)_ | + User variable (defined with `+${define:name,value}+`). | + `+${name}+` | + `+value+` + | `+${name}+` | Variable `name` from hashtable _extra_vars_. | `+${name}+` | @@ -2960,6 +2966,13 @@ expanded to last): `+${translate:Plugin}+` | `+Extension+` (example in French) +| `+${define:name,value}+` + + _(WeeChat ≥ 3.4)_ | + Define a variable `name` set to `value`, which can then be used in the same + evaluated expression with `+${name}+`. | + `+${define:len,${calc:5+3}}${len}x${len}+` | + `+8x8+` + | `+${sec.data.name}+` | Value of the secured data `name`. | `+${sec.data.libera_pass}+` | @@ -2977,7 +2990,7 @@ expanded to last): | `+${pointer}+` | Variable `pointer` from hashtable _pointers_. | - `+${my_pointer}+` | + `+${buffer}+` | `+0x1234abcd+` | `+${hdata.var1.var2...}+` + diff --git a/doc/ja/includes/autogen_user_commands.ja.adoc b/doc/ja/includes/autogen_user_commands.ja.adoc index f5040b9da..988be618e 100644 --- a/doc/ja/includes/autogen_user_commands.ja.adoc +++ b/doc/ja/includes/autogen_user_commands.ja.adoc @@ -1375,30 +1375,32 @@ To force a string comparison, you can add double quotes around each expression, Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: 1. the string itself without evaluation (format: "raw:xxx") - 2. an evaluated sub-string (format: "eval:xxx") - 3. an evaluated condition (format: "eval_cond:xxx") - 4. a string with escaped chars (format: "esc:xxx" or "\xxx") - 5. a string with chars to hide (format: "hide:char,string") - 6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") + 2. a user-defined variable (format: "name") + 3. an evaluated sub-string (format: "eval:xxx") + 4. an evaluated condition (format: "eval_cond:xxx") + 5. a string with escaped chars (format: "esc:xxx" or "\xxx") + 6. a string with chars to hide (format: "hide:char,string") + 7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string") - 7. a reversed string (format: "rev:xxx" or "revscr:xxx") - 8. a repeated string (format: "repeat:count,string") - 9. length of a string (format: "length:xxx" or "lengthscr:xxx") - 10. split of a string (format: "split:number,separators,flags,xxx") - 11. split of shell argmuents (format: "split_shell:number,xxx") - 12. a color (format: "color:xxx", see "Plugin API reference", function "color") - 13. a modifier (format: "modifier:name,data,string") - 14. an info (format: "info:name,arguments", arguments are optional) - 15. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") - 16. current date/time (format: "date" or "date:format") - 17. an environment variable (format: "env:XXX") - 18. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 19. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") - 20. a random integer number (format: "random:min,max") - 21. a translated string (format: "translate:xxx") - 22. an option (format: "file.section.option") - 23. a local variable in buffer - 24. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 8. a reversed string (format: "rev:xxx" or "revscr:xxx") + 9. a repeated string (format: "repeat:count,string") + 10. length of a string (format: "length:xxx" or "lengthscr:xxx") + 11. split of a string (format: "split:number,separators,flags,xxx") + 12. split of shell argmuents (format: "split_shell:number,xxx") + 13. a color (format: "color:xxx", see "Plugin API reference", function "color") + 14. a modifier (format: "modifier:name,data,string") + 15. an info (format: "info:name,arguments", arguments are optional) + 16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") + 17. current date/time (format: "date" or "date:format") + 18. an environment variable (format: "env:XXX") + 19. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") + 21. a random integer number (format: "random:min,max") + 22. a translated string (format: "translate:xxx") + 23. define a user variable (format: "define:name,value") + 24. an option (format: "file.section.option") + 25. a local variable in buffer + 26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. Format for hdata can be one of following: 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...: start with a hdata using a list/pointer/pointer name, for example: @@ -1410,38 +1412,39 @@ Format for hdata can be one of following: For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". Examples (simple strings): - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> secret - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Extension + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 Examples (conditions): /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/ja/weechat_plugin_api.ja.adoc b/doc/ja/weechat_plugin_api.ja.adoc index a6f1f1439..e14463d1f 100644 --- a/doc/ja/weechat_plugin_api.ja.adoc +++ b/doc/ja/weechat_plugin_api.ja.adoc @@ -2274,7 +2274,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" // TRANSLATION MISSING _WeeChat ≥ 0.4.0, updated in 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, 2.0, -2.2, 2.3, 2.7, 2.9, 3.1, 3.2 and 3.3._ +2.2, 2.3, 2.7, 2.9, 3.1, 3.2, 3.3 and 3.4._ 式を評価して文字列として返す。`+${variable}+` という書式で書かれた特殊変数は展開されます (以下の表を参照)。 @@ -2603,6 +2603,13 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio `+${raw:${info:version}}+` | `+${info:version}+` +// TRANSLATION MISSING +| `+${name}+` + + _(WeeChat ≥ 3.4)_ | + User variable (defined with `+${define:name,value}+`). | + `+${name}+` | + `+value+` + | `+${name}+` | _extra_vars_ の変数 `name` の値に展開 | `+${name}+` | @@ -2907,6 +2914,14 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio `+${translate:Plugin}+` | `+Extension+` (example in French) +// TRANSLATION MISSING +| `+${define:name,value}+` + + _(WeeChat ≥ 3.4)_ | + Define a variable `name` set to `value`, which can then be used in the same + evaluated expression with `+${name}+`. | + `+${define:len,${calc:5+3}}${len}x${len}+` | + `+8x8+` + | `+${sec.data.name}+` | セキュアデータ `name` の値 | `+${sec.data.libera_pass}+` | @@ -2924,7 +2939,7 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio | `+${pointer}+` | _pointers_ の変数 `pointer` の値に展開 | - `+${my_pointer}+` | + `+${buffer}+` | `+0x1234abcd+` // TRANSLATION MISSING diff --git a/doc/pl/includes/autogen_user_commands.pl.adoc b/doc/pl/includes/autogen_user_commands.pl.adoc index fb4416d22..c514e76b9 100644 --- a/doc/pl/includes/autogen_user_commands.pl.adoc +++ b/doc/pl/includes/autogen_user_commands.pl.adoc @@ -1374,30 +1374,32 @@ To force a string comparison, you can add double quotes around each expression, Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: 1. the string itself without evaluation (format: "raw:xxx") - 2. an evaluated sub-string (format: "eval:xxx") - 3. an evaluated condition (format: "eval_cond:xxx") - 4. a string with escaped chars (format: "esc:xxx" or "\xxx") - 5. a string with chars to hide (format: "hide:char,string") - 6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") + 2. a user-defined variable (format: "name") + 3. an evaluated sub-string (format: "eval:xxx") + 4. an evaluated condition (format: "eval_cond:xxx") + 5. a string with escaped chars (format: "esc:xxx" or "\xxx") + 6. a string with chars to hide (format: "hide:char,string") + 7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string") - 7. a reversed string (format: "rev:xxx" or "revscr:xxx") - 8. a repeated string (format: "repeat:count,string") - 9. length of a string (format: "length:xxx" or "lengthscr:xxx") - 10. split of a string (format: "split:number,separators,flags,xxx") - 11. split of shell argmuents (format: "split_shell:number,xxx") - 12. a color (format: "color:xxx", see "Plugin API reference", function "color") - 13. a modifier (format: "modifier:name,data,string") - 14. an info (format: "info:name,arguments", arguments are optional) - 15. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") - 16. current date/time (format: "date" or "date:format") - 17. an environment variable (format: "env:XXX") - 18. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 19. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") - 20. a random integer number (format: "random:min,max") - 21. a translated string (format: "translate:xxx") - 22. an option (format: "file.section.option") - 23. a local variable in buffer - 24. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 8. a reversed string (format: "rev:xxx" or "revscr:xxx") + 9. a repeated string (format: "repeat:count,string") + 10. length of a string (format: "length:xxx" or "lengthscr:xxx") + 11. split of a string (format: "split:number,separators,flags,xxx") + 12. split of shell argmuents (format: "split_shell:number,xxx") + 13. a color (format: "color:xxx", see "Plugin API reference", function "color") + 14. a modifier (format: "modifier:name,data,string") + 15. an info (format: "info:name,arguments", arguments are optional) + 16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") + 17. current date/time (format: "date" or "date:format") + 18. an environment variable (format: "env:XXX") + 19. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") + 21. a random integer number (format: "random:min,max") + 22. a translated string (format: "translate:xxx") + 23. define a user variable (format: "define:name,value") + 24. an option (format: "file.section.option") + 25. a local variable in buffer + 26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. Format for hdata can be one of following: 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...: start with a hdata using a list/pointer/pointer name, for example: @@ -1409,38 +1411,39 @@ Format for hdata can be one of following: For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". Examples (simple strings): - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> secret - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Extension + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 Examples (conditions): /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/sr/includes/autogen_user_commands.sr.adoc b/doc/sr/includes/autogen_user_commands.sr.adoc index e0c84dbfd..5cf00a51e 100644 --- a/doc/sr/includes/autogen_user_commands.sr.adoc +++ b/doc/sr/includes/autogen_user_commands.sr.adoc @@ -1375,30 +1375,32 @@ To force a string comparison, you can add double quotes around each expression, Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: 1. the string itself without evaluation (format: "raw:xxx") - 2. an evaluated sub-string (format: "eval:xxx") - 3. an evaluated condition (format: "eval_cond:xxx") - 4. a string with escaped chars (format: "esc:xxx" or "\xxx") - 5. a string with chars to hide (format: "hide:char,string") - 6. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") + 2. a user-defined variable (format: "name") + 3. an evaluated sub-string (format: "eval:xxx") + 4. an evaluated condition (format: "eval_cond:xxx") + 5. a string with escaped chars (format: "esc:xxx" or "\xxx") + 6. a string with chars to hide (format: "hide:char,string") + 7. a string with max chars (format: "cut:max,suffix,string" or "cut:+max,suffix,string") or max chars displayed on screen (format: "cutscr:max,suffix,string" or "cutscr:+max,suffix,string") - 7. a reversed string (format: "rev:xxx" or "revscr:xxx") - 8. a repeated string (format: "repeat:count,string") - 9. length of a string (format: "length:xxx" or "lengthscr:xxx") - 10. split of a string (format: "split:number,separators,flags,xxx") - 11. split of shell argmuents (format: "split_shell:number,xxx") - 12. a color (format: "color:xxx", see "Plugin API reference", function "color") - 13. a modifier (format: "modifier:name,data,string") - 14. an info (format: "info:name,arguments", arguments are optional) - 15. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") - 16. current date/time (format: "date" or "date:format") - 17. an environment variable (format: "env:XXX") - 18. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 19. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") - 20. a random integer number (format: "random:min,max") - 21. a translated string (format: "translate:xxx") - 22. an option (format: "file.section.option") - 23. a local variable in buffer - 24. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 8. a reversed string (format: "rev:xxx" or "revscr:xxx") + 9. a repeated string (format: "repeat:count,string") + 10. length of a string (format: "length:xxx" or "lengthscr:xxx") + 11. split of a string (format: "split:number,separators,flags,xxx") + 12. split of shell argmuents (format: "split_shell:number,xxx") + 13. a color (format: "color:xxx", see "Plugin API reference", function "color") + 14. a modifier (format: "modifier:name,data,string") + 15. an info (format: "info:name,arguments", arguments are optional) + 16. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx") + 17. current date/time (format: "date" or "date:format") + 18. an environment variable (format: "env:XXX") + 19. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 20. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx") + 21. a random integer number (format: "random:min,max") + 22. a translated string (format: "translate:xxx") + 23. define a user variable (format: "define:name,value") + 24. an option (format: "file.section.option") + 25. a local variable in buffer + 26. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. Format for hdata can be one of following: 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...: start with a hdata using a list/pointer/pointer name, for example: @@ -1410,38 +1412,39 @@ Format for hdata can be one of following: For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". Examples (simple strings): - /eval -n ${raw:${info:version}} ==> ${info:version} - /eval -n ${eval_cond:${window.win_width}>100} ==> 1 - /eval -n ${info:version} ==> 0.4.3 - /eval -n ${env:HOME} ==> /home/user - /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.password} ==> secret - /eval -n ${window} ==> 0x2549aa0 - /eval -n ${window.buffer} ==> 0x2549320 - /eval -n ${window.buffer.full_name} ==> core.weechat - /eval -n ${window.buffer.number} ==> 1 - /eval -n ${\t} ==> - /eval -n ${hide:-,${relay.network.password}} ==> -------- - /eval -n ${cut:3,+,test} ==> tes+ - /eval -n ${cut:+3,+,test} ==> te+ - /eval -n ${date:%H:%M:%S} ==> 07:46:40 - /eval -n ${if:${info:term_width}>80?big:small} ==> big - /eval -n ${rev:Hello} ==> olleH - /eval -n ${repeat:5,-} ==> ----- - /eval -n ${length:test} ==> 4 - /eval -n ${split:1,,,abc,def,ghi} ==> abc - /eval -n ${split:-1,,,abc,def,ghi} ==> ghi - /eval -n ${split:count,,,abc,def,ghi} ==> 3 - /eval -n ${split:random,,,abc,def,ghi} ==> def - /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 - /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 - /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 - /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 - /eval -n ${calc:(5+2)*3} ==> 21 - /eval -n ${random:0,10} ==> 3 - /eval -n ${base_encode:64,test} ==> dGVzdA== - /eval -n ${base_decode:64,dGVzdA==} ==> test - /eval -n ${translate:Plugin} ==> Extension + /eval -n ${raw:${info:version}} ==> ${info:version} + /eval -n ${eval_cond:${window.win_width}>100} ==> 1 + /eval -n ${info:version} ==> 0.4.3 + /eval -n ${env:HOME} ==> /home/user + /eval -n ${weechat.look.scroll_amount} ==> 3 + /eval -n ${sec.data.password} ==> secret + /eval -n ${window} ==> 0x2549aa0 + /eval -n ${window.buffer} ==> 0x2549320 + /eval -n ${window.buffer.full_name} ==> core.weechat + /eval -n ${window.buffer.number} ==> 1 + /eval -n ${\t} ==> + /eval -n ${hide:-,${relay.network.password}} ==> -------- + /eval -n ${cut:3,+,test} ==> tes+ + /eval -n ${cut:+3,+,test} ==> te+ + /eval -n ${date:%H:%M:%S} ==> 07:46:40 + /eval -n ${if:${info:term_width}>80?big:small} ==> big + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${length:test} ==> 4 + /eval -n ${split:1,,,abc,def,ghi} ==> abc + /eval -n ${split:-1,,,abc,def,ghi} ==> ghi + /eval -n ${split:count,,,abc,def,ghi} ==> 3 + /eval -n ${split:random,,,abc,def,ghi} ==> def + /eval -n ${split_shell:1,"arg 1" arg2} ==> arg 1 + /eval -n ${split_shell:-1,"arg 1" arg2} ==> arg2 + /eval -n ${split_shell:count,"arg 1" arg2} ==> 2 + /eval -n ${split_shell:random,"arg 1" arg2} ==> arg2 + /eval -n ${calc:(5+2)*3} ==> 21 + /eval -n ${random:0,10} ==> 3 + /eval -n ${base_encode:64,test} ==> dGVzdA== + /eval -n ${base_decode:64,dGVzdA==} ==> test + /eval -n ${translate:Plugin} ==> Extension + /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8 Examples (conditions): /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/sr/weechat_plugin_api.sr.adoc b/doc/sr/weechat_plugin_api.sr.adoc index 1146dbaa2..0d324de14 100644 --- a/doc/sr/weechat_plugin_api.sr.adoc +++ b/doc/sr/weechat_plugin_api.sr.adoc @@ -2159,7 +2159,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" ==== string_eval_expression -_WeeChat ≥ 0.4.0, ажурирано у верзијама 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, 2.0, 2.2, 2.3, 2.7, 2.9, 3.1, 3.2 и 3.3._ +_WeeChat ≥ 0.4.0, ажурирано у верзијама 0.4.2, 0.4.3, 1.0, 1.1, 1.2, 1.3, 1.6, 1.8, 2.0, 2.2, 2.3, 2.7, 2.9, 3.1, 3.2, 3.3 и 3.4._ Израчунава израз и враћа вредност као стринг. Специјалне променљиве у формату `+${променљива}+` се развијају (погледајте табелу испод). @@ -2457,6 +2457,13 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio `+${raw:${info:version}}+` | `+${info:version}+` +// TRANSLATION MISSING +| `+${name}+` + + _(WeeChat ≥ 3.4)_ | + User variable (defined with `+${define:name,value}+`). | + `+${name}+` | + `+value+` + | `+${име}+` | Променљива `name` из хеш табеле _extra_vars_. | `+${име}+` | @@ -2748,6 +2755,14 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio `+${translate:Plugin}+` | `+Extension+` (пример из француског) +// TRANSLATION MISSING +| `+${define:name,value}+` + + _(WeeChat ≥ 3.4)_ | + Define a variable `name` set to `value`, which can then be used in the same + evaluated expression with `+${name}+`. | + `+${define:len,${calc:5+3}}${len}x${len}+` | + `+8x8+` + | `+${sec.data.име}+` | Вредност обезбеђених података `име`. | `+${sec.data.libera_pass}+` | @@ -2765,7 +2780,7 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio | `+${pointer}+` | Променљива `pointer` из хеш табеле _pointers_. | - `+${my_pointer}+` | + `+${buffer}+` | `+0x1234abcd+` | `+${hdata.пром1.пром2...}+` + diff --git a/po/cs.po b/po/cs.po index 44d9ae629..7c9557476 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -1599,36 +1599,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1650,38 +1652,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/de.po b/po/de.po index 994a76aa1..e40b6a0fc 100644 --- a/po/de.po +++ b/po/de.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-09-10 09:56+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -1689,6 +1689,153 @@ msgstr "" "[-n|-s] [-d] || [-n] [-d [-d]] -c " "" +#, fuzzy +#| msgid "" +#| " -n: display result without sending it to buffer (debug mode)\n" +#| " -s: split expression before evaluating it (many commands can be " +#| "separated by semicolons)\n" +#| " -d: display debug output after evaluation (with two -d: more " +#| "verbose debug)\n" +#| " -c: evaluate as condition: use operators and parentheses, return " +#| "a boolean value (\"0\" or \"1\")\n" +#| "expression: expression to evaluate, variables with format ${variable} are " +#| "replaced (see below); many commands can be separated by semicolons\n" +#| " operator: a logical or comparison operator:\n" +#| " - logical operators:\n" +#| " && boolean \"and\"\n" +#| " || boolean \"or\"\n" +#| " - comparison operators:\n" +#| " == equal\n" +#| " != not equal\n" +#| " <= less or equal\n" +#| " < less\n" +#| " >= greater or equal\n" +#| " > greater\n" +#| " =~ is matching POSIX extended regex\n" +#| " !~ is NOT matching POSIX extended regex\n" +#| " ==* is matching mask, case sensitive (wildcard \"*\" is " +#| "allowed)\n" +#| " !!* is NOT matching mask, case sensitive (wildcard \"*\" " +#| "is allowed)\n" +#| " =* is matching mask, case insensitive (wildcard \"*\" " +#| "is allowed)\n" +#| " !* is NOT matching mask, case insensitive (wildcard \"*" +#| "\" is allowed)\n" +#| " ==- is included, case sensitive\n" +#| " !!- is NOT included, case sensitive\n" +#| " =- is included, case insensitive\n" +#| " !- is NOT included, case insensitive\n" +#| "\n" +#| "An expression is considered as \"true\" if it is not NULL, not empty, and " +#| "different from \"0\".\n" +#| "The comparison is made using floating point numbers if the two " +#| "expressions are valid numbers, with one of the following formats:\n" +#| " - integer (examples: 5, -7)\n" +#| " - floating point number (examples: 5.2, -7.5, 2.83e-2)\n" +#| " - hexadecimal number (examples: 0xA3, -0xA3)\n" +#| "To force a string comparison, you can add double quotes around each " +#| "expression, for example:\n" +#| " 50 > 100 ==> 0\n" +#| " \"50\" > \"100\" ==> 1\n" +#| "\n" +#| "Some variables are replaced in expression, using the format ${variable}, " +#| "variable can be, by order of priority:\n" +#| " 1. the string itself without evaluation (format: \"raw:xxx\")\n" +#| " 2. an evaluated sub-string (format: \"eval:xxx\")\n" +#| " 3. an evaluated condition (format: \"eval_cond:xxx\")\n" +#| " 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +#| " 5. a string with chars to hide (format: \"hide:char,string\")\n" +#| " 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +#| "+max,suffix,string\")\n" +#| " or max chars displayed on screen (format: \"cutscr:max,suffix,string" +#| "\" or \"cutscr:+max,suffix,string\")\n" +#| " 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +#| " 8. a repeated string (format: \"repeat:count,string\")\n" +#| " 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +#| " 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" +#| " 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +#| " 12. a color (format: \"color:xxx\", see \"Plugin API reference\", " +#| "function \"color\")\n" +#| " 13. a modifier (format: \"modifier:name,data,string\")\n" +#| " 14. an info (format: \"info:name,arguments\", arguments are optional)\n" +#| " 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base," +#| "xxx\" or \"base_decode:base,xxx\")\n" +#| " 16. current date/time (format: \"date\" or \"date:format\")\n" +#| " 17. an environment variable (format: \"env:XXX\")\n" +#| " 18. a ternary operator (format: \"if:condition?value_if_true:" +#| "value_if_false\")\n" +#| " 19. result of an expression with parentheses and operators + - * / // % " +#| "** (format: \"calc:xxx\")\n" +#| " 20. a random integer number (format: \"random:min,max\")\n" +#| " 21. a translated string (format: \"translate:xxx\")\n" +#| " 22. an option (format: \"file.section.option\")\n" +#| " 23. a local variable in buffer\n" +#| " 24. a hdata name/variable (the value is automatically converted to " +#| "string), by default \"window\" and \"buffer\" point to current window/" +#| "buffer.\n" +#| "Format for hdata can be one of following:\n" +#| " hdata.var1.var2...: start with a hdata (pointer must be known), and ask " +#| "variables one after one (other hdata can be followed)\n" +#| " hdata[list].var1.var2...: start with a hdata using a list/pointer/" +#| "pointer name, for example:\n" +#| " ${buffer[gui_buffers].full_name}: full name of first buffer in linked " +#| "list of buffers\n" +#| " ${plugin[weechat_plugins].name}: name of first plugin in linked list " +#| "of plugins\n" +#| " hdata[pointer].var1.var2...: start with a hdata using a pointer, for " +#| "example:\n" +#| " ${buffer[0x1234abcd].full_name}: full name of the buffer with this " +#| "pointer (can be used in triggers)\n" +#| " ${buffer[my_pointer].full_name}: full name of the buffer with this " +#| "pointer name (can be used in triggers)\n" +#| "For name of hdata and variables, please look at \"Plugin API reference\", " +#| "function \"weechat_hdata_get\".\n" +#| "\n" +#| "Examples (simple strings):\n" +#| " /eval -n ${raw:${info:version}} ==> ${info:version}\n" +#| " /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +#| " /eval -n ${info:version} ==> 0.4.3\n" +#| " /eval -n ${env:HOME} ==> /home/user\n" +#| " /eval -n ${weechat.look.scroll_amount} ==> 3\n" +#| " /eval -n ${sec.data.password} ==> secret\n" +#| " /eval -n ${window} ==> 0x2549aa0\n" +#| " /eval -n ${window.buffer} ==> 0x2549320\n" +#| " /eval -n ${window.buffer.full_name} ==> core.weechat\n" +#| " /eval -n ${window.buffer.number} ==> 1\n" +#| " /eval -n ${\\t} ==> \n" +#| " /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +#| " /eval -n ${cut:3,+,test} ==> tes+\n" +#| " /eval -n ${cut:+3,+,test} ==> te+\n" +#| " /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +#| " /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +#| " /eval -n ${rev:Hello} ==> olleH\n" +#| " /eval -n ${repeat:5,-} ==> -----\n" +#| " /eval -n ${length:test} ==> 4\n" +#| " /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +#| " /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +#| " /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +#| " /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +#| " /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +#| " /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +#| " /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +#| " /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +#| " /eval -n ${calc:(5+2)*3} ==> 21\n" +#| " /eval -n ${random:0,10} ==> 3\n" +#| " /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +#| " /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +#| " /eval -n ${translate:Plugin} ==> Extension\n" +#| "\n" +#| "Examples (conditions):\n" +#| " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" +#| " /eval -n -c ${window.win_width} > 100 ==> 1\n" +#| " /eval -n -c (8 > 12) || (5 > 2) ==> 1\n" +#| " /eval -n -c (8 > 12) && (5 > 2) ==> 0\n" +#| " /eval -n -c abcd =~ ^ABC ==> 1\n" +#| " /eval -n -c abcd =~ (?-i)^ABC ==> 0\n" +#| " /eval -n -c abcd =~ (?-i)^abc ==> 1\n" +#| " /eval -n -c abcd !~ abc ==> 0\n" +#| " /eval -n -c abcd =* a*d ==> 1\n" +#| " /eval -n -c abcd =- bc ==> 1" msgid "" " -n: display result without sending it to buffer (debug mode)\n" " -s: split expression before evaluating it (many commands can be " @@ -1740,36 +1887,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1791,38 +1940,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" @@ -2629,9 +2779,6 @@ msgstr "" msgid "list/load/unload plugins" msgstr "Erweiterungen verwalten (auflisten/installieren/beenden)" -#| msgid "" -#| "list|listfull [] || load [] || autoload " -#| "[] || reload [|* []] || unload []" msgid "" "list [-o|-ol|-i|-il|] || listfull [] || load " "[] || autoload [] || reload [|* []] " diff --git a/po/es.po b/po/es.po index 271b801ac..fa7272b8b 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -1627,36 +1627,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1678,38 +1680,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/fr.po b/po/fr.po index 95c729bc7..d943cded8 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: 2021-09-09 21:07+0200\n" -"PO-Revision-Date: 2021-09-09 21:13+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" +"PO-Revision-Date: 2021-09-20 21:13+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -1713,36 +1713,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1764,38 +1766,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" @@ -1861,40 +1864,43 @@ msgstr "" "Des variables sont remplacées dans l'expression, en utilisant le format " "${variable}, la variable pouvant être, par ordre de priorité :\n" " 1. la chaîne elle-même sans évaluation (format : \"raw:xxx\")\n" -" 2. une sous-chaîne évaluée (format : \"eval:xxx\")\n" -" 3. une condition évaluée (format : \"eval_cond:xxx\")\n" -" 4. une chaîne avec les caractères échappés (format : \"esc:xxx\" ou \"\\xxx" +" 2. une variable définie par l'utilisateur (format : \"nom\")\n" +" 3. une sous-chaîne évaluée (format : \"eval:xxx\")\n" +" 4. une condition évaluée (format : \"eval_cond:xxx\")\n" +" 5. une chaîne avec les caractères échappés (format : \"esc:xxx\" ou \"\\xxx" "\")\n" -" 5. une chaîne avec des caractères à cacher (format : \"hide:caractère," +" 6. une chaîne avec des caractères à cacher (format : \"hide:caractère," "chaîne\")\n" -" 6. une chaîne avec un maximum de caractères (format : \"cut:max,suffixe," +" 7. une chaîne avec un maximum de caractères (format : \"cut:max,suffixe," "chaîne\" ou \"cut:+max,suffixe,chaîne\")\n" " ou un maximum de caractères affichés à l'écran (format : \"cutscr:max," "suffixe,chaîne\" ou \"cutscr:+max,suffixe,chaîne\")\n" -" 7. une chaîne inversée (format : \"rev:xxx\" ou \"revscr:xxx\")\n" -" 8. une chaîne répétée (format : \"repeat:nombre,chaîne\")\n" -" 9. longueur d'une chaîne (format : \"length:xxx\" ou \"lengthscr:xxx\")\n" -" 10. découpage d'une chaîne (format : \"split:nombre,séparateurs,flags,xxx" +" 8. une chaîne inversée (format : \"rev:xxx\" ou \"revscr:xxx\")\n" +" 9. une chaîne répétée (format : \"repeat:nombre,chaîne\")\n" +" 10. longueur d'une chaîne (format : \"length:xxx\" ou \"lengthscr:xxx\")\n" +" 11. découpage d'une chaîne (format : \"split:nombre,séparateurs,flags,xxx" "\")\n" -" 11. découpage de paramètres shell (format : \"split_shell:nombre,xxx\")\n" -" 12. une couleur (format : \"color:xxx\", voir la \"Référence API extension" +" 12. découpage de paramètres shell (format : \"split_shell:nombre,xxx\")\n" +" 13. une couleur (format : \"color:xxx\", voir la \"Référence API extension" "\", fonction \"color\")\n" -" 13. un modificateur (format : \"modifier:nom,données,chaîne\")\n" -" 14. une info (format : \"info:nom,paramètres\", les paramètres sont " +" 14. un modificateur (format : \"modifier:nom,données,chaîne\")\n" +" 15. une info (format : \"info:nom,paramètres\", les paramètres sont " "optionnels)\n" -" 15. une chaîne encodée/decodée en base 16, 32 ou 64 (format : " +" 16. une chaîne encodée/decodée en base 16, 32 ou 64 (format : " "\"base_encode:base,xxx\" ou \"base_decode:base,xxx\")\n" -" 16. la date/heure courante (format : \"date\" ou \"date:format\")\n" -" 17. une variable d'environnement (format : \"env:XXX\")\n" -" 18. un opérateur ternaire (format : \"if:condition?valeur_si_vrai:" +" 17. la date/heure courante (format : \"date\" ou \"date:format\")\n" +" 18. une variable d'environnement (format : \"env:XXX\")\n" +" 19. un opérateur ternaire (format : \"if:condition?valeur_si_vrai:" "valeur_si_faux\")\n" -" 19. le résultat d'une expression avec parenthèses et les opérateurs + - " -"* / // % ** (format: \"calc:xxx\")\n" -" 20. un nombre entier aléatoire (format : \"random:min,max\")\n" -" 21. une chaîne traduite (format : \"translate:xxx\")\n" -" 22. une option (format : \"fichier.section.option\")\n" -" 23. une variable locale du tampon\n" -" 24. un hdata/variable (la valeur est automatiquement convertie en chaîne), " +" 20. le résultat d'une expression avec parenthèses et les opérateurs + - " +"* / // % ** (format : \"calc:xxx\")\n" +" 21. un nombre entier aléatoire (format : \"random:min,max\")\n" +" 22. une chaîne traduite (format : \"translate:xxx\")\n" +" 23. déclaration d'une variable utilisateur (format : \"define:nom,valeur" +"\")\n" +" 24. une option (format : \"fichier.section.option\")\n" +" 25. une variable locale du tampon\n" +" 26. un hdata/variable (la valeur est automatiquement convertie en chaîne), " "par défaut \"window\" et \"buffer\" pointent vers la fenêtre et le tampon " "courants.\n" "Le format du hdata peut être le suivant :\n" @@ -1917,38 +1923,39 @@ msgstr "" "fonction \"weechat_hdata_get\".\n" "\n" "Exemples (chaînes simples) :\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Exemples (conditions) :\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/hu.po b/po/hu.po index 7470d5695..4227a63b9 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -1513,36 +1513,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1564,38 +1566,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/it.po b/po/it.po index 4cfbdc4a2..d9ee49c3f 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -1610,36 +1610,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1661,38 +1663,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/ja.po b/po/ja.po index 1fedb02f0..545240771 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/pl.po b/po/pl.po index ffdada94f..e1a961fd6 100644 --- a/po/pl.po +++ b/po/pl.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish \n" @@ -1844,36 +1844,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1895,38 +1897,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/pt.po b/po/pt.po index 0f93607b3..1806f9f3f 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -1698,36 +1698,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1749,38 +1751,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 140cd0d64..7d3e706fd 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Érico Nogueira \n" "Language-Team: weechat-dev \n" @@ -1673,36 +1673,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1724,38 +1726,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/ru.po b/po/ru.po index 550c63e26..4319365be 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -1536,36 +1536,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1587,38 +1589,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/sr.po b/po/sr.po index 04e9e172c..dce60e84a 100644 --- a/po/sr.po +++ b/po/sr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-09-01 02:38+0400\n" "Last-Translator: Ivan Pešić \n" "Language-Team: weechat-dev \n" @@ -1831,36 +1831,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1882,38 +1884,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/tr.po b/po/tr.po index d08392101..087366d61 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2021-07-10 16:01+0200\n" "Last-Translator: Emir SARI \n" "Language-Team: weechat-dev \n" @@ -1683,36 +1683,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1734,38 +1736,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/po/weechat.pot b/po/weechat.pot index 911b5a973..f2a445dc8 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: 2021-09-09 21:07+0200\n" +"POT-Creation-Date: 2021-09-20 21:12+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -1369,36 +1369,38 @@ msgid "" "Some variables are replaced in expression, using the format ${variable}, " "variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" -" 2. an evaluated sub-string (format: \"eval:xxx\")\n" -" 3. an evaluated condition (format: \"eval_cond:xxx\")\n" -" 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" -" 5. a string with chars to hide (format: \"hide:char,string\")\n" -" 6. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" +" 2. a user-defined variable (format: \"name\")\n" +" 3. an evaluated sub-string (format: \"eval:xxx\")\n" +" 4. an evaluated condition (format: \"eval_cond:xxx\")\n" +" 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" +" 6. a string with chars to hide (format: \"hide:char,string\")\n" +" 7. a string with max chars (format: \"cut:max,suffix,string\" or \"cut:" "+max,suffix,string\")\n" " or max chars displayed on screen (format: \"cutscr:max,suffix,string\" " "or \"cutscr:+max,suffix,string\")\n" -" 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" -" 8. a repeated string (format: \"repeat:count,string\")\n" -" 9. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" -" 10. split of a string (format: \"split:number,separators,flags,xxx\")\n" -" 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" -" 12. a color (format: \"color:xxx\", see \"Plugin API reference\", function " +" 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" +" 9. a repeated string (format: \"repeat:count,string\")\n" +" 10. length of a string (format: \"length:xxx\" or \"lengthscr:xxx\")\n" +" 11. split of a string (format: \"split:number,separators,flags,xxx\")\n" +" 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" +" 13. a color (format: \"color:xxx\", see \"Plugin API reference\", function " "\"color\")\n" -" 13. a modifier (format: \"modifier:name,data,string\")\n" -" 14. an info (format: \"info:name,arguments\", arguments are optional)\n" -" 15. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" +" 14. a modifier (format: \"modifier:name,data,string\")\n" +" 15. an info (format: \"info:name,arguments\", arguments are optional)\n" +" 16. a base 16/32/64 encoded/decoded string (format: \"base_encode:base,xxx" "\" or \"base_decode:base,xxx\")\n" -" 16. current date/time (format: \"date\" or \"date:format\")\n" -" 17. an environment variable (format: \"env:XXX\")\n" -" 18. a ternary operator (format: \"if:condition?value_if_true:value_if_false" +" 17. current date/time (format: \"date\" or \"date:format\")\n" +" 18. an environment variable (format: \"env:XXX\")\n" +" 19. a ternary operator (format: \"if:condition?value_if_true:value_if_false" "\")\n" -" 19. result of an expression with parentheses and operators + - * / // % ** " +" 20. result of an expression with parentheses and operators + - * / // % ** " "(format: \"calc:xxx\")\n" -" 20. a random integer number (format: \"random:min,max\")\n" -" 21. a translated string (format: \"translate:xxx\")\n" -" 22. an option (format: \"file.section.option\")\n" -" 23. a local variable in buffer\n" -" 24. a hdata name/variable (the value is automatically converted to " +" 21. a random integer number (format: \"random:min,max\")\n" +" 22. a translated string (format: \"translate:xxx\")\n" +" 23. define a user variable (format: \"define:name,value\")\n" +" 24. an option (format: \"file.section.option\")\n" +" 25. a local variable in buffer\n" +" 26. a hdata name/variable (the value is automatically converted to " "string), by default \"window\" and \"buffer\" point to current window/" "buffer.\n" "Format for hdata can be one of following:\n" @@ -1420,38 +1422,39 @@ msgid "" "function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" -" /eval -n ${raw:${info:version}} ==> ${info:version}\n" -" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" -" /eval -n ${info:version} ==> 0.4.3\n" -" /eval -n ${env:HOME} ==> /home/user\n" -" /eval -n ${weechat.look.scroll_amount} ==> 3\n" -" /eval -n ${sec.data.password} ==> secret\n" -" /eval -n ${window} ==> 0x2549aa0\n" -" /eval -n ${window.buffer} ==> 0x2549320\n" -" /eval -n ${window.buffer.full_name} ==> core.weechat\n" -" /eval -n ${window.buffer.number} ==> 1\n" -" /eval -n ${\\t} ==> \n" -" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" -" /eval -n ${cut:3,+,test} ==> tes+\n" -" /eval -n ${cut:+3,+,test} ==> te+\n" -" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" -" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" -" /eval -n ${rev:Hello} ==> olleH\n" -" /eval -n ${repeat:5,-} ==> -----\n" -" /eval -n ${length:test} ==> 4\n" -" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" -" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" -" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" -" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" -" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" -" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" -" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" -" /eval -n ${calc:(5+2)*3} ==> 21\n" -" /eval -n ${random:0,10} ==> 3\n" -" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" -" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" -" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${raw:${info:version}} ==> ${info:version}\n" +" /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" +" /eval -n ${info:version} ==> 0.4.3\n" +" /eval -n ${env:HOME} ==> /home/user\n" +" /eval -n ${weechat.look.scroll_amount} ==> 3\n" +" /eval -n ${sec.data.password} ==> secret\n" +" /eval -n ${window} ==> 0x2549aa0\n" +" /eval -n ${window.buffer} ==> 0x2549320\n" +" /eval -n ${window.buffer.full_name} ==> core.weechat\n" +" /eval -n ${window.buffer.number} ==> 1\n" +" /eval -n ${\\t} ==> \n" +" /eval -n ${hide:-,${relay.network.password}} ==> --------\n" +" /eval -n ${cut:3,+,test} ==> tes+\n" +" /eval -n ${cut:+3,+,test} ==> te+\n" +" /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" +" /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" +" /eval -n ${rev:Hello} ==> olleH\n" +" /eval -n ${repeat:5,-} ==> -----\n" +" /eval -n ${length:test} ==> 4\n" +" /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" +" /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" +" /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" +" /eval -n ${split:random,,,abc,def,ghi} ==> def\n" +" /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" +" /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" +" /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" +" /eval -n ${calc:(5+2)*3} ==> 21\n" +" /eval -n ${random:0,10} ==> 3\n" +" /eval -n ${base_encode:64,test} ==> dGVzdA==\n" +" /eval -n ${base_decode:64,dGVzdA==} ==> test\n" +" /eval -n ${translate:Plugin} ==> Extension\n" +" /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/src/core/wee-command.c b/src/core/wee-command.c index a4ae9d15a..71ff892d7 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -7658,40 +7658,42 @@ command_init () "Some variables are replaced in expression, using the format " "${variable}, variable can be, by order of priority:\n" " 1. the string itself without evaluation (format: \"raw:xxx\")\n" - " 2. an evaluated sub-string (format: \"eval:xxx\")\n" - " 3. an evaluated condition (format: \"eval_cond:xxx\")\n" - " 4. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" - " 5. a string with chars to hide (format: \"hide:char,string\")\n" - " 6. a string with max chars (format: \"cut:max,suffix,string\" " + " 2. a user-defined variable (format: \"name\")\n" + " 3. an evaluated sub-string (format: \"eval:xxx\")\n" + " 4. an evaluated condition (format: \"eval_cond:xxx\")\n" + " 5. a string with escaped chars (format: \"esc:xxx\" or \"\\xxx\")\n" + " 6. a string with chars to hide (format: \"hide:char,string\")\n" + " 7. a string with max chars (format: \"cut:max,suffix,string\" " "or \"cut:+max,suffix,string\")\n" " or max chars displayed on screen " "(format: \"cutscr:max,suffix,string\" or " "\"cutscr:+max,suffix,string\")\n" - " 7. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" - " 8. a repeated string (format: \"repeat:count,string\")\n" - " 9. length of a string (format: \"length:xxx\" or " + " 8. a reversed string (format: \"rev:xxx\" or \"revscr:xxx\")\n" + " 9. a repeated string (format: \"repeat:count,string\")\n" + " 10. length of a string (format: \"length:xxx\" or " "\"lengthscr:xxx\")\n" - " 10. split of a string (format: " + " 11. split of a string (format: " "\"split:number,separators,flags,xxx\")\n" - " 11. split of shell argmuents (format: \"split_shell:number,xxx\")\n" - " 12. a color (format: \"color:xxx\", see \"Plugin API " + " 12. split of shell argmuents (format: \"split_shell:number,xxx\")\n" + " 13. a color (format: \"color:xxx\", see \"Plugin API " "reference\", function \"color\")\n" - " 13. a modifier (format: \"modifier:name,data,string\")\n" - " 14. an info (format: \"info:name,arguments\", arguments are " + " 14. a modifier (format: \"modifier:name,data,string\")\n" + " 15. an info (format: \"info:name,arguments\", arguments are " "optional)\n" - " 15. a base 16/32/64 encoded/decoded string (format: " + " 16. a base 16/32/64 encoded/decoded string (format: " "\"base_encode:base,xxx\" or \"base_decode:base,xxx\")\n" - " 16. current date/time (format: \"date\" or \"date:format\")\n" - " 17. an environment variable (format: \"env:XXX\")\n" - " 18. a ternary operator (format: " + " 17. current date/time (format: \"date\" or \"date:format\")\n" + " 18. an environment variable (format: \"env:XXX\")\n" + " 19. a ternary operator (format: " "\"if:condition?value_if_true:value_if_false\")\n" - " 19. result of an expression with parentheses and operators " + " 20. result of an expression with parentheses and operators " "+ - * / // % ** (format: \"calc:xxx\")\n" - " 20. a random integer number (format: \"random:min,max\")\n" - " 21. a translated string (format: \"translate:xxx\")\n" - " 22. an option (format: \"file.section.option\")\n" - " 23. a local variable in buffer\n" - " 24. a hdata name/variable (the value is automatically converted " + " 21. a random integer number (format: \"random:min,max\")\n" + " 22. a translated string (format: \"translate:xxx\")\n" + " 23. define a user variable (format: \"define:name,value\")\n" + " 24. an option (format: \"file.section.option\")\n" + " 25. a local variable in buffer\n" + " 26. a hdata name/variable (the value is automatically converted " "to string), by default \"window\" and \"buffer\" point to current " "window/buffer.\n" "Format for hdata can be one of following:\n" @@ -7713,38 +7715,39 @@ command_init () "reference\", function \"weechat_hdata_get\".\n" "\n" "Examples (simple strings):\n" - " /eval -n ${raw:${info:version}} ==> ${info:version}\n" - " /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" - " /eval -n ${info:version} ==> 0.4.3\n" - " /eval -n ${env:HOME} ==> /home/user\n" - " /eval -n ${weechat.look.scroll_amount} ==> 3\n" - " /eval -n ${sec.data.password} ==> secret\n" - " /eval -n ${window} ==> 0x2549aa0\n" - " /eval -n ${window.buffer} ==> 0x2549320\n" - " /eval -n ${window.buffer.full_name} ==> core.weechat\n" - " /eval -n ${window.buffer.number} ==> 1\n" - " /eval -n ${\\t} ==> \n" - " /eval -n ${hide:-,${relay.network.password}} ==> --------\n" - " /eval -n ${cut:3,+,test} ==> tes+\n" - " /eval -n ${cut:+3,+,test} ==> te+\n" - " /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" - " /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" - " /eval -n ${rev:Hello} ==> olleH\n" - " /eval -n ${repeat:5,-} ==> -----\n" - " /eval -n ${length:test} ==> 4\n" - " /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" - " /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" - " /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" - " /eval -n ${split:random,,,abc,def,ghi} ==> def\n" - " /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" - " /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" - " /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" - " /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" - " /eval -n ${calc:(5+2)*3} ==> 21\n" - " /eval -n ${random:0,10} ==> 3\n" - " /eval -n ${base_encode:64,test} ==> dGVzdA==\n" - " /eval -n ${base_decode:64,dGVzdA==} ==> test\n" - " /eval -n ${translate:Plugin} ==> Extension\n" + " /eval -n ${raw:${info:version}} ==> ${info:version}\n" + " /eval -n ${eval_cond:${window.win_width}>100} ==> 1\n" + " /eval -n ${info:version} ==> 0.4.3\n" + " /eval -n ${env:HOME} ==> /home/user\n" + " /eval -n ${weechat.look.scroll_amount} ==> 3\n" + " /eval -n ${sec.data.password} ==> secret\n" + " /eval -n ${window} ==> 0x2549aa0\n" + " /eval -n ${window.buffer} ==> 0x2549320\n" + " /eval -n ${window.buffer.full_name} ==> core.weechat\n" + " /eval -n ${window.buffer.number} ==> 1\n" + " /eval -n ${\\t} ==> \n" + " /eval -n ${hide:-,${relay.network.password}} ==> --------\n" + " /eval -n ${cut:3,+,test} ==> tes+\n" + " /eval -n ${cut:+3,+,test} ==> te+\n" + " /eval -n ${date:%H:%M:%S} ==> 07:46:40\n" + " /eval -n ${if:${info:term_width}>80?big:small} ==> big\n" + " /eval -n ${rev:Hello} ==> olleH\n" + " /eval -n ${repeat:5,-} ==> -----\n" + " /eval -n ${length:test} ==> 4\n" + " /eval -n ${split:1,,,abc,def,ghi} ==> abc\n" + " /eval -n ${split:-1,,,abc,def,ghi} ==> ghi\n" + " /eval -n ${split:count,,,abc,def,ghi} ==> 3\n" + " /eval -n ${split:random,,,abc,def,ghi} ==> def\n" + " /eval -n ${split_shell:1,\"arg 1\" arg2} ==> arg 1\n" + " /eval -n ${split_shell:-1,\"arg 1\" arg2} ==> arg2\n" + " /eval -n ${split_shell:count,\"arg 1\" arg2} ==> 2\n" + " /eval -n ${split_shell:random,\"arg 1\" arg2} ==> arg2\n" + " /eval -n ${calc:(5+2)*3} ==> 21\n" + " /eval -n ${random:0,10} ==> 3\n" + " /eval -n ${base_encode:64,test} ==> dGVzdA==\n" + " /eval -n ${base_decode:64,dGVzdA==} ==> test\n" + " /eval -n ${translate:Plugin} ==> Extension\n" + " /eval -n ${define:len,${calc:5+3}}${len}x${len} ==> 8x8\n" "\n" "Examples (conditions):\n" " /eval -n -c ${window.buffer.number} > 2 ==> 0\n" diff --git a/src/core/wee-eval.c b/src/core/wee-eval.c index 3135380d5..6c1fd22ec 100644 --- a/src/core/wee-eval.c +++ b/src/core/wee-eval.c @@ -1068,6 +1068,28 @@ eval_string_translate (const char *text) return strdup ((ptr_string) ? ptr_string : ""); } +/* + * Defines a variable. + */ + +void +eval_string_define (const char *text, struct t_eval_context *eval_context) +{ + char *pos, *name; + + pos = strchr (text, ','); + if (!pos) + return; + + name = strndup (text, pos - text); + if (!name) + return; + + hashtable_set (eval_context->user_vars, name, pos + 1); + + free (name); +} + /* * Gets value of hdata using "path" to a variable. * @@ -1352,7 +1374,7 @@ end: /* * Replaces variables, which can be, by order of priority: * 1. the string itself without evaluation (format: raw:xxx) - * 2. an extra variable from hashtable "extra_vars" + * 2. a variable from hashtable "user_vars" or "extra_vars" * 3. a WeeChat home directory, one of: "weechat_config_dir", * "weechat_data_dir", "weechat_cache_dir", "weechat_runtime_dir" * 4. a string to evaluate (format: eval:xxx) @@ -1421,7 +1443,13 @@ eval_replace_vars_cb (void *data, const char *text) goto end; } - /* 2. variable in hashtable "extra_vars" */ + /* 2. variable in hashtable "user_vars" or "extra_vars" */ + ptr_value = hashtable_get (eval_context->user_vars, text); + if (ptr_value) + { + value = strdup (ptr_value); + goto end; + } if (eval_context->extra_vars) { ptr_value = hashtable_get (eval_context->extra_vars, text); @@ -1668,6 +1696,14 @@ eval_replace_vars_cb (void *data, const char *text) goto end; } + /* 25. define a variable */ + if (strncmp (text, "define:", 7) == 0) + { + eval_string_define (text + 7, eval_context); + value = strdup (""); + goto end; + } + /* 25. option: if found, return this value */ if (strncmp (text, "sec.data.", 9) == 0) { @@ -2333,6 +2369,7 @@ eval_expression (const char *expr, struct t_hashtable *pointers, struct t_hashtable *extra_vars, struct t_hashtable *options) { struct t_eval_context context, *eval_context; + struct t_hashtable *user_vars; int condition, rc, pointers_allocated, regex_allocated, debug_id; int ptr_window_added, ptr_buffer_added; long number; @@ -2347,6 +2384,7 @@ eval_expression (const char *expr, struct t_hashtable *pointers, return NULL; condition = 0; + user_vars = NULL; pointers_allocated = 0; regex_allocated = 0; regex = NULL; @@ -2371,10 +2409,17 @@ eval_expression (const char *expr, struct t_hashtable *pointers, pointers_allocated = 1; } + user_vars = hashtable_new (32, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); + eval_context = &context; eval_context->pointers = pointers; eval_context->extra_vars = extra_vars; + eval_context->user_vars = user_vars; eval_context->extra_vars_eval = 0; eval_context->prefix = default_prefix; eval_context->suffix = default_suffix; @@ -2506,6 +2551,8 @@ eval_expression (const char *expr, struct t_hashtable *pointers, if (ptr_buffer_added) hashtable_remove (pointers, "buffer"); } + if (user_vars) + hashtable_free (user_vars); if (regex && regex_allocated) { regfree (regex); diff --git a/src/core/wee-eval.h b/src/core/wee-eval.h index 5c97b7a31..03b33a421 100644 --- a/src/core/wee-eval.h +++ b/src/core/wee-eval.h @@ -73,6 +73,7 @@ struct t_eval_context { struct t_hashtable *pointers; /* pointers used in eval */ struct t_hashtable *extra_vars; /* extra variables used in eval */ + struct t_hashtable *user_vars; /* user-defined variables */ int extra_vars_eval; /* 1 if extra vars must be evaluated */ const char *prefix; /* prefix (default is "${") */ const char *suffix; /* suffix (default is "}") */ diff --git a/tests/unit/core/test-core-eval.cpp b/tests/unit/core/test-core-eval.cpp index 6e9582ca9..d5d1906d2 100644 --- a/tests/unit/core/test-core-eval.cpp +++ b/tests/unit/core/test-core-eval.cpp @@ -853,6 +853,14 @@ TEST(CoreEval, EvalExpression) WEE_CHECK_EVAL("", "${translate:}"); WEE_CHECK_EVAL("abcdef", "${translate:abcdef}"); + /* test user variables */ + WEE_CHECK_EVAL("", "${define:}"); + WEE_CHECK_EVAL("", "${define:test}"); + WEE_CHECK_EVAL("", "${define:test,value}"); + WEE_CHECK_EVAL("value", "${define:test,value}${test}"); + WEE_CHECK_EVAL("8", "${define:test,${calc:5+3}}${test}"); + WEE_CHECK_EVAL("value", "${define:buffer,value}${buffer}"); + /* test option */ hashtable_set (secure_hashtable_data, "sec_option", "sec_value"); WEE_CHECK_EVAL("sec_value", "${sec.data.sec_option}"); -- cgit v1.2.3-59-g8ed1b