Review Request: Locale-independent parsing of floats in trader queries

Chusslove Illich caslav.ilic at gmx.net
Sun Jul 10 08:39:44 BST 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101610/
-----------------------------------------------------------

(Updated July 10, 2011, 7:39 a.m.)


Review request for kdelibs.


Changes
-------

More robust conversion with respect to roundoff effects. Now there is only a
single floating point operation, division by a power of ten (as I've seen
some publicly available implementations do). This adds the restriction that
the float literal must fit into an int when decimal point is removed, but
this should not be a problem for this limited application.


Summary
-------

Usage of atof() to parse floats in trader language was locale-dependent:
if locale specified something other than dot as decimal separator,
parsing floats (which are always dot-separated in queries) failed.
Replaced atof() with simple sufficient custom parser.

Added a unit test.


This addresses bug 275548.
    http://bugs.kde.org/show_bug.cgi?id=275548


Diffs (updated)
-----

  kdecore/services/lex.l b00013b 
  kdecore/tests/kservicetest.h 189bbd4 
  kdecore/tests/kservicetest.cpp 8d14213 

Diff: http://git.reviewboard.kde.org/r/101610/diff


Testing
-------

Unit test.

In bug #275548 a plugin could not be loaded in some locales because,
as it turned out, it failed version check due to misparsed floats
in a trader query. This fix makes it load properly.


Thanks,

Chusslove

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110710/c5f896a8/attachment.htm>


More information about the kde-core-devel mailing list