r20189 - gnucash/trunk/src/backend/dbi - Handle localization-ignorance bug in libdbi by setting LC_NUMERIC locale
John Ralls
jralls at code.gnucash.org
Fri Jan 28 16:35:50 EST 2011
Author: jralls
Date: 2011-01-28 16:35:50 -0500 (Fri, 28 Jan 2011)
New Revision: 20189
Trac: http://svn.gnucash.org/trac/changeset/20189
Modified:
gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
Log:
Handle localization-ignorance bug in libdbi by setting LC_NUMERIC locale
to "C" before calling dbi_result_get_double() and back afterwards. This
is not thread-safe, but we're not multithreaded yet.
Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2011-01-28 21:03:40 UTC (rev 20188)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2011-01-28 21:35:50 UTC (rev 20189)
@@ -2899,9 +2899,12 @@
}
while ( dbi_result_next_row( result ))
{
+ const char *locale = setlocale( LC_NUMERIC, "" );
+ setlocale( LC_NUMERIC, "C");
resultlonglong = dbi_result_get_longlong( result, "test_int" );
resultulonglong = dbi_result_get_ulonglong( result, "test_unsigned" );
resultdouble = dbi_result_get_double( result, "test_double" );
+ setlocale (LC_NUMERIC, locale );
}
if ( testlonglong != resultlonglong )
{
More information about the gnucash-changes
mailing list