diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 7e580da6f..5146f6cd6 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -23,6 +23,7 @@ Bug fixes:: * core: force key "return" to command "/input return" when migrating legacy keys * core: display actual key name and command with key kbd:[Alt+k], remove key kbd:[Alt+K] (grab raw key) and associated commands `/input grab_raw_key` and `/input grab_raw_key_command` + * core: check for newline characters in string_is_whitespace_char (issue #1968) * api: do not convert option name to lower case in API functions config_set_plugin and config_set_desc_plugin * irc: reply to a CTCP request sent to self nick (issue #1966) * irc: sent "QUIT" message to servers connected with TLS on `/upgrade` diff --git a/src/core/wee-string.c b/src/core/wee-string.c index 2f6a7b3e8..83ee9e63c 100644 --- a/src/core/wee-string.c +++ b/src/core/wee-string.c @@ -1312,7 +1312,7 @@ string_convert_escaped_chars (const char *string) } /* - * Checks if first char of string is a whitespace (space or tab). + * Checks if first char of string is a whitespace (space, tab, newline or carriage return). * * Returns: * 1: first char is whitespace @@ -1322,7 +1322,11 @@ string_convert_escaped_chars (const char *string) int string_is_whitespace_char (const char *string) { - return (string && ((string[0] == ' ') || string[0] == '\t')) ? 1 : 0; + return (string && ( + (string[0] == ' ') + || (string[0] == '\t') + || (string[0] == '\n') + || (string[0] == '\r'))) ? 1 : 0; } /* diff --git a/tests/unit/core/test-core-string.cpp b/tests/unit/core/test-core-string.cpp index 876e71c0a..465276c66 100644 --- a/tests/unit/core/test-core-string.cpp +++ b/tests/unit/core/test-core-string.cpp @@ -1090,6 +1090,8 @@ TEST(CoreString, IsWhitespaceChar) LONGS_EQUAL(1, string_is_whitespace_char (" abc def")); LONGS_EQUAL(1, string_is_whitespace_char ("\tabc def")); + LONGS_EQUAL(1, string_is_whitespace_char ("\nabc def")); + LONGS_EQUAL(1, string_is_whitespace_char ("\rabc def")); } /*