[Scummvm-devel] setlocale() doesn't work at Symbian

Федор fedor_qd at mail.ru
Sun Mar 1 20:52:01 CET 2015


 I use scanInt as example and create scanFloat but something corrupt stack in this function when run. I try debud in MS visual studio 10 and found :
0xcccccccc <wrong pointer> for "va_list ap" and "const char *next" in symbian_sscanf()

Whole file in attach.


Fedor Strizhnev
Федор Стрижнёв.

Чацвер, 19 лютага 2015, 13:58 +01:00 ад Torbjörn Andersson <eriktorbjorn at telia.com>:
>There is a sscanf() implementation in 
>backends/platform/tizen/sscanf.cpp. I don't know the story behind it, 
>but it might be a good starting point.
>
>However, it seems to be missing at the very least floating-point support 
>and assignment-suppression (e.g. "%*u"), both of which are currently 
>used by ZVision.
>
>Torbjörn Andersson
>
>On 2015-02-19 12:14, Filippos Karapetis wrote:
>> Well, it looks like sscanf() on Symbian isn't handling floating-point math
>> correctly (same as most floating point calculations in Symbian).
>>
>> This StackOverflow question seems to verify this similar behavior with
>> atof() under Symbian:
>>  http://stackoverflow.com/questions/11895686/atof-is-not-taking-entire-value-in-symbian
>>
>> If that is indeed the case, the only way to make this work is to roll our
>> own version of sscanf(), and handle floating-point math for Symbian in
>> there.
>>
>> But that does sound like a major task...
>>
>> Regards
>> Filippos
>>
>>
>>
>> On Wed, Feb 18, 2015 at 8:43 PM, Федор < fedor_qd at mail.ru > wrote:
>>
>>> Result is same.
>>>
>>>
>>> Fedor Strizhnev
>>> Федор Стрижнёв.
>>>
>>> Серада, 18 лютага 2015, 20:35 +02:00 ад Filippos Karapetis <
>>>  bluegr at gmail.com >:
>>>
>>>    You're getting wrong results for sscanf(), which is why ZVision isn't
>>> working for you
>>>
>>> Try putting this line:
>>> setlocale(LC_ALL, "C");
>>> before your test code and try again
>>>
>>> On Wed, Feb 18, 2015 at 8:23 PM, Федор < fedor_qd at mail.ru
>>> < https://e.mail.ru/compose/?mailto=mailto%3afedor_qd@mail.ru >> wrote:
>>>
>>> I have:
>>> Test dot: 30.000000
>>> Test comma: 30.000000
>>>
>>> I confused.
>>>
>>> Fedor Strizhnev
>>> Федор Стрижнёв.
>>>
>>> Серада, 18 лютага 2015, 14:44 UTC ад Willem Jan Palenstijn <
>>>  wjp at usecode.org
>>> < https://e.mail.ru/compose/?mailto=mailto%3awjp@usecode.org >>:
>>>
>>>    On Wed, Feb 18, 2015 at 02:42:08PM +0300, Fiodar Strizhniou wrote:
>>>> Is this test code good?
>>>>
>>>>
>>>> sscanf("30.981", "%f", &y)
>>>> printf("Test dot: \n")
>>>> print y;
>>>> sscanf("30,981", "%f", &y)
>>>> printf("Test comma: \n")
>>>> print y;
>>>
>>>
>>> I had a quick look at how ZVision uses sscanf, and something like that
>>> sounds
>>> good, yes.
>>>
>>> If you want something that actually compiles, try:
>>>
>>>          float y;
>>>          sscanf("30.981", "%f", &y);
>>>          printf("Test dot: %f\n", y);
>>>          sscanf("30,981", "%f", &y);
>>>          printf("Test comma: %f\n", y);
>>>
>>>
>>> You should get as output:
>>>
>>> Test dot: 30.981001
>>> Test comma: 30.000000
>>>
>>>
>>> -Willem Jan
>>>
>>>
>>>> исходное сбщ
>>>> Тема: Re: [Scummvm-devel] setlocale() doesn't work at Symbian
>>>> От: Федор < fedor_qd at mail.ru
>>> < https://e.mail.ru/compose?To=fedor_qd@mail.ru >>
>>>> Дата: 17.02.2015 17.44
>>>>
>>>> I don't know what I need to test. Can you give me peace of code?
>>>>
>>>>
>>>> Fedor Strizhnev
>>>> Федор Стрижнёв.
>>>>
>>>> Аўторак, 17 лютага 2015, 13:47 UTC ад Willem Jan Palenstijn <
>>>  wjp at usecode.org < https://e.mail.ru/compose?To=wjp@usecode.org >>:
>>>>> On Tue, Feb 17, 2015 at 04:06:00PM +0300, Fiodar Strizhniou wrote:
>>>>>> I create bugreport month ago about bad colours in most scenes in
>>> Zvision engine games. I get point to wrong setlocale() settings in some
>>> backends. I create and run test app. Nothing works(see screenshot). Also i
>>> have read somewhere in Symbian Sdk docs what setlocale doesnt work at
>>> Symbian.
>>>>>
>>>>>
>>>>> You should really say things like that directly, instead of having us
>>> guess at
>>>>> what you're trying to do.
>>>>>
>>>>>
>>>>> The main question is: does sscanf work with "%f" for you? And if you
>>> set locale
>>>>> to "C" explicitly?
>>>>>
>>>>>
>>>>> -Willem Jan
>>>>>
>>>>>
>>>>>
>>>>>> исходное сбщ
>>>>>> Тема: Re: [Scummvm-devel] setlocale() doesn't work at Symbian
>>>>>> От: Filippos Karapetis <  bluegr at gmail.com
>>> < https://e.mail.ru/compose?To=bluegr@gmail.com > >
>>>>>> Дата: 17.02.2015 14.52
>>>>>>
>>>>>> You don't use a correct value for the locale
>>>>>>
>>>>>> You would want something like:
>>>>>> setlocale(LC_ALL,"en_GB.ISO-8859-1");
>>>>>>
>>>>>> Having said that, check backends/platform/sdl/sdl.cpp, where it does
>>> this:
>>>>>> const Common::String locale = setlocale(LC_ALL, "");
>>>>>>
>>>>>> // Restore default C locale to prevent issues with
>>>>>> // portability of sscanf(), atof(), etc.
>>>>>> // See bug #3615148
>>>>>> setlocale(LC_ALL, "C");
>>>>>>
>>>>>> Be careful when changing the locale, you need to reset it afterwards
>>> (as
>>>>>> the comment mentions).
>>>>>>
>>>>>> This stackoverflow question may be helpful:
>>>>>>
>>>  http://stackoverflow.com/questions/3191664/list-of-all-locales-and-their-short-codes
>>>>>>
>>>>>> On Tue, Feb 17, 2015 at 1:08 PM, Fiodar Strizhniou <  fedor_qd at mail.ru
>>> < https://e.mail.ru/compose?To=fedor_qd@mail.ru > > wrote:
>>>>>>
>>>>>>> I write simple application and run on phone:
>>>>>>> printf("Locale is: %s\n", setlocale(LC_ALL, "en_GB"));
>>>>>>> Locale is NULL
>>>>>>> Which parts (decimal separators, etc) should be set? Which values
>>> from
>>>>>>> setlocale() used?
>>>>>>> Always yours, Strizhniou Fedor.
>>>>>>> С уважением, Стрижнёв Фёдор.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> "Experience is the name every one gives to their mistakes" - Oscar
>>> Wilde
>>>>>
>>>>
>>>>
>>>>
>>> ------------------------------------------------------------------------------
>>>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>>>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>>>> with Interactivity, Sharing, Native Excel Exports, App Integration & more
>>>> Get technology previously reserved for billion-dollar corporations, FREE
>>>>
>>>  http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>>>> _______________________________________________
>>>> Scummvm-devel mailing list
>>>>  Scummvm-devel at lists.sourceforge.net
>>> < https://e.mail.ru/compose?To=Scummvm%2ddevel@lists.sourceforge.net >
>>>>  https://lists.sourceforge.net/lists/listinfo/scummvm-devel
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>>> with Interactivity, Sharing, Native Excel Exports, App Integration & more
>>> Get technology previously reserved for billion-dollar corporations, FREE
>>>
>>>  http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Scummvm-devel mailing list
>>>  Scummvm-devel at lists.sourceforge.net
>>> < https://e.mail.ru/compose?To=Scummvm%2ddevel@lists.sourceforge.net >
>>>  https://lists.sourceforge.net/lists/listinfo/scummvm-devel
>>>
>>>
>>>
>>>
>>>
>>> --
>>> "Experience is the name every one gives to their mistakes" - Oscar Wilde
>>>
>>>
>>>
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>> with Interactivity, Sharing, Native Excel Exports, App Integration & more
>> Get technology previously reserved for billion-dollar corporations, FREE
>>  http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>>
>>
>>
>> _______________________________________________
>> Scummvm-devel mailing list
>>  Scummvm-devel at lists.sourceforge.net
>>  https://lists.sourceforge.net/lists/listinfo/scummvm-devel
>>
>
>
>------------------------------------------------------------------------------
>Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
>from Actuate! Instantly Supercharge Your Business Reports and Dashboards
>with Interactivity, Sharing, Native Excel Exports, App Integration & more
>Get technology previously reserved for billion-dollar corporations, FREE
>http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
>_______________________________________________
>Scummvm-devel mailing list
>Scummvm-devel at lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/scummvm-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20150301/e88315df/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: trash.cpp
Type: application/octet-stream
Size: 6304 bytes
Desc: not available
URL: <http://lists.scummvm.org/pipermail/scummvm-devel/attachments/20150301/e88315df/attachment.obj>


More information about the Scummvm-devel mailing list