Jakob Lund wrote:
> There's a solution here, but it's a bit ugly... using the strtod_l conversion
> function, and keeping a "C" locale object around for the purpose of passing
> to that function _works_, but it seems a bit hacky.
Is strtod_l() an ANSI, portable member of the C standard library? I can't find
that it is... but it seems to be.
WORKAROUND FOR THE PROBLEM:
$ LC_NUMERIC=C ./hydrogen
For the permanent solution, here are some of the options I know of:
1. Reinstate the old Object.h functions, which use C++
streams to do the string conversions. The ISO C++
standard requires that these use the "C" locale by
default (unless the imbue() function changes it).
PROS: Stable, lots of history with Hydrogen.
Endorsed by KF. :-)
CONS: I'm not a big fan of the QString-->std::string
-->std::istringstream-->double process of
converting the string.
2. Adjust QLocale while reading/writing XML files. However,
QLocale::setCurrent() is not considered thread-safe... and
it may change the locale for the whole application while
loading the XML file.
PROS: Consistently uses QString methods.
CONS: I don't think it will work.
3. Use strtod_l().
PROS: Allows us to set the locale explicitly.
CONS: Not sure if it's ANSI.
Converts QString to 8-bit string to do
the conversion.
4. Write our own string-to-decimal conversion. (This is
the solution employed by glib/GTK when they encountered
the same problem. viz. g_ascii_strtod(), which always
uses the "C" locale.)
PROS: Will work, and gives us lots of flexability.
CONS: We have to program and debug it.
Copying g_ascii_strtod() may present licensing
issues.
5. Use glib's g_ascii_strtod().
PROS: Already programmed.
It already links to glib on my PC.
CONS: Increases library dependencies.
I don't think we actually use 'glib', and the
library linkage isn't needed.
Comments? Suggestions?
Thanks,
Gabriel
------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge
This is your chance to win up to $100,000 in prizes! For a limited time,
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize
details at: http://p.sf.net/sfu/blackberry
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel