diff --git a/src/chars.c b/src/chars.c index 9ea0bc07..0bb6a3e4 100644 --- a/src/chars.c +++ b/src/chars.c @@ -292,10 +292,9 @@ char *make_mbchar(long chr, int *chr_mb_len) * col isn't NULL, add the character's width (in columns) to it. */ int parse_mbchar(const char *buf, char *chr, size_t *col) { -#ifdef ENABLE_UTF8 - if (use_utf8) { int length; +#ifdef ENABLE_UTF8 /* If this is a UTF-8 starter byte, get the number of bytes of the character. */ if ((signed char)*buf < 0) { length = mblen(buf, MAXCHARLEN); @@ -304,6 +303,7 @@ int parse_mbchar(const char *buf, char *chr, size_t *col) if (length <= 0) length = 1; } else +#endif length = 1; /* When requested, store the multibyte character in chr. */ @@ -327,35 +327,13 @@ int parse_mbchar(const char *buf, char *chr, size_t *col) /* If we have a normal character, get its width normally. */ } else if (length == 1) *col += 1; +#ifdef ENABLE_UTF8 else *col += mbwidth(buf); +#endif } return length; - } else -#endif - { - /* When requested, store the byte character in chr. */ - if (chr != NULL) - *chr = *buf; - - /* When requested, add the width of the character to col. */ - if (col != NULL) { - /* If we have a tab, compute its width in columns using the - * current value of col. */ - if (*buf == '\t') - *col += tabsize - *col % tabsize; - /* If we have a control character, it's two columns wide: one - * column for the "^", and one for the visible character. */ - else if (is_cntrl_char((unsigned char)*buf)) - *col += 2; - /* If we have a normal character, it's one column wide. */ - else - (*col)++; - } - - return 1; - } } /* Return the index in buf of the beginning of the multibyte character