diff options
author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2009-11-08 13:01:56 +0000 |
---|---|---|
committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2009-11-08 13:01:56 +0000 |
commit | eaa078b76a6be5417e73b3fc4f5f78642d3ca6c4 (patch) | |
tree | 8f725e5226ae7797a0ae258aa20b617265eb2dd3 | |
parent | b1f1de5a7a98b66f557e5254f66e6d7cd2756224 (diff) |
XPath: Fixed minor string to number conversion bug
git-svn-id: http://pugixml.googlecode.com/svn/trunk@219 99668b35-9821-0410-8761-19e4c4f06640
-rw-r--r-- | src/pugixpath.cpp | 2 | ||||
-rw-r--r-- | tests/test_xpath_functions.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/pugixpath.cpp b/src/pugixpath.cpp index 70fe612..4897523 100644 --- a/src/pugixpath.cpp +++ b/src/pugixpath.cpp @@ -387,7 +387,7 @@ namespace if (is_chartype(*string, ct_space))
{
while (is_chartype(*string, ct_space)) ++string;
- if (*string) return gen_nan();
+ return *string ? gen_nan() : r;
}
if (*string != '.') return gen_nan();
diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index a0c59b8..ed2c47a 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -16,11 +16,13 @@ TEST_XML(xpath_number_number, "<node>123</node>") CHECK_XPATH_NUMBER(c, "number(' -123.')", -123);
CHECK_XPATH_NUMBER(c, "number('123.')", 123);
CHECK_XPATH_NUMBER(c, "number('.56')", 0.56);
+ CHECK_XPATH_NUMBER(c, "number('123 ')", 123);
CHECK_XPATH_NUMBER_NAN(c, "number('foobar')");
CHECK_XPATH_NUMBER_NAN(c, "number('f1')");
CHECK_XPATH_NUMBER_NAN(c, "number('1f')");
CHECK_XPATH_NUMBER_NAN(c, "number('1.f')");
CHECK_XPATH_NUMBER_NAN(c, "number('1.0f')");
+ CHECK_XPATH_NUMBER_NAN(c, "number('123 f')");
// number with 1 bool argument
CHECK_XPATH_NUMBER(c, "number(true())", 1);
|