wcwidth.c | wcwidth.c | |||
---|---|---|---|---|
/* Determine the number of screen columns needed for a character. | /* Determine the number of screen columns needed for a character. | |||
Copyright (C) 2006-2007, 2010 Free Software Foundation, Inc. | Copyright (C) 2006-2007, 2010-2014 Free Software Foundation, Inc. | |||
This program is free software: you can redistribute it and/or modify | This program is free software: you can redistribute it and/or modify | |||
it under the terms of the GNU Lesser General Public License as published by | it under the terms of the GNU Lesser General Public License as published by | |||
the Free Software Foundation; either version 3 of the License, or | the Free Software Foundation; either version 3 of the License, or | |||
(at your option) any later version. | (at your option) any later version. | |||
This program is distributed in the hope that it will be useful, | This program is distributed in the hope that it will be useful, | |||
but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
GNU Lesser General Public License for more details. | GNU Lesser General Public License for more details. | |||
skipping to change at line 35 | skipping to change at line 35 | |||
#include "localcharset.h" | #include "localcharset.h" | |||
#include "streq.h" | #include "streq.h" | |||
#include "uniwidth.h" | #include "uniwidth.h" | |||
int | int | |||
wcwidth (wchar_t wc) | wcwidth (wchar_t wc) | |||
#undef wcwidth | #undef wcwidth | |||
{ | { | |||
/* In UTF-8 locales, use a Unicode aware width function. */ | /* In UTF-8 locales, use a Unicode aware width function. */ | |||
const char *encoding = locale_charset (); | const char *encoding = locale_charset (); | |||
if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0)) | if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0)) | |||
{ | { | |||
/* We assume that in a UTF-8 locale, a wide character is the same as a | /* We assume that in a UTF-8 locale, a wide character is the same as a | |||
Unicode character. */ | Unicode character. */ | |||
return uc_width (wc, encoding); | return uc_width (wc, encoding); | |||
} | } | |||
else | else | |||
{ | { | |||
/* Otherwise, fall back to the system's wcwidth function. */ | /* Otherwise, fall back to the system's wcwidth function. */ | |||
#if HAVE_WCWIDTH | #if HAVE_WCWIDTH | |||
return wcwidth (wc); | return wcwidth (wc); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |