From 7f73b52db74dd3df2784de1ac40e2a4c535446ae Mon Sep 17 00:00:00 2001 From: Markus Mohrhard Date: Sun, 16 Jun 2013 15:33:30 +0200 Subject: some small improvements for the FILTERXML function Change-Id: I4b4e814d90592f318afb3a9a6965ad8e3df07cae --- sc/source/core/tool/interpr7.cxx | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/sc/source/core/tool/interpr7.cxx b/sc/source/core/tool/interpr7.cxx index 510deddef46e..b3363bc66997 100644 --- a/sc/source/core/tool/interpr7.cxx +++ b/sc/source/core/tool/interpr7.cxx @@ -107,35 +107,46 @@ void ScInterpreter::ScFilterXML() aResult = OUString::createFromAscii((char*)pChar2.get()); } } + else + { + PushError( errNoValue ); + return; + } } + PushString(aResult); break; case XPATH_BOOLEAN: - assert(false); + { + bool bVal = pXPathObj->boolval != 0; + PushDouble(bVal); + } break; case XPATH_NUMBER: - assert(false); + { + double fVal = pXPathObj->floatval; + PushDouble(fVal); + } break; case XPATH_STRING: - assert(false); + PushString(OUString::createFromAscii((char*)pXPathObj->stringval)); break; case XPATH_POINT: - assert(false); + PushNoValue(); break; case XPATH_RANGE: - assert(false); + PushNoValue(); break; case XPATH_LOCATIONSET: - assert(false); + PushNoValue(); break; case XPATH_USERS: - assert(false); + PushNoValue(); break; case XPATH_XSLT_TREE: - assert(false); + PushNoValue(); break; } - PushString(aResult); } } -- cgit