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.

Reply via email to