diff --git a/src/chars.c b/src/chars.c index c8450684..b3eeb1b5 100644 --- a/src/chars.c +++ b/src/chars.c @@ -648,20 +648,13 @@ char *mbrevstrpbrk(const char *head, const char *accept, const char *pointer) #endif /* !NANO_TINY */ #if defined(ENABLE_NANORC) && (!defined(NANO_TINY) || defined(ENABLE_JUSTIFY)) -/* Return TRUE if the given string contains at least one blank character, - * and FALSE otherwise. */ +/* Return TRUE if the given string contains at least one blank character. */ bool has_blank_char(const char *string) { - char symbol[MAXCHARLEN]; + while (*string != '\0' && !is_blank_char(string)) + string += char_length(string); - while (*string != '\0') { - string += collect_char(string, symbol); - - if (is_blank_char(symbol)) - return TRUE; - } - - return FALSE; + return *string; } #endif /* ENABLE_NANORC && (!NANO_TINY || ENABLE_JUSTIFY) */ diff --git a/src/text.c b/src/text.c index 0d3c2480..b8cc00d3 100644 --- a/src/text.c +++ b/src/text.c @@ -1453,21 +1453,12 @@ ssize_t break_line(const char *textstart, ssize_t goal, bool snap_at_nl) * "indentation" of a line is the leading consecutive whitespace. */ size_t indent_length(const char *line) { - size_t len = 0; - char onechar[MAXCHARLEN]; - int charlen; + const char *start = line; - while (*line != '\0') { - charlen = collect_char(line, onechar); + while (*line != '\0' && is_blank_char(line)) + line += char_length(line); - if (!is_blank_char(onechar)) - break; - - line += charlen; - len += charlen; - } - - return len; + return (line - start); } #endif