api: add support of pointer names in function string_eval_expression (direct and in hdata)
These two formats are now supported, if "pointer_name" is present in the "pointers" hashtable: * "${pointer_name}": value of pointer (example: "0x1234abcd") * ${buffer[pointer_name].full_name}: use of a pointer name instead of pointer value or list name
This commit is contained in:
parent
c54cadace5
commit
8ee7d46605
@ -22,6 +22,7 @@ New features::
|
||||
|
||||
* core: add options to customize commands executed on system signals received (SIGHUP, SIGQUIT, SIGTERM, SIGUSR1, SIGUSR2) (issue #1595)
|
||||
* core: quit WeeChat by default when signal SIGHUP is received in normal run, reload configuration in weechat-headless (issue #1595)
|
||||
* api: add support of pointer names in function string_eval_expression (direct and in hdata)
|
||||
* api: add info "weechat_daemon"
|
||||
|
||||
Bug fixes::
|
||||
|
@ -1304,80 +1304,81 @@ infolists: zeigt Information über die Infolists an
|
||||
/eval [-n|-s] [-d] <expression>
|
||||
[-n] [-d [-d]] -c <expression1> <operator> <expression2>
|
||||
|
||||
-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
|
||||
-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
|
||||
|
||||
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:
|
||||
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,Zeichenkette")
|
||||
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. eine Farbe (Format: "color:xxx", siehe "Anleitung für API Erweiterung", Funktion "color")
|
||||
11. ein Modifizierer (Format: "info:Name,Argumente", Argumente sind optional)
|
||||
12. eine Info (Format: "Info:Name,Argumente", Argumente sind optional)
|
||||
13. eine Basis 16/32/64 kodierte / dekodierte Zeichenfolge (Format: "base_encode:base,xxx" oder "base_decode:base,xxx")
|
||||
14. aktuelles Datum/Uhrzeit (Format: "date" oder "date:format")
|
||||
15. eine Umgebungsvariable (Format: "env:XXX")
|
||||
16. ein Dreifachoperand (Format: "if:Bedingung?Wert_falls_wahr:Wert_falls_unwahr")
|
||||
17. Ergebnis eines Ausdrucks mit Klammern und Operatoren + - * / // % ** (Format: "calc:xxx")
|
||||
18. eine Option (Format: "file.section.option")
|
||||
19. eine lokale Variable eines Buffers
|
||||
20. 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)
|
||||
Die vorhandenen Namen für hdata und Variablen sind in der "Anleitung für API Erweiterung", Bereich "weechat_hdata_get". beschrieben
|
||||
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")
|
||||
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. a color (format: "color:xxx", see "Plugin API reference", function "color")
|
||||
11. a modifier (format: "modifier:name,data,string")
|
||||
12. an info (format: "info:name,arguments", arguments are optional)
|
||||
13. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
|
||||
14. current date/time (format: "date" or "date:format")
|
||||
15. an environment variable (format: "env:XXX")
|
||||
16. a ternary operator (format: "if:condition?value_if_true:value_if_false")
|
||||
17. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
|
||||
18. an option (format: "file.section.option")
|
||||
19. a local variable in buffer
|
||||
20. 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".
|
||||
|
||||
Beispiele (einfache Zeichenketten):
|
||||
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.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
|
||||
@ -1395,17 +1396,17 @@ Beispiele (einfache Zeichenketten):
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
|
||||
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
|
||||
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]]
|
||||
|
@ -1364,11 +1364,12 @@ Some variables are replaced in expression, using the format ${variable}, variabl
|
||||
20. 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:
|
||||
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):
|
||||
|
@ -2209,7 +2209,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 and 3.1._
|
||||
2.2, 2.3, 2.7, 2.9, 3.1 and 3.2._
|
||||
|
||||
Evaluate an expression and return result as a string.
|
||||
Special variables with format `+${variable}+` are expanded (see table below).
|
||||
@ -2755,11 +2755,18 @@ expanded to last):
|
||||
`+${nick}+` |
|
||||
`+FlashCode+`
|
||||
|
||||
| `+${pointer}+` |
|
||||
Variable `pointer` from hashtable _pointers_. |
|
||||
`+${my_pointer}+` |
|
||||
`+0x1234abcd+`
|
||||
|
||||
| `+${hdata.var1.var2...}+` +
|
||||
`+${hdata[list].var1.var2...}+` |
|
||||
Hdata value (pointers `window` and `buffer` are set by default with current
|
||||
window/buffer). |
|
||||
window/buffer), `list` can be a list name (example: "gui_buffers"), a pointer
|
||||
(example: "0x1234abcd") or a pointer name (example: "my_pointer"). |
|
||||
`+${buffer[gui_buffers].full_name}+` +
|
||||
`+${buffer[my_buffer_pointer].full_name}+` +
|
||||
`+${window.buffer.number}+` |
|
||||
`+core.weechat+` +
|
||||
`+1+`
|
||||
|
@ -1364,11 +1364,12 @@ Des variables sont remplacées dans l'expression, en utilisant le format ${varia
|
||||
20. 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 :
|
||||
hdata[liste].var1.var2... : démarrer avec un hdata en utilisant une liste/pointeur/nom de pointeur, par exemple :
|
||||
${buffer[gui_buffers].full_name} : nom complet du premier tampon dans la liste chaînée des tampons
|
||||
${plugin[weechat_plugins].name} : nom de la première extension dans la liste chaînée des extensions
|
||||
hdata[pointeur].var1.var2... : démarrer avec un hdata en utilisant un pointeur, par exemple :
|
||||
${buffer[0x1234abcd].full_name} : nom complet du tampon avec ce pointeur (peut être utilisé dans les triggers)
|
||||
${buffer[my_pointer].full_name} : nom complet du tampon avec ce nom de pointeur (peut être utilisé dans les triggers)
|
||||
Pour le nom du hdata et des variables, voir la "Référence API extension", fonction "weechat_hdata_get".
|
||||
|
||||
Exemples (chaînes simples) :
|
||||
|
@ -2246,7 +2246,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 et 3.1._
|
||||
2.0, 2.2, 2.3, 2.7, 2.9, 3.1 et 3.2._
|
||||
|
||||
É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
|
||||
@ -2800,11 +2800,19 @@ première étendue à la dernière) :
|
||||
`+${nick}+` |
|
||||
`+FlashCode+`
|
||||
|
||||
| `+${pointeur}+` |
|
||||
Variable `pointeur` de la table de hachage _pointers_. |
|
||||
`+${mon_pointeur}+` |
|
||||
`+0x1234abcd+`
|
||||
|
||||
| `+${hdata.var1.var2...}+` +
|
||||
`+${hdata[list].var1.var2...}+` |
|
||||
Valeur d'un hdata (les pointeurs `window` et `buffer` sont définis par défaut
|
||||
avec la fenêtre et tampon courants). |
|
||||
avec la fenêtre et tampon courants), `list` peut être le nom d'une liste
|
||||
(exemple : "gui_buffers"), un pointeur (exemple : "0x1234abcd") ou un nom
|
||||
de pointeur (exemple : "mon_pointeur"). |
|
||||
`+${buffer[gui_buffers].full_name}+` +
|
||||
`+${buffer[mon_pointeur_buffer].full_name}+` +
|
||||
`+${window.buffer.number}+` |
|
||||
`+core.weechat+` +
|
||||
`+1+`
|
||||
|
@ -1364,11 +1364,12 @@ Some variables are replaced in expression, using the format ${variable}, variabl
|
||||
20. 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:
|
||||
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):
|
||||
|
@ -2306,7 +2306,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 and 3.1._
|
||||
2.2, 2.3, 2.7, 2.9, 3.1 and 3.2._
|
||||
|
||||
// TRANSLATION MISSING
|
||||
Evaluate an expression and return result as a string.
|
||||
@ -2869,11 +2869,18 @@ expanded to last):
|
||||
`+${nick}+` |
|
||||
`+FlashCode+`
|
||||
|
||||
| `+${pointer}+` |
|
||||
Variable `pointer` from hashtable _pointers_. |
|
||||
`+${my_pointer}+` |
|
||||
`+0x1234abcd+`
|
||||
|
||||
| `+${hdata.var1.var2...}+` +
|
||||
`+${hdata[list].var1.var2...}+` |
|
||||
Hdata value (pointers `window` and `buffer` are set by default with current
|
||||
window/buffer). |
|
||||
window/buffer), `list` can be a list name (example: "gui_buffers"), a pointer
|
||||
(example: "0x1234abcd") or a pointer name (example: "my_pointer"). |
|
||||
`+${buffer[gui_buffers].full_name}+` +
|
||||
`+${buffer[my_buffer_pointer].full_name}+` +
|
||||
`+${window.buffer.number}+` |
|
||||
`+core.weechat+` +
|
||||
`+1+`
|
||||
|
@ -1364,11 +1364,12 @@ Some variables are replaced in expression, using the format ${variable}, variabl
|
||||
20. 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:
|
||||
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):
|
||||
|
@ -2226,7 +2226,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 and 3.1._
|
||||
2.2, 2.3, 2.7, 2.9, 3.1 and 3.2._
|
||||
|
||||
式を評価して文字列として返す。`+${variable}+`
|
||||
という書式で書かれた特殊変数は展開されます (以下の表を参照)。
|
||||
@ -2789,11 +2789,20 @@ str5 = weechat.string_eval_expression("password=abc password=def", {}, {}, optio
|
||||
`+${nick}+` |
|
||||
`+FlashCode+`
|
||||
|
||||
| `+${pointer}+` |
|
||||
_pointers_ の変数 `pointer` の値に展開 |
|
||||
`+${my_pointer}+` |
|
||||
`+0x1234abcd+`
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| `+${hdata.var1.var2...}+` +
|
||||
`+${hdata[list].var1.var2...}+` |
|
||||
hdata の値 (`window` と `buffer`
|
||||
ポインタはデフォルトで現在のウィンドウ/バッファに設定されます) |
|
||||
ポインタはデフォルトで現在のウィンドウ/バッファに設定されます),
|
||||
`list` can be a list name (example: "gui_buffers"), a pointer
|
||||
(example: "0x1234abcd") or a pointer name (example: "my_pointer"). |
|
||||
`+${buffer[gui_buffers].full_name}+` +
|
||||
`+${buffer[my_buffer_pointer].full_name}+` +
|
||||
`+${window.buffer.number}+` |
|
||||
`+core.weechat+` +
|
||||
`+1+`
|
||||
|
@ -1303,80 +1303,81 @@ infolists: wyświetla informacje o infolistach
|
||||
/eval [-n|-s] [-d] <wyrażenie>
|
||||
[-n] [-d [-d]] -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)
|
||||
-d: wyświetl wyjście debugowe po ewaluacji
|
||||
-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, rozróżnia wielkość znaków (dzika karta „*” dozwolona)
|
||||
!!* NIE pasuje do maski, rozróżnia wielkość znaków (dzika karta „*” dozwolona)
|
||||
=* pasuje do maski, nie rozróżnia wielkość znaków (dzika karta „*” dozwolona)
|
||||
!* NIE pasuje do maski, nie rozróżnia wielkość znaków (dzika karta „*” dozwolona)
|
||||
==- jest zawarte, rozróżnia wielkość znaków
|
||||
!!- NIE jest zawarte,rozróżnia wielkość znaków
|
||||
=- jest zawarte, nie rozróżnia wielkość znaków
|
||||
!- NIE jest zawarte, nie rozróżnia wielkość znaków
|
||||
-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
|
||||
|
||||
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:
|
||||
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. nieprzetworzony ciąg (format: "raw:xxx")
|
||||
2. przetworzony ciąg (format: "eval:xxx")
|
||||
3. przetworzony warunek (format: "eval_cond:xxx")
|
||||
4. ciąg z wyescapowanymi znakami (format: "esc:xxx" lub "\xxx")
|
||||
5. ciąg ze znakami do ukrycia (format: "hide:char,string")
|
||||
6. 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")
|
||||
7. odwrócony ciąg (format: "rev:xxx")
|
||||
8. powtórzony ciąg (format: "repeat:ilość,ciąg")
|
||||
9. długość ciągu (format: "length:xxx" or "lengthscr:xxx")
|
||||
10. kolor (format "color:xxx", zobacz „Opis API wtyczek”, funkcja "color")
|
||||
11. modyfikator (format: "modifier:name,data,string")
|
||||
12. informacja (format: "info:nazwa,argumenty", argumenty są opcjonalne)
|
||||
13. ciąg zakodowany/zdekodowany z base 16/32/64 (format: "base_encode:base,xxx" lub "base_decode:base,xxx")
|
||||
14. obecna data/czas (format: "date" lub "date:format")
|
||||
15. zmienna środowiskowa (format: "env:XXX")
|
||||
16. wyrażenie warunkowe (format: "if:condition?value_if_true:value_if_false")
|
||||
17. wynik wyrażenia z nawiasami i operatorami + - * / // % ** (format: "calc:xxx")
|
||||
18. opcja (format: plik.sekcja.opcja)
|
||||
19. zmienna lokalna w buforze
|
||||
20. 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".
|
||||
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")
|
||||
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. a color (format: "color:xxx", see "Plugin API reference", function "color")
|
||||
11. a modifier (format: "modifier:name,data,string")
|
||||
12. an info (format: "info:name,arguments", arguments are optional)
|
||||
13. a base 16/32/64 encoded/decoded string (format: "base_encode:base,xxx" or "base_decode:base,xxx")
|
||||
14. current date/time (format: "date" or "date:format")
|
||||
15. an environment variable (format: "env:XXX")
|
||||
16. a ternary operator (format: "if:condition?value_if_true:value_if_false")
|
||||
17. result of an expression with parentheses and operators + - * / // % ** (format: "calc:xxx")
|
||||
18. an option (format: "file.section.option")
|
||||
19. a local variable in buffer
|
||||
20. 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".
|
||||
|
||||
Przykłady (proste ciągi):
|
||||
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.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
|
||||
@ -1394,7 +1395,7 @@ Przykłady (proste ciągi):
|
||||
/eval -n ${base_encode:64,test} ==> dGVzdA==
|
||||
/eval -n ${base_decode:64,dGVzdA==} ==> test
|
||||
|
||||
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
|
||||
|
7
po/cs.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1636,7 +1636,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1645,6 +1646,8 @@ msgid ""
|
||||
"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"
|
||||
|
8
po/de.po
8
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:56+0100\n"
|
||||
"PO-Revision-Date: 2021-03-17 14:14+0100\n"
|
||||
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
|
||||
"Language-Team: German <kde-i18n-de@kde.org>\n"
|
||||
@ -1698,6 +1698,7 @@ msgstr ""
|
||||
"[-n|-s] [-d] <expression> || [-n] [-d [-d]] -c <expression1> <operator> "
|
||||
"<expression2>"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
" -n: display result without sending it to buffer (debug mode)\n"
|
||||
" -s: split expression before evaluating it (many commands can be "
|
||||
@ -1780,7 +1781,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1789,6 +1791,8 @@ msgid ""
|
||||
"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"
|
||||
|
7
po/es.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1666,7 +1666,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1675,6 +1676,8 @@ msgid ""
|
||||
"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"
|
||||
|
15
po/fr.po
15
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-03-16 18:31+0100\n"
|
||||
"PO-Revision-Date: 2021-03-16 18:32+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-03-17 21:47+0100\n"
|
||||
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
"Language: fr\n"
|
||||
@ -1754,7 +1754,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1763,6 +1764,8 @@ msgid ""
|
||||
"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"
|
||||
@ -1889,8 +1892,8 @@ msgstr ""
|
||||
" 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)\n"
|
||||
" hdata[liste].var1.var2... : démarrer avec un hdata en utilisant une liste, "
|
||||
"par exemple :\n"
|
||||
" hdata[liste].var1.var2... : démarrer avec un hdata en utilisant une liste/"
|
||||
"pointeur/nom de pointeur, par exemple :\n"
|
||||
" ${buffer[gui_buffers].full_name} : nom complet du premier tampon dans la "
|
||||
"liste chaînée des tampons\n"
|
||||
" ${plugin[weechat_plugins].name} : nom de la première extension dans la "
|
||||
@ -1899,6 +1902,8 @@ msgstr ""
|
||||
"pointeur, par exemple :\n"
|
||||
" ${buffer[0x1234abcd].full_name} : nom complet du tampon avec ce pointeur "
|
||||
"(peut être utilisé dans les triggers)\n"
|
||||
" ${buffer[my_pointer].full_name} : nom complet du tampon avec ce nom de "
|
||||
"pointeur (peut être utilisé dans les triggers)\n"
|
||||
"Pour le nom du hdata et des variables, voir la \"Référence API extension\", "
|
||||
"fonction \"weechat_hdata_get\".\n"
|
||||
"\n"
|
||||
|
7
po/hu.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1554,7 +1554,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1563,6 +1564,8 @@ msgid ""
|
||||
"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"
|
||||
|
7
po/it.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1649,7 +1649,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1658,6 +1659,8 @@ msgid ""
|
||||
"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"
|
||||
|
7
po/ja.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
|
||||
"Language-Team: Japanese <https://github.com/l/weechat/tree/master/"
|
||||
@ -1706,7 +1706,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1715,6 +1716,8 @@ msgid ""
|
||||
"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"
|
||||
|
8
po/pl.po
8
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-03-14 13:37+0100\n"
|
||||
"Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n"
|
||||
"Language-Team: Polish <kde-i18n-doc@kde.org>\n"
|
||||
@ -1665,6 +1665,7 @@ msgstr ""
|
||||
"[-n|-s] [-d] <wyrażenie> || [-n] [-d [-d]] -c <wyrażenie1> <operator> "
|
||||
"<wyrażenie2>"
|
||||
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
" -n: display result without sending it to buffer (debug mode)\n"
|
||||
" -s: split expression before evaluating it (many commands can be "
|
||||
@ -1747,7 +1748,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1756,6 +1758,8 @@ msgid ""
|
||||
"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"
|
||||
|
7
po/pt.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n"
|
||||
"Language-Team: Portuguese <>\n"
|
||||
@ -1708,7 +1708,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1717,6 +1718,8 @@ msgid ""
|
||||
"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"
|
||||
|
@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2021-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-03-05 20:43+0100\n"
|
||||
"Last-Translator: Érico Nogueira <ericonr@disroot.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1712,7 +1712,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1721,6 +1722,8 @@ msgid ""
|
||||
"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"
|
||||
|
7
po/ru.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1576,7 +1576,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1585,6 +1586,8 @@ msgid ""
|
||||
"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"
|
||||
|
7
po/tr.po
7
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-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2021-02-06 15:55+0100\n"
|
||||
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1407,7 +1407,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1416,6 +1417,8 @@ msgid ""
|
||||
"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"
|
||||
|
@ -21,7 +21,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2021-03-16 18:31+0100\n"
|
||||
"POT-Creation-Date: 2021-03-17 21:46+0100\n"
|
||||
"PO-Revision-Date: 2014-08-16 10:27+0200\n"
|
||||
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1409,7 +1409,8 @@ msgid ""
|
||||
"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, for example:\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 "
|
||||
@ -1418,6 +1419,8 @@ msgid ""
|
||||
"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"
|
||||
|
@ -7579,7 +7579,7 @@ command_init ()
|
||||
" 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, for example:\n"
|
||||
"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 "
|
||||
@ -7588,6 +7588,8 @@ command_init ()
|
||||
"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"
|
||||
|
@ -744,7 +744,9 @@ eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path,
|
||||
struct t_hashtable *hashtable;
|
||||
|
||||
EVAL_DEBUG_MSG(1, "eval_hdata_get_value(\"%s\", 0x%lx, \"%s\")",
|
||||
hdata->name, pointer, path);
|
||||
(hdata) ? hdata->name : "(null)",
|
||||
pointer,
|
||||
path);
|
||||
|
||||
value = NULL;
|
||||
var_name = NULL;
|
||||
@ -765,6 +767,9 @@ eval_hdata_get_value (struct t_hdata *hdata, void *pointer, const char *path,
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (!hdata)
|
||||
goto end;
|
||||
|
||||
/*
|
||||
* look for name of hdata, for example in "window.buffer.full_name", the
|
||||
* hdata name is "window"
|
||||
@ -903,8 +908,8 @@ end:
|
||||
char *
|
||||
eval_string_hdata (const char *text, struct t_eval_context *eval_context)
|
||||
{
|
||||
const char *pos, *pos1, *pos2;
|
||||
char *value, *hdata_name, *list_name, *tmp;
|
||||
const char *pos_vars, *pos1, *pos2;
|
||||
char *value, *hdata_name, *pointer_name, *tmp;
|
||||
void *pointer;
|
||||
struct t_hdata *hdata;
|
||||
int rc;
|
||||
@ -912,14 +917,16 @@ eval_string_hdata (const char *text, struct t_eval_context *eval_context)
|
||||
|
||||
value = NULL;
|
||||
hdata_name = NULL;
|
||||
list_name = NULL;
|
||||
pointer_name = NULL;
|
||||
pointer = NULL;
|
||||
|
||||
pos = strchr (text, '.');
|
||||
if (pos > text)
|
||||
hdata_name = string_strndup (text, pos - text);
|
||||
pos_vars = strchr (text, '.');
|
||||
if (pos_vars > text)
|
||||
hdata_name = string_strndup (text, pos_vars - text);
|
||||
else
|
||||
hdata_name = strdup (text);
|
||||
if (pos_vars)
|
||||
pos_vars++;
|
||||
|
||||
if (!hdata_name)
|
||||
goto end;
|
||||
@ -928,9 +935,12 @@ eval_string_hdata (const char *text, struct t_eval_context *eval_context)
|
||||
if (pos1 > hdata_name)
|
||||
{
|
||||
pos2 = strchr (pos1 + 1, ']');
|
||||
if (pos2 > pos1 + 1)
|
||||
if (pos2)
|
||||
{
|
||||
list_name = string_strndup (pos1 + 1, pos2 - pos1 - 1);
|
||||
if (pos2 > pos1 + 1)
|
||||
pointer_name = string_strndup (pos1 + 1, pos2 - pos1 - 1);
|
||||
else
|
||||
goto end;
|
||||
}
|
||||
tmp = string_strndup (hdata_name, pos1 - hdata_name);
|
||||
if (tmp)
|
||||
@ -942,13 +952,20 @@ eval_string_hdata (const char *text, struct t_eval_context *eval_context)
|
||||
|
||||
hdata = hook_hdata_get (NULL, hdata_name);
|
||||
if (!hdata)
|
||||
goto end;
|
||||
|
||||
if (list_name)
|
||||
{
|
||||
if (strncmp (list_name, "0x", 2) == 0)
|
||||
if (pos_vars || pointer_name)
|
||||
goto end;
|
||||
/* case of a single pointer which is not hdata, eg: ${my_pointer} */
|
||||
pointer = hashtable_get (eval_context->pointers, hdata_name);
|
||||
value = eval_hdata_get_value (NULL, pointer, pos_vars, eval_context);
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (pointer_name)
|
||||
{
|
||||
if (strncmp (pointer_name, "0x", 2) == 0)
|
||||
{
|
||||
rc = sscanf (list_name, "%lx", &ptr);
|
||||
rc = sscanf (pointer_name, "%lx", &ptr);
|
||||
if ((rc != EOF) && (rc != 0))
|
||||
{
|
||||
pointer = (void *)ptr;
|
||||
@ -959,7 +976,17 @@ eval_string_hdata (const char *text, struct t_eval_context *eval_context)
|
||||
goto end;
|
||||
}
|
||||
else
|
||||
pointer = hdata_get_list (hdata, list_name);
|
||||
{
|
||||
pointer = hdata_get_list (hdata, pointer_name);
|
||||
if (!pointer)
|
||||
{
|
||||
pointer = hashtable_get (eval_context->pointers, pointer_name);
|
||||
if (!pointer)
|
||||
goto end;
|
||||
if (!hdata_check_pointer (hdata, NULL, pointer))
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!pointer)
|
||||
@ -967,18 +994,17 @@ eval_string_hdata (const char *text, struct t_eval_context *eval_context)
|
||||
pointer = hashtable_get (eval_context->pointers, hdata_name);
|
||||
if (!pointer)
|
||||
goto end;
|
||||
if (!hdata_check_pointer (hdata, NULL, pointer))
|
||||
goto end;
|
||||
}
|
||||
|
||||
value = eval_hdata_get_value (hdata,
|
||||
pointer,
|
||||
(pos) ? pos + 1 : NULL,
|
||||
eval_context);
|
||||
value = eval_hdata_get_value (hdata, pointer, pos_vars, eval_context);
|
||||
|
||||
end:
|
||||
if (hdata_name)
|
||||
free (hdata_name);
|
||||
if (list_name)
|
||||
free (list_name);
|
||||
if (pointer_name)
|
||||
free (pointer_name);
|
||||
|
||||
return (value) ? value : strdup ("");
|
||||
}
|
||||
@ -1012,7 +1038,7 @@ end:
|
||||
* 20. an option (format: file.section.option)
|
||||
* 21. a buffer local variable
|
||||
* 22. a hdata variable (format: hdata.var1.var2 or hdata[list].var1.var2
|
||||
* or hdata[ptr].var1.var2)
|
||||
* or hdata[ptr].var1.var2 or hdata[ptr_name].var1.var2)
|
||||
*
|
||||
* See /help in WeeChat for examples.
|
||||
*
|
||||
|
@ -443,7 +443,11 @@ TEST(CoreEval, EvalExpression)
|
||||
char *value, str_value[256];
|
||||
const char *ptr_debug_output;
|
||||
|
||||
pointers = NULL;
|
||||
pointers = hashtable_new (32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_POINTER,
|
||||
NULL, NULL);
|
||||
CHECK(pointers);
|
||||
|
||||
extra_vars = hashtable_new (32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
@ -452,7 +456,11 @@ TEST(CoreEval, EvalExpression)
|
||||
CHECK(extra_vars);
|
||||
hashtable_set (extra_vars, "test", "value");
|
||||
|
||||
options = NULL;
|
||||
options = hashtable_new (32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
CHECK(options);
|
||||
|
||||
POINTERS_EQUAL(NULL, eval_expression (NULL, NULL, NULL, NULL));
|
||||
|
||||
@ -728,6 +736,9 @@ TEST(CoreEval, EvalExpression)
|
||||
WEE_CHECK_EVAL("weechat", "${name}");
|
||||
|
||||
/* test hdata */
|
||||
hashtable_set (pointers, "my_null_pointer", (const void *)0x0);
|
||||
hashtable_set (pointers, "my_buffer_pointer", gui_buffers);
|
||||
hashtable_set (pointers, "my_other_pointer", (const void *)0x1234abcd);
|
||||
WEE_CHECK_EVAL("x", "x${buffer.number");
|
||||
WEE_CHECK_EVAL("x${buffer.number}1",
|
||||
"x\\${buffer.number}${buffer.number}");
|
||||
@ -735,7 +746,20 @@ TEST(CoreEval, EvalExpression)
|
||||
WEE_CHECK_EVAL("1", "${window.buffer.number}");
|
||||
WEE_CHECK_EVAL("core.weechat", "${buffer.full_name}");
|
||||
WEE_CHECK_EVAL("core.weechat", "${window.buffer.full_name}");
|
||||
WEE_CHECK_EVAL("", "${buffer[].full_name}");
|
||||
WEE_CHECK_EVAL("", "${buffer[0x0].full_name}");
|
||||
WEE_CHECK_EVAL("", "${buffer[0x1].full_name}");
|
||||
WEE_CHECK_EVAL("", "${buffer[unknown_list].full_name}");
|
||||
WEE_CHECK_EVAL("", "${unknown_pointer}");
|
||||
WEE_CHECK_EVAL("", "${my_null_pointer}");
|
||||
snprintf (str_value, sizeof (str_value),
|
||||
"0x%lx", (long unsigned int)gui_buffers);
|
||||
WEE_CHECK_EVAL(str_value, "${my_buffer_pointer}");
|
||||
WEE_CHECK_EVAL("0x1234abcd", "${my_other_pointer}");
|
||||
WEE_CHECK_EVAL("", "${buffer[unknown_pointer].full_name}");
|
||||
WEE_CHECK_EVAL("", "${buffer[my_null_pointer].full_name}");
|
||||
WEE_CHECK_EVAL("core.weechat", "${buffer[my_buffer_pointer].full_name}");
|
||||
WEE_CHECK_EVAL("", "${buffer[my_other_pointer].full_name}");
|
||||
WEE_CHECK_EVAL("core.weechat", "${buffer[gui_buffers].full_name}");
|
||||
snprintf (str_value, sizeof (str_value),
|
||||
"${buffer[0x%lx].full_name}", (long unsigned int)gui_buffers);
|
||||
@ -754,13 +778,9 @@ TEST(CoreEval, EvalExpression)
|
||||
WEE_CHECK_EVAL(str_value, "${window.buffer.local_variables}");
|
||||
WEE_CHECK_EVAL("core", "${window.buffer.local_variables.plugin}");
|
||||
WEE_CHECK_EVAL("weechat", "${window.buffer.local_variables.name}");
|
||||
hashtable_remove_all (pointers);
|
||||
|
||||
/* test with another prefix/suffix */
|
||||
options = hashtable_new (32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
CHECK(options);
|
||||
hashtable_set (options, "prefix", "<<<");
|
||||
WEE_CHECK_EVAL("${info:version}", "${info:version}");
|
||||
WEE_CHECK_EVAL("<info:version}", "<info:version}");
|
||||
@ -773,14 +793,9 @@ TEST(CoreEval, EvalExpression)
|
||||
WEE_CHECK_EVAL("<<info:version>>", "<<info:version>>");
|
||||
WEE_CHECK_EVAL(version_get_version (), "<<<info:version>>>");
|
||||
WEE_CHECK_EVAL("1", "<<<buffer.number>>>");
|
||||
hashtable_free (options);
|
||||
hashtable_remove_all (options);
|
||||
|
||||
/* test with debug level 1 */
|
||||
options = hashtable_new (32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
CHECK(options);
|
||||
hashtable_set (options, "debug", "1");
|
||||
WEE_CHECK_EVAL("fedcba", "${rev:abcdef}");
|
||||
ptr_debug_output = (const char *)hashtable_get (options, "debug_output");
|
||||
@ -791,14 +806,9 @@ TEST(CoreEval, EvalExpression)
|
||||
" 2:== \"fedcba\"\n"
|
||||
"1:== \"fedcba\"",
|
||||
ptr_debug_output);
|
||||
hashtable_free (options);
|
||||
hashtable_remove_all (options);
|
||||
|
||||
/* test with debug level 2 */
|
||||
options = hashtable_new (32,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
WEECHAT_HASHTABLE_STRING,
|
||||
NULL, NULL);
|
||||
CHECK(options);
|
||||
hashtable_set (options, "debug", "2");
|
||||
WEE_CHECK_EVAL("fedcba", "${rev:abcdef}");
|
||||
ptr_debug_output = (const char *)hashtable_get (options, "debug_output");
|
||||
@ -809,9 +819,11 @@ TEST(CoreEval, EvalExpression)
|
||||
" 2:== \"fedcba\"\n"
|
||||
"1:== \"fedcba\"",
|
||||
ptr_debug_output);
|
||||
hashtable_free (options);
|
||||
hashtable_remove_all (options);
|
||||
|
||||
hashtable_free (pointers);
|
||||
hashtable_free (extra_vars);
|
||||
hashtable_free (options);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user