Sébastien Helleu
46b9428f9e
tests: reverse arguments in calls to STRCMP_EQUAL
2023-05-14 18:52:23 +02:00
Sébastien Helleu
6d7f10ef20
core: fix execution of multiple commands separated by newline when there are no spaces
...
For example typing this on core buffer:
/t1
/t2
was not executing the two commands but sent the text to the buffer instead.
This is because WeeChat thinks it's a path, and the newline should indicate
it's not (like a space before the next slash: "/t1 /t2" is a command, not a
path, but "/t1/t2" is considered a path).
2023-05-05 20:28:11 +02:00
Sébastien Helleu
74154d972d
tests: fix comments (issue #1877 )
2023-01-30 21:44:09 +01:00
Sébastien Helleu
69a635412d
core: add function string_get_common_bytes_count (issue #1877 )
2023-01-30 21:44:03 +01:00
Sébastien Helleu
38ffac78f3
core: add function string_levenshtein (issue #1877 )
2023-01-30 21:43:58 +01:00
Sébastien Helleu
347c3f3214
core: move function hook_get_priority_and_name to wee-string.c (issue #1872 )
2023-01-28 15:13:18 +01:00
Sébastien Helleu
51d0a6f402
tests: add tests on string comparison functions
2023-01-14 21:44:19 +01:00
Sébastien Helleu
33bba784c3
core: update copyright dates
2023-01-01 14:54:35 +01:00
Sébastien Helleu
21f3575016
api: add functions string_strcmp and string_strncmp
2022-12-24 18:29:35 +01:00
Sébastien Helleu
a67556907d
api: rename char comparison functions "utf8_char*" to "string_char*"
2022-12-24 17:33:22 +01:00
Sébastien Helleu
083032972d
api: return arithmetic difference between chars in string comparison functions
...
Return code is changed for the following functions:
- string_strcasecmp
- string_strcasecmp_range
- string_strncasecmp
- string_strncasecmp_range
- string_strcmp_ignore_chars
- utf8_charcmp
- utf8_charcasecmp
- utf8_charcasecmp_range
2022-12-24 16:25:20 +01:00
Sébastien Helleu
5fc656a1b8
api: fix function strcmp_ignore_chars with case sensitive comparison and wide chars starting with the same byte
2022-12-23 23:20:29 +01:00
Sébastien Helleu
68b510517e
core: improve case convert and insensitive char comparisons ( closes #258 )
...
All lowercase letters are now properly converted to uppercase letters (and vice
versa), via functions `towupper` and `towlower`.
Functions `string_tolower`, `string_toupper` and `utf8_charcasecmp` have been
optimized to be faster when there are ASCII chars (< 128); functions are about
25-40% faster with mixed chars (both ASCII and multi-bytes).
Function `utf8_wide_char` has been removed, `utf8_char_int` can be used
instead.
2022-12-21 20:49:09 +01:00
Sébastien Helleu
40339b288a
api: return newly allocated string in functions string_tolower and string_toupper
2022-12-18 14:28:58 +01:00
Sébastien Helleu
ef842c5e62
core: fix function string_cut when there are non printable chars in suffix
2022-12-10 16:05:14 +01:00
Sébastien Helleu
3b674a5e16
tests: add another test on function string_translate_chars
2022-11-05 22:34:39 +01:00
Sébastien Helleu
bc2fb071e2
api: add function string_translate_chars
2022-11-05 22:34:38 +01:00
Sébastien Helleu
e7b6e8c60f
api: restrict number to integer in function string_parse_size
2022-09-27 15:50:43 +02:00
Sébastien Helleu
4d74a89cfc
api: add function string_parse_size
2022-09-27 15:50:43 +02:00
Sébastien Helleu
01cf98e8fb
core: add key alt+backspace, change behavior of key ctrl+w ( closes #559 )
...
The key ctrl+w now deletes one word until whitespace.
The new key alt+backspace deletes one word (same behavior as ctrl+w in previous
releases).
2022-09-18 23:26:49 +02:00
Sébastien Helleu
06b6f457d9
tests: add tests on dynamic string functions with NULL string
2022-08-13 14:38:08 +02:00
Sébastien Helleu
b7441bd7a3
api: add arguments "index_start" and "index_end" in function string_rebuild_split_string
2022-07-20 13:16:35 +02:00
Sébastien Helleu
62e68f965f
api: rename function string_build_with_split_string to string_rebuild_split_string
2022-07-20 12:14:40 +02:00
Sébastien Helleu
5d809df6ed
tests: move include of tests/tests.h outside of extern "C"
2022-03-10 21:12:46 +01:00
Sébastien Helleu
7051c0fc2b
tests: add tests on function string_strndup
2022-02-19 16:33:49 +01:00
Sébastien Helleu
c44b79dce7
core: update copyright dates
2022-01-17 18:41:06 +01:00
Sébastien Helleu
305608ce89
tests: split tests on functions string_tolower and string_toupper
2022-01-14 21:43:06 +01:00
Sébastien Helleu
f8915129bf
core: rename argument "length" to "bytes" in function string_strndup
2022-01-14 21:41:25 +01:00
Sébastien Helleu
5ddd72c0e9
tests: add extra tests on functions string_strcmp_ignore_chars and string_convert_escaped_chars
2021-11-09 20:41:23 +01:00
Sébastien Helleu
dccf605e66
typing: add typing plugin
2021-07-04 13:27:32 +02:00
Sébastien Helleu
60b9e36ae2
core: fix function string_match with joker in the string if multiple words matched in input string
...
Before fix:
string_match("script.color.text_description", "*script*color*", 0) => 0
After fix:
string_match("script.color.text_description", "*script*color*", 0) => 1
2021-06-22 21:54:16 +02:00
Sébastien Helleu
6ac6cf7293
tests: add test of base64 encode/decode with NUL char in string
2021-06-01 20:39:04 +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
efc7a588d6
core: update copyright dates
2021-01-02 21:34:16 +01:00
Sébastien Helleu
1c5e5824e7
tests: run callback when resetting options in tests
2020-10-03 14:40:59 +02: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
8818fbb233
tests: fix memory leak in test of function string_hex_dump
2020-05-31 14:51:41 +02:00
Sébastien Helleu
aaa49d3188
tests: add tests on function string_input_for_buffer with custom command chars
2020-05-21 10:06:51 +02:00
Sébastien Helleu
f4913d0a6b
tests: add tests on function string_is_command_char with custom command chars
2020-05-21 10:06:42 +02:00
Sébastien Helleu
99b13aa671
tests: add test on function string_base64_decode with truncated base64 string
2020-05-21 09:56:35 +02:00
Sébastien Helleu
a997893cfe
tests: add test on function string_base16_decode with a char >= 0xA0
2020-05-21 09:55:40 +02:00
Sébastien Helleu
1994d5641d
core: move functions string_base_encode and string_base_decode from plugin-api.c to wee-string.c
2020-05-21 00:02:24 +02:00
Sébastien Helleu
0ac936a5cf
core: return -1 in case of error in functions string_base16_decode and string_base64_decode
2020-05-21 00:01:35 +02:00
Sébastien Helleu
9a6a27ef58
core: move crypto functions to wee-crypto.c, rename API function string_hash to crypto_hash
2020-03-01 21:24:27 +01:00
Sébastien Helleu
c4ef3d6c2e
core: merge functions string_hash_binary and string_hash into a single function string_hash
2020-03-01 16:41:28 +01:00
Sébastien Helleu
7449bc8827
core: add support of CRC32 algorithm in hash functions
2020-02-29 21:12:13 +01:00
Sébastien Helleu
410a5b341f
api: add functions string_hash_binary and string_hash
2020-02-29 21:02:42 +01:00
Sébastien Helleu
feb6258910
core: update copyright dates
2020-01-04 10:41:26 +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
Tobias Stoeckmann
f7b84fcc67
Fixed segfault during excessive evaluation.
...
It is possible to trigger a segmentation fault while processing
an evaluation of repeating string. On a Linux 64 bit system,
enter this (or adjust arguments for 32 bit accordingly):
/eval -n ${repeat:1073741824,----}
It will overflow an integer calculation because int instead of
size_t is used. Proper check of int limitations fixes this issue.
I haven't changed this specific piece of code to size_t because it
would crash in other parts of the code tree instead. For now, int
is a limitating factor when it comes to strings (and should be
enough for sane use cases).
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org >
2019-09-17 21:26:52 +02:00