diff options
author | Adrian Kummerländer | 2014-04-28 20:03:06 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-04-28 20:03:06 +0200 |
commit | 22cbef9c75aeb58d6c88c9b736526cb9d52a52a2 (patch) | |
tree | bc0ac83d1ec0186b43aef7d574dba044e9ff7e9c /src/function | |
parent | 947a8389728ff7d052fa820f598da3c17802f3d1 (diff) | |
download | InputXSLT-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.cc | 11 |
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")) ); |