From f9aca9f7d22519cc4eb81f66748b3691c4f40bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Wed, 21 Apr 2021 19:12:43 +0200 Subject: [PATCH] [CONSRV] wcwidth.c: Fix out-of-range comparisons Clang warnings for wchar_t's, that are only 2 bytes long on NT. (#3619) CORE-17545 win32ss/user/winsrv/consrv/frontends/wcwidth.c:203:30: warning: result of comparison of constant 262141 with expression of type 'wchar_t' (aka 'unsigned short') is always true [-Wtautological-constant-out-of-range-compare] (ucs >= 0x30000 && ucs <= 0x3fffd))); ~~~ ^ ~~~~~~~ win32ss/user/winsrv/consrv/frontends/wcwidth.c:203:12: warning: result of comparison of constant 196608 with expression of type 'wchar_t' (aka 'unsigned short') is always false [-Wtautological-constant-out-of-range-compare] (ucs >= 0x30000 && ucs <= 0x3fffd))); ~~~ ^ ~~~~~~~ win32ss/user/winsrv/consrv/frontends/wcwidth.c:202:30: warning: result of comparison of constant 196605 with expression of type 'wchar_t' (aka 'unsigned short') is always true [-Wtautological-constant-out-of-range-compare] (ucs >= 0x20000 && ucs <= 0x2fffd) || ~~~ ^ ~~~~~~~ win32ss/user/winsrv/consrv/frontends/wcwidth.c:202:12: warning: result of comparison of constant 131072 with expression of type 'wchar_t' (aka 'unsigned short') is always false [-Wtautological-constant-out-of-range-compare] (ucs >= 0x20000 && ucs <= 0x2fffd) || ~~~ ^ ~~~~~~~ --- win32ss/user/winsrv/consrv/frontends/wcwidth.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/win32ss/user/winsrv/consrv/frontends/wcwidth.c b/win32ss/user/winsrv/consrv/frontends/wcwidth.c index 61e822ad679..6a39b02a2a6 100644 --- a/win32ss/user/winsrv/consrv/frontends/wcwidth.c +++ b/win32ss/user/winsrv/consrv/frontends/wcwidth.c @@ -198,9 +198,13 @@ int mk_wcwidth(wchar_t ucs) (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */ (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */ - (ucs >= 0xffe0 && ucs <= 0xffe6) || + (ucs >= 0xffe0 && ucs <= 0xffe6) +#if !defined(__REACTOS__) || (defined(WCHAR_MAX) && (WCHAR_MAX >= 0x10000)) + || (ucs >= 0x20000 && ucs <= 0x2fffd) || - (ucs >= 0x30000 && ucs <= 0x3fffd))); + (ucs >= 0x30000 && ucs <= 0x3fffd) +#endif + )); }