Trygve Aaberge
bd9978e467
core: check for newline characters in string_is_whitespace_char
...
This fixes a bug where if you had multiple lines in the input and
pressed ctrl-w when the cursor was after the first word of any line but
the first, it would delete both the word before the cursor and the last
word on the preceding line.
2023-06-27 21:26:47 +02:00
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