Sébastien Helleu
a6826af796
core: add creation of user variables in evaluated expressions with ${define:name,value}
2021-09-20 21:15:28 +02:00
Sébastien Helleu
5b3929b321
api: add split of string and shell arguments in evaluation of expressions
...
Split of string: ${split:number,separators,flags,xxx}
Split of shell arguments: ${split_shell:number,xxx}
2021-09-06 13:32:04 +02:00
Sébastien Helleu
2de272ee6c
api: add "${re:repl_index}" to get the index of replacement in function string_eval_expression
2021-08-29 10:40:52 +02:00
Sébastien Helleu
d89c4f559c
api: add random integer number in evaluation of expressions with "random:min,max"
2021-08-03 19:46:41 +02:00
Sébastien Helleu
b21589944e
core, irc, script: fix typos
2021-05-29 14:33:13 +02:00
Sébastien Helleu
e5f58b77c1
core, buflist, irc, relay: replace freenode by libera in comments
2021-05-25 13:39:55 +02:00
Sébastien Helleu
5bce484c01
api: add translated string in evaluation of expressions with "translate:xxx" (issue #1622 )
2021-05-16 10:01:03 +02:00
Sébastien Helleu
0f9640a5f3
core: split WeeChat home in 4 directories, use XDG directories by default (issue #1285 )
...
The 4 directories (which can be the same):
- config: configuration files, certificates
- data: log/upgrade files, local plugins, scripts, xfer files
- cache: script repository, scripts downloaded (temporary location)
- runtime: FIFO pipe, relay UNIX sockets
2021-05-11 21:06:34 +02:00
Sébastien Helleu
3bf585ba04
core: evaluate left/right part of comparison after split on the comparison operator in ${if:xxx} ( closes #1627 )
...
To force evaluation of the expression before doing the comparison (less safe),
the "${eval_cond:xxx}" can be used.
With the old behavior we had:
>> ${if:a==b}
== [0]
>> ${if:${raw:a==b}}
== [0]
>> ${if:${eval_cond:${raw:a==b}}}
== [0]
And with the new behavior, we have:
>> ${if:a==b}
== [0]
>> ${if:${raw:a==b}}
== [1]
>> ${if:${eval_cond:${raw:a==b}}}
== [0]
2021-04-04 14:44:18 +02:00
Sébastien Helleu
4d96a3a84d
core: add pointer name in description of function eval_replace_vars_cb
2021-03-18 07:35:12 +01:00
Sébastien Helleu
8ee7d46605
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
2021-03-17 21:57:16 +01:00
Sébastien Helleu
a93e598c35
core: add raw string in evaluation of expressions with "raw:xxx" ( closes #1611 )
2021-02-05 20:07:16 +01:00
Sébastien Helleu
efc7a588d6
core: update copyright dates
2021-01-02 21:34:16 +01:00
Sébastien Helleu
470e3ef9cf
core: move debug_id assignation in macro EVAL_DEBUG_MSG
2021-01-02 14:43:40 +01:00
Sébastien Helleu
d413ccdf4f
core: add indentation and colors in /eval debug output
2021-01-01 17:08:59 +01:00
Sébastien Helleu
2ad3da03a2
core: display more verbose debug with two "-d" in command /eval
...
Now a single -d in command /eval shows less debug messages than previous
versions.
To get the same debug messages than previous versions, two -d must be used.
2020-12-31 20:37:43 +01:00
Sébastien Helleu
b626df72fb
core: add evaluation of conditions in evaluation of expressions with "eval_cond:" ( closes #1582 )
2020-11-14 09:28:46 +01:00
Sébastien Helleu
cfd221014c
api: add argument "bytes" in function string_dyn_concat
2020-08-23 23:27:57 +02:00
Sébastien Helleu
66d4590dab
core: add base 16/32/64 encoding/decoding in evaluation of expressions
2020-05-21 09:36:35 +02:00
Sébastien Helleu
8f308ea918
core: split function eval_replace_vars_cb into multiple functions
2020-05-20 00:04:45 +02:00
Sébastien Helleu
b1c3a29ac7
core: add include comparison operators in evaluation of expressions
...
New comparison operators:
- "==*": is matching mask, case sensitive (wildcard "*" is allowed)
- "!!*": is NOT matching mask, case sensitive (wildcard "*" is allowed)
- "==-": is included, case sensitive
- "!!-": is NOT included, case sensitive
- "=-": is included, case insensitive
- "!-": is NOT included, case insensitive
2020-05-05 20:43:45 +02:00
Sébastien Helleu
feb6258910
core: update copyright dates
2020-01-04 10:41:26 +01:00
Sébastien Helleu
e612e63140
core: fix evaluation of condition with nested "if" ( closes #1434 )
2019-12-18 21:22:36 +01:00
Sébastien Helleu
a13099aa63
core: add debug option "-d" in command /eval (issue #1434 )
2019-12-18 21:18:59 +01:00
Sébastien Helleu
8fc8f728d4
core: add reverse of string for screen in evaluation of expressions with "revscr:"
2019-10-12 20:14:36 +02:00
Sébastien Helleu
88aa82d672
core: add support of modifiers in evaluation of expressions with "modifier:name,data,string" (issue #60 )
2019-10-06 09:13:35 +02:00
Sébastien Helleu
e1a4612797
core: ignore color codes in ${length:xxx} and ${lengthscr:xxx}
2019-09-21 13:54:36 +02:00
Sébastien Helleu
dcfc4e8ed5
core: add "length:xxx" and "lengthscr:xxx" in evaluation of expressions
2019-09-21 07:56:21 +02:00
Sébastien Helleu
997894edc0
core: add calculation of expression in evaluation of expressions with "calc:..." (issue #997 )
2019-09-20 21:37:01 +02:00
Sébastien Helleu
3d95217745
api: return allocated string in hook_info callback and function info_get
2019-04-13 08:42:45 +02:00
Sébastien Helleu
2b0057239b
core: update copyright dates
2019-01-01 15:40:51 +01:00
Sébastien Helleu
4712d0bb06
core: use https for links to GNU GPL license
2018-11-29 23:16:07 +01:00
Sébastien Helleu
8da3458f4c
core: add repeat of string in evaluation of expressions with "repeat:count,string" ( closes #958 )
2018-10-09 21:12:02 +02:00
Sébastien Helleu
82697714e1
core: fix evaluation of nested ternary operators ( closes #1263 )
2018-10-08 22:51:08 +02:00
Sébastien Helleu
8abd05fe3d
core: replace "long unsigned int" by "unsigned long"
2018-10-01 22:21:25 +02:00
Sébastien Helleu
6bf0dfddd6
core: fix evaluation of condition when the left operand is an empty string
2018-08-18 15:30:16 +02:00
Sébastien Helleu
1a0087a7d7
core: fix string evaluation with regex replacement when the string is empty
2018-08-16 22:45:42 +02:00
Sébastien Helleu
dc12f6bef0
fset: fix crash when applying filters after closing the fset buffer ( closes #1204 )
2018-06-11 23:03:02 +02:00
Sébastien Helleu
1abf4040f1
core: add reverse of string in evaluation of expressions with "rev:" ( closes #1200 )
2018-06-02 16:01:14 +02:00
Sébastien Helleu
76f3be5260
core: fix infinite loop in evaluation of strings ( closes #1183 )
2018-04-17 20:27:48 +02:00
Sébastien Helleu
7877e1b8c2
core: add an eval context structure
...
A pointer to this structure is given as parameter in each eval function called:
- eval_replace_vars
- eval_expression_condition
- eval_replace_regex
2018-04-17 20:27:12 +02:00
Sébastien Helleu
ed4837b2f6
core: update copyright dates
2018-01-05 00:54:18 +01:00
Sébastien Helleu
1d56e17b2f
core: allow floating point and hexadecimal numbers in comparison of evaluated values
2017-10-17 20:43:40 +02:00
Sébastien Helleu
aeeec38d6f
core: fix cast of time_t (to "long long" instead of "long") ( closes #1051 )
2017-08-12 18:36:45 +02:00
Sébastien Helleu
a0f1f3fd68
core: remove unused variable "index" in function eval_hdata_get_value
2017-05-28 08:25:41 +02:00
Sébastien Helleu
925e8b79a8
core: allow index for hdata arrays in evaluation of expressions
2017-05-20 00:05:31 +02:00
Simmo Saan
1329dfb57a
core: add wildcard matching operators to eval ( closes #608 )
2017-04-29 17:04:44 +02:00
Sébastien Helleu
49cdbaab38
core: fix check of condition in ${if:...} (evaluated strings)
2017-04-25 19:41:49 +02:00
Sébastien Helleu
a96d27f236
core: add new cut formats in function comment
2017-04-25 07:19:02 +02:00
Sébastien Helleu
112bebcddf
core: add a way to count the suffix length in max chars displayed in cut of string ("cut:" and "cutscr:") ( closes #963 )
...
The format to use is one of:
- ${cut:+max,suffix,string}
- ${cutscr:+max,suffix,string}
With the "+" before max, WeeChat ensures there are at most "max" chars in
output, including the length of suffix string.
2017-04-24 22:37:49 +02:00