https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f9aca9f7d22519cc4eb81f66748b3691c4f40bf9

commit f9aca9f7d22519cc4eb81f66748b3691c4f40bf9
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Wed Apr 21 19:12:43 2021 +0200
Commit:     Hermès Bélusca-Maïto <[email protected]>
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
+                                        ));
 }
 
 

Reply via email to