Ok, thanks, now I got it to build. I do see the behavior you mentioned. Looking in the musl code for towupper (in system/lib/libc/musl/src/ctype/towctrans.c ), it looks like it doesn't take the locale into account. musl is generally very strict about following the libc standard, so I would guess that the standard allows for that behavior. If you think it should not, might be worth contacting the musl devs.
On Wed, Jul 29, 2015 at 10:12 PM, awt <[email protected]> wrote: > Thanks for your quick reply Alon. I compiled and ran this code on XCode > and not Visual Studio. Are you running the code on Mac, Win or Linux? > Perhaps, you can try adding the <cwctype> header into the code below? > > Sorry for the 'Hello, World!', I forgot to remove it from the generated > sample project. I didn't print out the characters because the console might > not display extended ASCII correctly. I inspected the values of smallE and > bigE in the XCode and Chrome debugger. é has a dec value of 233 while É > will give 201. > > Please let me know if you need more clarifications. > > On Thursday, July 30, 2015 at 12:13:58 PM UTC+8, Alon Zakai wrote: >> >> Maybe I'm missing something, but the example program doesn't print >> anything but "Hello, World!", and also, it doesn't build for me natively so >> I can't compare the output (it gives an error on towupper not being >> defined). >> >> On Wed, Jul 29, 2015 at 9:06 PM, awt <[email protected]> wrote: >> >>> I tested this on sdk-1.30.0-64bit. I wrote a sample program below: >>> >>> #include <stdio.h> >>> >>> #include <string> >>> >>> #include <clocale> >>> >>> >>> using namespace std; >>> >>> >>> int main(int argc, const char * argv[]) >>> >>> { >>> >>> >>> // insert code here... >>> >>> printf("Hello, World!\n"); >>> >>> >>> >>> char* locale = setlocale(LC_ALL, NULL); >>> >>> >>> >>> wchar_t smallE = L'é'; >>> >>> >>> >>> wchar_t bigE = towupper(smallE); >>> >>> >>> >>> return 0; >>> >>> } >>> >>> >>> I tested this on XCode and the result is the same as Visual Studio. I >>> then ran the code against sdk 1.34.1 and emscripten-tag-1.34.3-64bit and >>> both versions return the uppercase É which differs from both XCode and >>> Visual Studio. >>> >>> On Thursday, July 30, 2015 at 2:43:13 AM UTC+8, Alon Zakai wrote: >>>> >>>> On which branch do you see the problem? On incoming (1.34.3) we now use >>>> more musl code for locale stuff, so it might be different there. >>>> >>>> >>>> On Wed, Jul 29, 2015 at 6:36 AM, awt <[email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> I was trying to convert the Latin small letter e with acute (é) into >>>>> uppercase with the default 'C' locale using the following code: >>>>> >>>>> std::setlocale <http://en.cppreference.com/w/cpp/locale/setlocale>(LC_ALL >>>>> <http://en.cppreference.com/w/cpp/locale/LC_categories>, "C"); >>>>> >>>>> wchar_t upperChar = std::towupper(L'é') >>>>> >>>>> >>>>> Using Visual Studio, I get back the lowercase character é but with >>>>> Emscripten, I get the uppercase É when I inspect the hex value of >>>>> upperChar. This comes as a surprise to me because my understanding is >>>>> that the default 'C' locale does not support extended ASCII so the Visual >>>>> Studio behaviour seems to be correct for this case. Is my understanding >>>>> correct and how did Emscripten manage to do the uppercase conversion even >>>>> though the locale is still the default 'C' locale? Thanks. >>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "emscripten-discuss" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >> -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
