aboutsummaryrefslogtreecommitdiff
path: root/src/function
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-28 20:03:06 +0200
committerAdrian Kummerländer2014-04-28 20:03:06 +0200
commit22cbef9c75aeb58d6c88c9b736526cb9d52a52a2 (patch)
treebc0ac83d1ec0186b43aef7d574dba044e9ff7e9c /src/function
parent947a8389728ff7d052fa820f598da3c17802f3d1 (diff)
downloadInputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.tar
InputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.tar.gz
InputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.tar.bz2
InputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.tar.lz
InputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.tar.xz
InputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.tar.zst
InputXSLT-22cbef9c75aeb58d6c88c9b736526cb9d52a52a2.zip
Adapted read-directory tree construction to match the other functions
* throwing std::out_of_range exception from DomDocumentCache::get instead of returning nullptr in case of a problem * moved xalanToString method back into FilesystemContext compilation unit as is only needed there
Diffstat (limited to 'src/function')
-rw-r--r--src/function/read_directory.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/function/read_directory.cc b/src/function/read_directory.cc
index 6fcb447..b0ae13f 100644
--- a/src/function/read_directory.cc
+++ b/src/function/read_directory.cc
@@ -5,7 +5,6 @@
#include <xercesc/dom/DOMElement.hpp>
#include <xercesc/dom/DOMText.hpp>
-#include "support/utility.h"
#include "support/xerces_string_guard.h"
namespace InputXSLT {
@@ -20,8 +19,12 @@ xalan::XObjectPtr FunctionReadDirectory::execute(
const xalan::XObjectPtr argument,
const xalan::Locator*
) const {
+ const boost::filesystem::path directoryPath(
+ this->fs_context_.resolve(argument->str())
+ );
+
DomDocumentCache::item* const cachedDocument(
- this->document_cache_->get(xalanToString(argument->str()))
+ this->document_cache_->get(directoryPath.string())
);
if ( !cachedDocument->isFinalized() ) {
@@ -33,9 +36,7 @@ xalan::XObjectPtr FunctionReadDirectory::execute(
domDocument->getDocumentElement()
);
- if (boost::filesystem::is_directory(
- this->fs_context_.resolve(argument->str())
- )) {
+ if ( boost::filesystem::is_directory(directoryPath) ) {
xercesc::DOMElement* const contentNode(
domDocument->createElement(*XercesStringGuard("content"))
);