Samuel Thibault <samuel.thiba...@gnu.org> writes: > Peter Maydell, on Thu 27 Oct 2016 17:52:17 +0100, wrote: >> On 27 October 2016 at 17:36, Samuel Thibault <samuel.thiba...@gnu.org> wrote: >> > Peter Maydell, on Thu 27 Oct 2016 17:14:52 +0100, wrote: >> >> On 27 October 2016 at 16:58, Samuel Thibault <samuel.thiba...@gnu.org> >> >> wrote: >> >> > Gerd Hoffmann, on Thu 27 Oct 2016 17:55:47 +0200, wrote: >> >> >> /home/kraxel/projects/qemu/ui/curses.c:627:18: error: universal >> >> >> character names are only valid in C++ and C99 [-Werror] >> >> >> case L'\u23bd': >> >> > >> >> > Another way could be to assume unicode encoding of wchar_t characters >> >> > (which looks very reasonable to me) and just write "case 0x23bd:". >> >> >> >> Does this still work if you're using curses on mingw32? >> > >> > Windows' wchar_t uses unicode encoding, yes (and its limitation to 16bit >> > doesn't pose problem to the values we care about). >> >> On the other hand apparently FreeBSD and Solaris have a wchar_t >> whose encoding is locale-dependent: >> >> http://www.thecodingforums.com/threads/wchar_t-is-useless.806149/#post-4398211 > > UURrgll... So we can't use L'\u23bd' on such systems, it would just not > work either, we have to use iconv to get these right...
I guess we can if they actually bother to conform to C99. 6.4.3 Universal character names: The universal character name \Unnnnnnnn designates the character whose eight-digit short identifier (as specified by ISO/IEC 10646) is nnnnnnnn. Similarly, the universal character name \unnnn designates the character whose four-digit short identifier is nnnn (and whose eight-digit short identifier is 0000nnnn). Note that it doesn't say here that L'\u23bd' should be equal to 0x23bd.