1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 22:36:38 +02:00
Commit Graph

66 Commits

Author SHA1 Message Date
Sébastien Helleu 498ee539ea core: make case insensitive comparison with a lower case string (issue #1872)
This is faster because with case insensitive comparison, the chars are
converted to lower case anyway before being compared.
2023-01-28 15:13:51 +01:00
Sébastien Helleu 33bba784c3 core: update copyright dates 2023-01-01 14:54: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 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 95286c1eb3 core: remove unneeded casts 2022-12-19 13:01:33 +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 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 c44b79dce7 core: update copyright dates 2022-01-17 18:41:06 +01:00
Sébastien Helleu efc7a588d6 core: update copyright dates 2021-01-02 21:34:16 +01:00
Sébastien Helleu feb6258910 core: update copyright dates 2020-01-04 10:41:26 +01: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 7ee88fb46c core: fix some styles 2018-01-07 09:11:45 +01:00
Sébastien Helleu ed4837b2f6 core: update copyright dates 2018-01-05 00:54:18 +01:00
Sébastien Helleu 705d86e684 core: update copyright dates 2017-01-01 11:32:04 +01:00
Sébastien Helleu 3330724574 core: update copyright dates 2016-01-01 11:09:53 +01:00
Sébastien Helleu 46a9d17ac3 api: add argument "length" in function utf8_is_valid() 2015-08-18 07:36:48 +02:00
Sébastien Helleu 4ecd8a505f api: fix type of value returned by functions utf8_prev_char, utf8_next_char and utf8_add_offset 2015-07-04 08:39:55 +02:00
Sébastien Helleu a020c28ea6 core: update copyright dates 2015-01-01 09:23:23 +01:00
Sébastien Helleu 45f1b6bfc5 core: fix code style in function utf8_is_valid() 2014-07-20 15:50:12 +02:00
Sébastien Helleu 1e669e4b1e Merge branch 'master' of git://github.com/anders/weechat into anders-master 2014-07-20 12:41:39 +02:00
Sébastien Helleu 95011c82e0 core: return only -1, 0 or 1 in string comparison functions 2014-07-05 11:38:44 +02:00
Anders Bergh b705e20a44 core: overlong UTF-8 encoding and surrogates (U+D800-DFFF) are invalid. 2014-06-16 22:24:46 +02:00
Sebastien Helleu 97cede06b5 core: add support of escaped unicode chars in commands /print and "/input insert" 2014-01-24 12:53:23 +01:00
Sebastien Helleu facd73734d core: update some function comments 2014-01-18 09:09:23 +01:00
Sebastien Helleu 4b7e90c679 core: add option weechat.look.tab_width 2014-01-15 15:10:54 +01:00
Sebastien Helleu 892aa79fb5 core: update copyright dates 2014-01-01 00:14:12 +01:00
Sebastien Helleu 42dce54812 core: fix spaces displayed after combining chars (bug #40115) 2013-10-02 08:03:22 +02:00
Sebastien Helleu 37b8aef96d core: move test of invalid UTF-8 char length from gui-chat.c to wee-utf8.c 2013-06-29 16:10:09 +02:00
Sebastien Helleu f97598b4aa core: update copyright dates 2013-01-01 13:12:49 +01:00
Sebastien Helleu 7eb5cc4b97 core: move comments with description of C file to top of files 2012-12-15 12:27:57 +01:00
Sebastien Helleu 7d34812f1c core: reformat comments for functions 2012-12-13 18:51:44 +01:00
Sebastien Helleu 3bc15f0e55 core: fix compilation warning on a comparison using type "wint_t" 2012-05-15 15:30:43 +02:00
Sebastien Helleu d279a66df8 core: do not use malloc in function utf8_strlen_screen for small strings (4 bytes or less) 2012-04-14 18:14:25 +02:00
Sebastien Helleu 47e4a03be6 core: update copyright dates 2012-01-08 18:59:50 +01:00
Sebastien Helleu 491412b314 api: add new functions strcasecmp_range and strncasecmp_range 2011-11-12 10:37:44 +01:00
Sebastien Helleu dfdf42e27b core: remove unneeded whitespace 2011-10-26 20:37:03 +02:00
Sebastien Helleu cbdf4a4ae1 core: remove "const" for first argument of function utf8_normalize 2011-08-02 13:24:53 +02:00
Sebastien Helleu 3dbd5e3564 Add missing parentheses 2011-02-08 21:42:25 +01:00
Sebastien Helleu d24f6e9e17 Update copyright dates 2011-01-01 18:06:29 +01:00
Sebastien Helleu 6562d676fe Update licenses and copyrights, add missing author names in sources 2010-06-22 19:46:28 +02:00
Sebastien Helleu 31bfcf96c7 Reformat and add comments for description of C sources 2010-04-08 18:15:00 +02:00
Sebastien Helleu 2133eb30ff Update copyright dates 2010-01-03 19:31:55 +01:00
Sebastien Helleu 859f6db87b Fix bug when comparing chars and ignoring case (with some locales) (bug #27190)
There was a problem with some locales like turkish, where upper "i" is "İ".
All IRC commands with "I" inside (JOIN, PRIVMSG, ..) failed with turkish
locale.
2009-08-06 15:08:11 +02:00
Sebastien Helleu 26919fe58b Add french translation of Plugin API Reference 2009-06-28 00:47:37 +02:00
Sebastien Helleu 9679cd4fbf Fix compilation problem on FreeBSD: replace call to wcscasecmp() by towlower() 2009-04-15 11:33:45 +02:00
Sebastien Helleu 28e5913ad2 Fix text search in buffer with some utf-8 chars (bug #25649) 2009-04-14 14:12:28 +02:00