Sébastien Helleu
5d9af29024
api: add infos "nick_color_ignore_case" and "nick_color_name_ignore_case" (issue #194 )
2023-08-24 18:19:32 +02:00
Trygve Aaberge
b551d6f247
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:28:24 +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
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
fa6a9bb934
api: readjust string size in function string_dyn_free when string is not freed (issue #1875 )
...
This frees some allocated memory if size_alloc was greater than size in the
dynamic string.
2023-01-29 12:41:19 +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
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
0dd1d4133b
doc/api: mention "UTF-8" in char/string comparison functions
2022-12-24 17:52:31 +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
42113ebc0f
core: return directly output of string_dyn_free without temporary variable
2022-12-19 07:04:33 +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
eb6cc0bc2a
core: return number of bytes for UTF-8 char in function utf8_int_string
2022-12-18 14:13:14 +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
bc2fb071e2
api: add function string_translate_chars
2022-11-05 22:34:38 +01:00
Sébastien Helleu
193aa0448f
core: fix compilation warning on isdigit function
2022-10-08 12:18:09 +02: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
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
7f8e5b892d
core: call strdup in string_strndup if bytes equals strlen of string
2022-02-19 16:32:59 +01:00
Sébastien Helleu
c44b79dce7
core: update copyright dates
2022-01-17 18:41: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
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
b21589944e
core, irc, script: fix typos
2021-05-29 14:33:13 +02:00
Sébastien Helleu
70cdf21681
doc: add XDG directories support in docs (issue #1285 )
2021-05-11 21:07:30 +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
943374f789
doc: add note about call to "regfree" after call to "string_regcomp" (plugin API reference)
2021-01-01 18:10:47 +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
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
Sébastien Helleu
9178156354
api: add argument "strip_items" in function string_split
2019-06-15 20:47:14 +02:00
Sébastien Helleu
866a29c7e6
core: check that string pointer is not NULL in function "string_shared_get"
2019-06-15 17:21:06 +02:00
Sébastien Helleu
1ef7a55e72
core: fix typo: Weechat -> WeeChat
2019-03-17 18:34:21 +01:00
Sébastien Helleu
2b70d71aa1
core: replace argument "keep_eol" by "flags" in function string_split ( closes #1322 )
2019-03-10 18:29:16 +01:00
Sébastien Helleu
8aa5f5375e
core: add value -1 for keep_eol in function string_strip (issue #1322 )
...
The value -1 means it's a standard split, but empty items are kept, and
separators are not removed at beginning/end of string.
2019-03-09 21:56:05 +01:00