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

Willem Jan Palenstijn wjp at usecode.org
Wed Feb 18 15:44:11 CET 2015


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>
> Дата: 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>:
> >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 >
> >> Дата: 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 > 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://lists.sourceforge.net/lists/listinfo/scummvm-devel




More information about the Scummvm-devel mailing list