tweaks: trim an ASCII case, as the function is called only for UTF-8

master
Benno Schulenberg 2020-07-20 19:37:40 +02:00
parent 43b39ed04f
commit dd1b16cd54
2 changed files with 3 additions and 12 deletions

View File

@ -196,18 +196,14 @@ int mbwidth(const char *c)
} else } else
return 1; return 1;
} }
#endif
/* Convert the Unicode value in code to a multibyte character, if possible. /* Convert the Unicode value in code to a multibyte character, if possible.
* If the conversion succeeds, return the (dynamically allocated) multibyte * If the conversion succeeds, return the (dynamically allocated) multibyte
* character and its length. Otherwise, return an undefined (dynamically * character and its length. Otherwise, return a length of zero. */
* allocated) multibyte character and a length of zero. */
char *make_mbchar(long code, int *length) char *make_mbchar(long code, int *length)
{ {
char *mb_char = charalloc(MAXCHARLEN); char *mb_char = charalloc(MAXCHARLEN);
#ifdef ENABLE_UTF8
if (use_utf8) {
*length = wctomb(mb_char, (wchar_t)code); *length = wctomb(mb_char, (wchar_t)code);
/* Reject invalid Unicode characters. */ /* Reject invalid Unicode characters. */
@ -215,15 +211,10 @@ char *make_mbchar(long code, int *length)
IGNORE_CALL_RESULT(wctomb(NULL, 0)); IGNORE_CALL_RESULT(wctomb(NULL, 0));
*length = 0; *length = 0;
} }
} else
#endif
{
*mb_char = (char)code;
*length = 1;
}
return mb_char; return mb_char;
} }
#endif /* ENABLE_UTF8 */
/* Return the length (in bytes) of the character located at *pointer. */ /* Return the length (in bytes) of the character located at *pointer. */
int char_length(const char *pointer) int char_length(const char *pointer)

View File

@ -209,8 +209,8 @@ bool is_word_char(const char *c, bool allow_punct);
char control_mbrep(const char *c, bool isdata); char control_mbrep(const char *c, bool isdata);
#ifdef ENABLE_UTF8 #ifdef ENABLE_UTF8
int mbwidth(const char *c); int mbwidth(const char *c);
#endif
char *make_mbchar(long code, int *length); char *make_mbchar(long code, int *length);
#endif
int char_length(const char *pointer); int char_length(const char *pointer);
size_t mbstrlen(const char *pointer); size_t mbstrlen(const char *pointer);
int collect_char(const char *string, char *thechar); int collect_char(const char *string, char *thechar);