summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-06-16 15:33:30 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-06-16 16:07:38 +0200
commit7f73b52db74dd3df2784de1ac40e2a4c535446ae (patch)
tree5f8d87c9614bcbb059ff5f4d19d0ce9c1ac8e107
parenta29d20932c89685e7a72f05efb25177cb178fd22 (diff)
some small improvements for the FILTERXML function
Change-Id: I4b4e814d90592f318afb3a9a6965ad8e3df07cae
-rw-r--r--sc/source/core/tool/interpr7.cxx29
1 files 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);
}
}