+2026-03-09 Bruno Haible <bruno@clisp.org>
+
+ c32tolower, c32toupper: Fix for Turkish locale in Cygwin 3.6.7.
+ * lib/c32to-impl.h (FUNC): Move _GL_SMALL_WCHAR_T case up.
+
2026-03-09 Bruno Haible <bruno@clisp.org>
doc: Document C2y stdc_* <stdbit.h> functions.
else
return wc;
-#elif HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB /* glibc, Android */
- /* mbrtoc32() is essentially defined by the system libc. */
-
-# if _GL_WCHAR_T_IS_UCS4
- /* The char32_t encoding of a multibyte character is known to be the same as
- the wchar_t encoding. */
- return WCHAR_FUNC (wc);
-# else
- /* The char32_t encoding of a multibyte character is known to be UCS-4,
- different from the wchar_t encoding. */
- if (wc != WEOF)
- return UCS_FUNC (wc);
- else
- return wc;
-# endif
-
#elif _GL_SMALL_WCHAR_T /* Cygwin, mingw, MSVC */
/* The wchar_t encoding is UTF-16.
The char32_t encoding is UCS-4. */
return UCS_FUNC (wc);
# endif
+#elif HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB /* glibc, Android */
+ /* mbrtoc32() is essentially defined by the system libc. */
+
+# if _GL_WCHAR_T_IS_UCS4
+ /* The char32_t encoding of a multibyte character is known to be the same as
+ the wchar_t encoding. */
+ return WCHAR_FUNC (wc);
+# else
+ /* The char32_t encoding of a multibyte character is known to be UCS-4,
+ different from the wchar_t encoding. */
+ if (wc != WEOF)
+ return UCS_FUNC (wc);
+ else
+ return wc;
+# endif
+
#else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */
/* char32_t and wchar_t are equivalent. */
static_assert (sizeof (char32_t) == sizeof (wchar_t));