1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-25 12:26:40 +02:00
Commit Graph

253 Commits

Author SHA1 Message Date
Sébastien Helleu db177de204 core: make configuration files, sections and options case sensitive (issue #1872) 2023-01-28 15:13:45 +01:00
Sébastien Helleu 72f4596fb2 core: add function config_file_get_configs_by_priority (issue #1872) 2023-01-28 15:13:43 +01:00
Sébastien Helleu 0dd1d1be1c core: sort configuration files by name, reload them by priority (issue #1872) 2023-01-28 15:13:36 +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 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 18c9ade580 core: add whole string information in /debug unicode 2022-12-10 17:32:09 +01:00
Sébastien Helleu 5b9b1e175b core: add color attributes "blink" and "dim" (half bright) (closes #1855) 2022-12-10 16:37:03 +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 f1cfd6f73f core: do not display non printable chars, fix function utf8_char_size_screen
Now the function utf8_char_size_screen can return -1 when the char is not
printable.

It has a specific behavior for some chars:

- U+0009: value of option weechat.look.tab_width
- U+0001 to U+001F (except U+0009): 1
- U+00AD (soft hyphen): -1
- U+200B (zero width space): -1
2022-12-10 16:05:14 +01:00
Sébastien Helleu 71ae8f1907 api: add function utf8_strncpy 2022-12-10 16:05:14 +01:00
Sébastien Helleu e5cbbd781d core: optimize and fix function utf8_strlen_screen with non printable chars
When there non printable chars, the return of the function was 1.
For example utf8_strlen_screen("abc\x01") now returns 4 instead of 1.

In addition the function has been optimized to not use the `mbstowcs` function
which is slow; result is up to 15% faster.
2022-12-10 16:05:14 +01:00
Sébastien Helleu 0e6677fbcb core: add result of utf8_char_size_screen in /debug unicode 2022-12-10 16:05:14 +01:00
Sébastien Helleu 55569c182a core: display hex codepoint before integer codepoint in /debug unicode 2022-12-03 10:15:18 +01:00
Sébastien Helleu bbd0f5d26b tests: define constants with UTF-8 strings, add tests on functions returning size on screen 2022-11-27 12:29:36 +01:00
Sébastien Helleu baab9cc7c5 core: add option unicode in command /debug 2022-11-21 20:45:41 +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 196a051141 core: add range of chars in evaluation of expressions with chars:xxx 2022-11-05 22:34:38 +01:00
Sébastien Helleu bc2fb071e2 api: add function string_translate_chars 2022-11-05 22:34:38 +01:00
Trygve Aaberge fdb1ff3781 tests: Use LONGS_EQUAL for version number tests
util_version_number returns an int, but BYTES_EQUAL only compares the
last byte of the int, so it wouldn't test the rest of the int.

I see other tests for functions returning an int use LONGS_EQUAL, so
that seems correct to use.
2022-10-08 18:13:00 +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 0090695f7d api: add function crypto_hash_file 2022-08-16 21:33:50 +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 51ed9ec93e core: add case conversion in evaluation of expressions (closes #1778) 2022-04-18 13:46:16 +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 15f5bc7944 tests: add missing include of stdio.h 2021-11-21 16:37:23 +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 4c9e7ed09e tests: fix allocation of test_ptr_1_hashtable_dyn in hdata tests 2021-11-07 18:13:03 +01:00
Sébastien Helleu 12043622e6 tests: add tests on UTF-8 string functions 2021-11-07 14:39:48 +01:00
Sébastien Helleu 2da2172593 api: add parameters pointers, extra_vars and options in function hdata_search 2021-11-06 15:59:18 +01:00
Sébastien Helleu 14c6ef3d83 tests: add missing include of string.h 2021-11-05 20:21:17 +01:00
Sébastien Helleu 9c5837d143 core: add unit tests on hdata 2021-11-05 20:04:10 +01:00
Sébastien Helleu ad5fa7c99f core: add command /toggle 2021-10-01 22:55:38 +02:00
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