if( wchar < 0x80000000 )
I get a warning about signed/unsigned comparison. What seems to happen is
that wchar (which is of type wchar_t) is a signed integer (on my i386,it's
a 4 byte int) and thus it's always < 0x80000000 by definition. ANSI C
converts 0x80000000 to unsigned, thus the warning.
That code is only in use when sizeof(wchar_t) >= 4. The C library
standard mandates wchar_t to be integer, thus signed. If I promote
0x80000000 to 0x80000000LL, when sizeof(wchar_t) == 4, like in my case,
the test will always be true, and the compiler will complain about the
test always being true. Everything would be fine otherwise.