diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/de/autogen/user/weechat_commands.adoc | 130 | ||||
-rw-r--r-- | doc/en/autogen/user/weechat_commands.adoc | 8 | ||||
-rw-r--r-- | doc/en/weechat_dev.en.adoc | 1 | ||||
-rw-r--r-- | doc/en/weechat_plugin_api.en.adoc | 19 | ||||
-rw-r--r-- | doc/fr/autogen/user/weechat_commands.adoc | 8 | ||||
-rw-r--r-- | doc/fr/weechat_dev.fr.adoc | 1 | ||||
-rw-r--r-- | doc/fr/weechat_plugin_api.fr.adoc | 19 | ||||
-rw-r--r-- | doc/it/autogen/user/weechat_commands.adoc | 8 | ||||
-rw-r--r-- | doc/it/weechat_plugin_api.it.adoc | 20 | ||||
-rw-r--r-- | doc/ja/autogen/user/weechat_commands.adoc | 112 | ||||
-rw-r--r-- | doc/ja/weechat_dev.ja.adoc | 2 | ||||
-rw-r--r-- | doc/ja/weechat_plugin_api.ja.adoc | 20 | ||||
-rw-r--r-- | doc/pl/autogen/user/weechat_commands.adoc | 110 |
13 files changed, 272 insertions, 186 deletions
diff --git a/doc/de/autogen/user/weechat_commands.adoc b/doc/de/autogen/user/weechat_commands.adoc index bdecb1668..a4f3ec153 100644 --- a/doc/de/autogen/user/weechat_commands.adoc +++ b/doc/de/autogen/user/weechat_commands.adoc @@ -266,65 +266,66 @@ infolists: zeigt Information über die Infolists an /eval [-n|-s] <expression> [-n] -c <expression1> <operator> <expression2> - -n: gibt das Ergebnis aus, ohne das dieses in den Buffer gesendet wird (debug Modus) - -s: teilt Ausdrücke bevor sie evaluiert werden (mehrere Befehle können durch Semikolon getrennt werden) - -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) - -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 sofern es sich bei beiden Ausdrücken um gültige Nummer 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) + -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 (wildcard "*" is allowed) + !* is NOT matching mask (wildcard "*" is allowed) + +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. eine evaluierte Teilzeichenkette (Format: "eval:xxx") - 2. eine Zeichenkette mit Escapesequenzen (Format: "esc:xxx" oder "\xxx") - 3. Zeichen welche in einer Zeichenkette nicht dargestellt werden sollen (Format: "hide:Zeichen,Zeichenkette") - 4. eine Zeichenkette mit einer maximalen Anzahl an Zeichen (Format: "cut:+Max,Suffix,Zeichenkette") - oder maximale Anzahl an Zeichen die auf dem Bildschirm angezeigt werden sollen (Format: "cutscr:Max,Suffix,Zeichenkette oder "cutscr:+Max,Suffix,Zeichenkette") - 5. Ende einer Zeichenkette nutzen (Format: "rev:xxx") - 6. Wiederholung einer Zeichenkette (Format: "repeat:Anzahl,Zeichenkette") - 7. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color") - 8. eine Info (Format: "info:Name,Argumente", Argumente sind optional) - 9. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format") - 10. eine Umgebungsvariable (Format: "env:XXX") - 11. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr") - 12. eine Option (Format: "file.section.option") - 13. der Name einer lokalen Variablen eines Buffer - 14. ein 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) -Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben - -Beispiele (einfache Zeichenketten): +Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: + 1. an evaluated sub-string (format: "eval:xxx") + 2. a string with escaped chars (format: "esc:xxx" or "\xxx") + 3. a string with chars to hide (format: "hide:char,string") + 4. 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") + 5. a reversed string (format: "rev:xxx") + 6. a repeated string (format: "repeat:count,string") + 7. a color (format: "color:xxx", see "Plugin API reference", function "color") + 8. an info (format: "info:name,arguments", arguments are optional) + 9. current date/time (format: "date" or "date:format") + 10. an environment variable (format: "env:XXX") + 11. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 12. result of an expression with parentheses and operators + - * / // % (format: "calc:xxx") + 13. an option (format: "file.section.option") + 14. a local variable in buffer + 15. 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, 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) +For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". + +Examples (simple strings): /eval -n ${info:version} ==> 0.4.3 /eval -n ${env:HOME} ==> /home/user /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.freenode_password} ==> geheim + /eval -n ${sec.data.freenode_password} ==> secret /eval -n ${window} ==> 0x2549aa0 /eval -n ${window.buffer} ==> 0x2549320 /eval -n ${window.buffer.full_name} ==> core.weechat @@ -337,17 +338,18 @@ Beispiele (einfache Zeichenketten): /eval -n ${if:${info:term_width}>80?big:small} ==> big /eval -n ${rev:Hello} ==> olleH /eval -n ${repeat:5,-} ==> ----- - -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 ${calc:(5+2)*3} ==> 21 + +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 ---- [[command_weechat_filter]] diff --git a/doc/en/autogen/user/weechat_commands.adoc b/doc/en/autogen/user/weechat_commands.adoc index 89aad68d6..2cf3cf4c1 100644 --- a/doc/en/autogen/user/weechat_commands.adoc +++ b/doc/en/autogen/user/weechat_commands.adoc @@ -308,9 +308,10 @@ Some variables are replaced in expression, using the format ${variable}, variabl 9. current date/time (format: "date" or "date:format") 10. an environment variable (format: "env:XXX") 11. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 12. an option (format: "file.section.option") - 13. a local variable in buffer - 14. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 12. result of an expression with parentheses and operators + - * / // % (format: "calc:xxx") + 13. an option (format: "file.section.option") + 14. a local variable in buffer + 15. 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, for example: @@ -337,6 +338,7 @@ Examples (simple strings): /eval -n ${if:${info:term_width}>80?big:small} ==> big /eval -n ${rev:Hello} ==> olleH /eval -n ${repeat:5,-} ==> ----- + /eval -n ${calc:(5+2)*3} ==> 21 Examples (conditions): /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/en/weechat_dev.en.adoc b/doc/en/weechat_dev.en.adoc index ce45c06e3..26a1030f8 100644 --- a/doc/en/weechat_dev.en.adoc +++ b/doc/en/weechat_dev.en.adoc @@ -120,6 +120,7 @@ WeeChat "core" is located in following directories: | core/ | Core functions: entry point, internal structures. | wee-arraylist.c | Array lists. | wee-backtrace.c | Display a backtrace after a crash. +| wee-calc.c | Calculate result of expressions. | wee-command.c | WeeChat core commands. | wee-completion.c | Default completions. | wee-config-file.c | Configuration file management. diff --git a/doc/en/weechat_plugin_api.en.adoc b/doc/en/weechat_plugin_api.en.adoc index f076adcd1..3a16f07c8 100644 --- a/doc/en/weechat_plugin_api.en.adoc +++ b/doc/en/weechat_plugin_api.en.adoc @@ -2148,7 +2148,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 and 2.0._ +_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 and 2.7._ Evaluate an expression and return result as a string. Special variables with format `+${variable}+` are expanded (see table below). @@ -2535,6 +2535,23 @@ expanded to last): `+${if:${info:term_width}>80?big:small}+` | `+big+` +| `+${calc:xxx}+` + + (_WeeChat ≥ 2.7_) | + Result of expression, where parentheses and the following operators are + supported: + + `+`: addition + + `-`: subtraction + + `*`: multiplication + + `/`: division + + `//`: result of division without fractional part + + `%`: remainder of division. | + `+${calc:5+2*3}+` + + `+${calc:(5+2)*3}+` + + `+${calc:9.2%3}+` | + `+11+` + + `+21+` + + `+0.2+` + | `+${sec.data.name}+` | Value of the secured data `name`. | `+${sec.data.freenode_pass}+` | diff --git a/doc/fr/autogen/user/weechat_commands.adoc b/doc/fr/autogen/user/weechat_commands.adoc index 816a58bf5..11b23825a 100644 --- a/doc/fr/autogen/user/weechat_commands.adoc +++ b/doc/fr/autogen/user/weechat_commands.adoc @@ -308,9 +308,10 @@ Des variables sont remplacées dans l'expression, en utilisant le format ${varia 9. la date/heure courante (format : "date" ou "date:format") 10. une variable d'environnement (format : "env:XXX") 11. un opérateur ternaire (format : "if:condition?valeur_si_vrai:valeur_si_faux") - 12. une option (format : "fichier.section.option") - 13. une variable locale du tampon - 14. 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. + 12. le résultat d'une expression avec parenthèses et les opérateurs + - * / // % (format: "calc:xxx") + 13. une option (format : "fichier.section.option") + 14. une variable locale du tampon + 15. 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, par exemple : @@ -337,6 +338,7 @@ Exemples (chaînes simples) : /eval -n ${if:${info:term_width}>80?big:small} ==> big /eval -n ${rev:Hello} ==> olleH /eval -n ${repeat:5,-} ==> ----- + /eval -n ${calc:(5+2)*3} ==> 21 Exemples (conditions) : /eval -n -c ${window.buffer.number} > 2 ==> 0 diff --git a/doc/fr/weechat_dev.fr.adoc b/doc/fr/weechat_dev.fr.adoc index 6dfa34114..a94037c98 100644 --- a/doc/fr/weechat_dev.fr.adoc +++ b/doc/fr/weechat_dev.fr.adoc @@ -122,6 +122,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants : | core/ | Fonctions du cœur : point d'entrée, structures internes. | wee-arraylist.c | Listes avec tableau (« arraylists »). | wee-backtrace.c | Afficher une trace après un plantage. +| wee-calc.c | Calcul du résultat d'expressions. | wee-command.c | Commandes du cœur de WeeChat. | wee-completion.c | Complétions par défaut. | wee-config-file.c | Gestion des fichiers de configuration. diff --git a/doc/fr/weechat_plugin_api.fr.adoc b/doc/fr/weechat_plugin_api.fr.adoc index 0f21e7879..9ee096314 100644 --- a/doc/fr/weechat_plugin_api.fr.adoc +++ b/doc/fr/weechat_plugin_api.fr.adoc @@ -2188,7 +2188,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 et 2.0._ +_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 et 2.7._ É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 @@ -2582,6 +2582,23 @@ première étendue à la dernière) : `+${if:${info:term_width}>80?grand:petit}+` | `+grand+` +| `+${calc:xxx}+` + + (_WeeChat ≥ 2.7_) | + Résultat de l'expression, où les parenthèses et les opérateurs suivants sont + supportés : + + `+` : addition + + `-` : soustraction + + `*` : multiplication + + `/` : division + + `//` : résultat de la division sans la partie décimale + + `%` : reste de la division. | + `+${calc:5+2*3}+` + + `+${calc:(5+2)*3}+` + + `+${calc:9.2%3}+` | + `+11+` + + `+21+` + + `+0.2+` + | `+${sec.data.nom}+` | Valeur de la donnée sécurisée `nom`. | `+${sec.data.freenode_pass}+` | diff --git a/doc/it/autogen/user/weechat_commands.adoc b/doc/it/autogen/user/weechat_commands.adoc index ff30151bc..ee8b89271 100644 --- a/doc/it/autogen/user/weechat_commands.adoc +++ b/doc/it/autogen/user/weechat_commands.adoc @@ -308,9 +308,10 @@ Some variables are replaced in expression, using the format ${variable}, variabl 9. current date/time (format: "date" or "date:format") 10. an environment variable (format: "env:XXX") 11. a ternary operator (format: "if:condition?value_if_true:value_if_false") - 12. an option (format: "file.section.option") - 13. a local variable in buffer - 14. a hdata name/variable (the value is automatically converted to string), by default "window" and "buffer" point to current window/buffer. + 12. result of an expression with parentheses and operators + - * / // % (format: "calc:xxx") + 13. an option (format: "file.section.option") + 14. a local variable in buffer + 15. 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, for example: @@ -337,6 +338,7 @@ Examples (simple strings): /eval -n ${if:${info:term_width}>80?big:small} ==> big /eval -n ${rev:Hello} ==> olleH /eval -n ${repeat:5,-} ==> ----- + /eval -n ${calc:(5+2)*3} ==> 21 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 f45eb124f..1b547fa40 100644 --- a/doc/it/weechat_plugin_api.it.adoc +++ b/doc/it/weechat_plugin_api.it.adoc @@ -2242,7 +2242,7 @@ str3 = weechat.string_input_for_buffer("//test") # "/test" ==== string_eval_expression // 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 and 2.0._ +_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 and 2.7._ // TRANSLATION MISSING Evaluate an expression and return result as a string. @@ -2642,6 +2642,24 @@ expanded to last): `+${if:${info:term_width}>80?big:small}+` | `+big+` +// TRANSLATION MISSING +| `+${calc:xxx}+` + + (_WeeChat ≥ 2.7_) | + Result of expression, where parentheses and the following operators are + supported: + + `+`: addition + + `-`: subtraction + + `*`: multiplication + + `/`: division + + `//`: result of division without fractional part + + `%`: remainder of division. | + `+${calc:5+2*3}+` + + `+${calc:(5+2)*3}+` + + `+${calc:9.2%3}+` | + `+11+` + + `+21+` + + `+0.2+` + | `+${sec.data.name}+` | Value of the secured data `name`. | `+${sec.data.freenode_pass}+` | diff --git a/doc/ja/autogen/user/weechat_commands.adoc b/doc/ja/autogen/user/weechat_commands.adoc index 2f7e6ee2d..e1bce21d2 100644 --- a/doc/ja/autogen/user/weechat_commands.adoc +++ b/doc/ja/autogen/user/weechat_commands.adoc @@ -266,61 +266,62 @@ infolists: インフォリストに関する情報を表示 /eval [-n|-s] <expression> [-n] -c <expression1> <operator> <expression2> - -n: 結果をバッファに送信せずに表示 (デバッグモード) - -s: 評価前に式を分割する (複数のコマンドを指定する場合はセミコロンで区切ってください) - -c: 条件として評価: 演算子と括弧をを使い、ブール値 ("0" または "1") を返します -expression: 評価する式、${variable} 型の書式の変数は置換されます (以下を参照してください); 複数のコマンドを指定する場合はセミコロンで区切ってください - operator: 論理演算子や比較演算子: - - 論理演算子: - && ブール演算の "and" - || ブール演算の "or" - - 比較演算子: - == 等しい - != 等しくない - <= 以下 - < より少ない - >= 以上 - > より大きい - =~ POSIX 拡張正規表現にマッチ - !~ POSIX 拡張正規表現にマッチしない - =* マスクにマッチ (ワイルドカード "*" を使えます) - !* マスクにマッチしない (ワイルドカード "*" を使えます) - -式が NULL でない場合、空でない場合、"0" でない場合、式は "真" と評価されます。 -浮動小数点数として比較される数値表現の書式は以下です: - - 整数 (例: 5、-7) - - 浮動小数点数 (例: 5.2、-7.5、2.83e-2) - - 16 進数 (例: 0xA3、-0xA3) -数値表現を二重引用符で括ることで、文字列として比較されます。例: + -n: display result without sending it to buffer (debug mode) + -s: split expression before evaluating it (many commands can be separated by semicolons) + -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 (wildcard "*" is allowed) + !* is NOT matching mask (wildcard "*" is allowed) + +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 -式中の ${variable} 型の書式の変数は置換されます。変数は以下の優先順位に従います: - 1. 評価済みのサブ文字列 (書式: "eval:xxx") - 2. エスケープ文字を含む文字列 (書式: "esc:xxx" または "\xxx") - 3. 隠す文字を含む文字列 (書式: "hide:char,string") - 4. 最大文字数を指定した文字列 (書式: "cut:max,suffix,string" または "cut:+max,suffix,string") - または最大文字表示幅を指定した文字列 (書式: "cutscr:max,suffix,string" または "cutscr:+max,suffix,string") - 5. 文字順を反転させた文字列 (書式: "rev:xxx") - 6. 繰り返し文字列 (書式: "repeat:count,string") - 7. 色 (書式: "color:xxx"、"プラグイン API リファレンス" の "color" 関数を参照してください) - 8. 情報 (書式: "info:name,arguments"、arguments は任意) - 9. 現在の日付/時刻 (書式: "date" または "date:format") - 10. 環境変数 (書式: "env:XXX") - 11. 三項演算子 (書式: "if:condition?value_if_true:value_if_false") - 12. オプション (書式: "file.section.option") - 13. バッファのローカル変数 - 14. hdata の名前/変数 (値は自動的に文字列に変換されます)、デフォルトでは "window" と "buffer" は現在のウィンドウ/バッファを指します。 -hdata の書式は以下の 1 つです: - hdata.var1.var2...: hdata (ポインタは既知) で開始し、1 個ずつ変数を続ける (他の hdata を続けることも可能) - hdata[list].var1.var2...: リストを使う hdata で開始する、例: - ${buffer[gui_buffers].full_name}: バッファリストにリンクされた最初のバッファのフルネーム - ${plugin[weechat_plugins].name}: プラグインリストにリンクされた最初のプラグインの名前 - hdata[pointer].var1.var2...: ポインタを使う hdata で開始する、例: - ${buffer[0x1234abcd].full_name}: 与えたポインタを持つバッファの完全な名前 (トリガ中で使うことが可能です) -hdata と変数の名前については、"プラグイン API リファレンス" の "weechat_hdata_get" 関数を参照してください。 - -例 (単純な文字列): +Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: + 1. an evaluated sub-string (format: "eval:xxx") + 2. a string with escaped chars (format: "esc:xxx" or "\xxx") + 3. a string with chars to hide (format: "hide:char,string") + 4. 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") + 5. a reversed string (format: "rev:xxx") + 6. a repeated string (format: "repeat:count,string") + 7. a color (format: "color:xxx", see "Plugin API reference", function "color") + 8. an info (format: "info:name,arguments", arguments are optional) + 9. current date/time (format: "date" or "date:format") + 10. an environment variable (format: "env:XXX") + 11. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 12. result of an expression with parentheses and operators + - * / // % (format: "calc:xxx") + 13. an option (format: "file.section.option") + 14. a local variable in buffer + 15. 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, 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) +For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". + +Examples (simple strings): /eval -n ${info:version} ==> 0.4.3 /eval -n ${env:HOME} ==> /home/user /eval -n ${weechat.look.scroll_amount} ==> 3 @@ -335,10 +336,11 @@ hdata と変数の名前については、"プラグイン API リファレン /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\n" - /eval -n ${repeat:5,-} ==> -----\n" + /eval -n ${rev:Hello} ==> olleH + /eval -n ${repeat:5,-} ==> ----- + /eval -n ${calc:(5+2)*3} ==> 21 -例 (条件): +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 diff --git a/doc/ja/weechat_dev.ja.adoc b/doc/ja/weechat_dev.ja.adoc index f914e6b88..c80138d16 100644 --- a/doc/ja/weechat_dev.ja.adoc +++ b/doc/ja/weechat_dev.ja.adoc @@ -126,6 +126,8 @@ WeeChat "core" は以下のディレクトリに配置されています: | core/ | コア関数: エントリポイント、内部構造体 | wee-arraylist.c | 配列リスト | wee-backtrace.c | クラッシュした際にバックトレースを表示 +// TRANSLATION MISSING +| wee-calc.c | Calculate result of expressions. | wee-command.c | WeeChat コアコマンド | wee-completion.c | デフォルト補完 | wee-config-file.c | 設定ファイル管理 diff --git a/doc/ja/weechat_plugin_api.ja.adoc b/doc/ja/weechat_plugin_api.ja.adoc index b3a7658d5..d26562c93 100644 --- a/doc/ja/weechat_plugin_api.ja.adoc +++ b/doc/ja/weechat_plugin_api.ja.adoc @@ -2161,7 +2161,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 で更新。_ +_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.7 で更新。_ 式を評価して文字列として返す。`+${variable}+` という書式で書かれた特殊変数は展開されます (以下の表を参照)。 @@ -2546,6 +2546,24 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio `+${if:${info:term_width}>80?big:small}+` | `+big+` +// TRANSLATION MISSING +| `+${calc:xxx}+` + + (_WeeChat バージョン 2.7 以上で利用可_) | + Result of expression, where parentheses and the following operators are + supported: + + `+`: addition + + `-`: subtraction + + `*`: multiplication + + `/`: division + + `//`: result of division without fractional part + + `%`: remainder of division. | + `+${calc:5+2*3}+` + + `+${calc:(5+2)*3}+` + + `+${calc:9.2%3}+` | + `+11+` + + `+21+` + + `+0.2+` + | `+${sec.data.name}+` | セキュアデータ `name` の値 | `+${sec.data.freenode_pass}+` | diff --git a/doc/pl/autogen/user/weechat_commands.adoc b/doc/pl/autogen/user/weechat_commands.adoc index a4019d33b..d1dc22327 100644 --- a/doc/pl/autogen/user/weechat_commands.adoc +++ b/doc/pl/autogen/user/weechat_commands.adoc @@ -266,65 +266,66 @@ infolists: wyświetla informacje o infolistach /eval [-n|-s] <wyrażenie> [-n] -c <wyrażenie1> <operator> <wyrażenie2> - -n: wyświetla wynik bez wysyłania go do buforu (tryb debugowania) - -s: podziel wyrażenie przed przetworzeniem go (wiele komend może być oddzielonych średnikami) - -c: przetwarza jako warunek: użyj operatorów i nawiasów, zwraca wartość logiczną ("0" lub "1") -wyrażenie: wyrażenie do przetworzenia, zmienne o formacie ${zmienna} są zastępowane (zobacz niżej); wiele komend można oddzielić średnikami - operator: operator logiczny lub porównania: - - operatory logiczne: - && logiczne "i" - || logiczne "lub" - - operatory porównania: - == równy - != różny - <= mniejszy lub równy - < mniejszy - >= większy lub równy - > większy - =~ pasuje do rozszerzonego wyrażenia regularnego POSIX - !~ NIE pasuje do rozszerzonego wyrażenia regularnego POSIX - =* pasuje do maski (dzika karta "*" dozwolona) - !* NIE pasuje do maski (dzika karta "*" dozwolona) - -Wyrażenie jest uznawane za „prawdziwe” jeśli nie jest NULL, nie jest puste, oraz różni się od "0". -Porównania dokonuje się z użyciem liczb całkowitych jeśli oba wyrażenia są liczbami całkowitymi, w jednym z następujących formatów: - - liczby całkowite (przykłady: 5, -7) - - liczby zmiennoprzecinkowe (przykłady: 5.2, -7.5, 2.83e-2) - - liczby szesnastkowe (przykłady: 0xA3, -0xA3) -W celu wymuszenia porównywania ciągów, należy umieścić każde wyrażenie w cudzysłowie, na przykład: + -n: display result without sending it to buffer (debug mode) + -s: split expression before evaluating it (many commands can be separated by semicolons) + -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 (wildcard "*" is allowed) + !* is NOT matching mask (wildcard "*" is allowed) + +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 -Niektóre zmienne w wyrażeniach są zamieniane, poprzez zastosowanie formatu ${zmienna}, według priorytetu zmienną może być: - 1. przetworzony ciąg (format: "eval:xxx") - 2. ciąg z wyescapowanymi znakami (format: "esc:xxx" lub "\xxx") - 3. ciąg ze znakami do ukrycia (format: "hide:char,string") - 4. ciąg o maksymalnej długości (format: "cut:max,suffix,string" lub "cut:+max,suffix,string") - lub maksymalna ilość znaków wyświetlanych na ekranie (format: "cutscr:max,suffix,string" lub "cutscr:+max,suffix,string") - 5. odwrócony ciąg (format: "rev:xxx") - 6. powtórzony ciąg (format: "repeat:ilość,ciąg") - 7. kolor (format "color:xxx", zobacz „Opis API wtyczek”, funkcja "color") - 8. informacja (format: "info:nazwa,argumenty", argumenty są opcjonalne) - 9. obecna data/czas (format: "date" lub "date:format") - 10. zmienna środowiskowa (format: "env:XXX") - 11. wyrażenie warunkowe (format: "if:condition?value_if_true:value_if_false") - 12. opcja (format: plik.sekcja.opcja) - 13. zmienna lokalna w buforze - 14. nazwa hdatay/zmiennej (wartość jest automatycznie konwertowana na ciąg znaków), domyślnie "window" i "buffer" wskazują na aktualne okno/bufor. -Format dla hdata może być jednym z poniższych: - hdata.zmienna1.zmienna2...: inicjuje hdata (wskaźnik musi być znany), następnie wypytuje zmienne jedna po drugiej (inne hdata mogą być następne) - hdata[list].zmienna1.zmienna2...: inicjuje hdata z wykorzystaniem listy, na przykład: - ${buffer[gui_buffers].full_name}: pełna nazwa buforu w połączonej liście buforów - ${plugin[weechat_plugins].name}: nazwa pierwszej wtyczki w połączonej liście wtyczek - hdata[wskaźnik].zmienna1.zmienna2...: zacznij z hdata używając wskaźnika, na przykład: - ${buffer[0x1234abcd].full_name}: pełna nazwa buforu z tym wskaźnikiem (może zostać użyte w triggerach) -Nazwy hdata i zmiennych, można znaleźć w „Opisie API wtyczek”, funkcja "weechat_hdata_get". - -Przykłady (proste ciągi): +Some variables are replaced in expression, using the format ${variable}, variable can be, by order of priority: + 1. an evaluated sub-string (format: "eval:xxx") + 2. a string with escaped chars (format: "esc:xxx" or "\xxx") + 3. a string with chars to hide (format: "hide:char,string") + 4. 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") + 5. a reversed string (format: "rev:xxx") + 6. a repeated string (format: "repeat:count,string") + 7. a color (format: "color:xxx", see "Plugin API reference", function "color") + 8. an info (format: "info:name,arguments", arguments are optional) + 9. current date/time (format: "date" or "date:format") + 10. an environment variable (format: "env:XXX") + 11. a ternary operator (format: "if:condition?value_if_true:value_if_false") + 12. result of an expression with parentheses and operators + - * / // % (format: "calc:xxx") + 13. an option (format: "file.section.option") + 14. a local variable in buffer + 15. 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, 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) +For name of hdata and variables, please look at "Plugin API reference", function "weechat_hdata_get". + +Examples (simple strings): /eval -n ${info:version} ==> 0.4.3 /eval -n ${env:HOME} ==> /home/user /eval -n ${weechat.look.scroll_amount} ==> 3 - /eval -n ${sec.data.freenode_password} ==> secret + /eval -n ${sec.data.freenode_password} ==> secret /eval -n ${window} ==> 0x2549aa0 /eval -n ${window.buffer} ==> 0x2549320 /eval -n ${window.buffer.full_name} ==> core.weechat @@ -337,8 +338,9 @@ Przykłady (proste ciągi): /eval -n ${if:${info:term_width}>80?big:small} ==> big /eval -n ${rev:Hello} ==> olleH /eval -n ${repeat:5,-} ==> ----- + /eval -n ${calc:(5+2)*3} ==> 21 -Przykłady (warunki): +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 |