https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f9aca9f7d22519cc4eb81…
commit f9aca9f7d22519cc4eb81f66748b3691c4f40bf9
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Wed Apr 21 19:12:43 2021 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Wed May 5 17:24:13 2021 +0200
[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
+ ));
}