From e1a461279731877ad66298d9c0576997474453af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sat, 21 Sep 2019 13:54:36 +0200 Subject: core: ignore color codes in ${length:xxx} and ${lengthscr:xxx} --- src/gui/gui-chat.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/gui/gui-chat.c') diff --git a/src/gui/gui-chat.c b/src/gui/gui-chat.c index 687e17686..fe2f07504 100644 --- a/src/gui/gui-chat.c +++ b/src/gui/gui-chat.c @@ -166,6 +166,30 @@ gui_chat_char_size_screen (const char *utf_char) return utf8_char_size_screen (utf_char); } +/* + * Returns number of char in a string (special chars like colors/attributes are + * ignored). + */ + +int +gui_chat_strlen (const char *string) +{ + int length; + + length = 0; + while (string && string[0]) + { + string = gui_chat_string_next_char (NULL, NULL, + (unsigned char *)string, 0, 0, 0); + if (string) + { + length++; + string = utf8_next_char (string); + } + } + return length; +} + /* * Returns number of char needed on screen to display a word (special chars like * colors/attributes are ignored). -- cgit v1.2.3