From: Rich Felker Date: Thu, 4 Apr 2013 23:57:23 +0000 (-0400) Subject: eliminate bits/wchar.h X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=commitdiff_plain;h=c7af2710007865861e789b29e803f0f55deba93f eliminate bits/wchar.h the preprocessor can reliably determine the signedness of wchar_t. L'\0' is used for 0 in the expressions so that, if the underlying type of wchar_t is long rather than int, the promoted type of the expression will match the type of wchar_t. --- diff --git a/arch/arm/bits/wchar.h b/arch/arm/bits/wchar.h deleted file mode 100644 index ffb26917..00000000 --- a/arch/arm/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN 0U -#define WCHAR_MAX 0xffffffffU -#endif diff --git a/arch/i386/bits/wchar.h b/arch/i386/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/i386/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/arch/microblaze/bits/wchar.h b/arch/microblaze/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/microblaze/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/arch/mips/bits/wchar.h b/arch/mips/bits/wchar.h deleted file mode 100644 index ffb26917..00000000 --- a/arch/mips/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN 0U -#define WCHAR_MAX 0xffffffffU -#endif diff --git a/arch/powerpc/bits/wchar.h b/arch/powerpc/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/powerpc/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/arch/x86_64/bits/wchar.h b/arch/x86_64/bits/wchar.h deleted file mode 100644 index c969c5b6..00000000 --- a/arch/x86_64/bits/wchar.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef WCHAR_MIN -#define WCHAR_MIN (-1-0x7fffffff) -#define WCHAR_MAX (0x7fffffff) -#endif diff --git a/include/stdint.h b/include/stdint.h index 7ca9d76b..486d1ac2 100644 --- a/include/stdint.h +++ b/include/stdint.h @@ -78,7 +78,14 @@ typedef unsigned long long uintmax_t; #define WINT_MIN INT32_MIN #define WINT_MAX INT32_MAX -#include +#if L'\0'-1 > 0 +#define WCHAR_MAX (0xffffffffu+L'\0') +#define WCHAR_MIN (0+L'\0') +#else +#define WCHAR_MAX (0x7fffffff+L'\0') +#define WCHAR_MIN (-1-0x7fffffff+L'\0') +#endif + #include #endif diff --git a/include/wchar.h b/include/wchar.h index 9ceddd57..d8738818 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -24,7 +24,13 @@ extern "C" { #include -#include +#if L'\0'-1 > 0 +#define WCHAR_MAX (0xffffffffu+L'\0') +#define WCHAR_MIN (0+L'\0') +#else +#define WCHAR_MAX (0x7fffffff+L'\0') +#define WCHAR_MIN (-1-0x7fffffff+L'\0') +#endif #define NULL 0L