diff options
author | Adrian Kummerländer | 2014-04-20 23:30:25 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-04-20 23:30:25 +0200 |
commit | 5f4f3f003e1f08e5495e0fe30fae18eb6029888d (patch) | |
tree | 3ede7d6c8f0cb6887fdecf635cc4757d3d0ec9b5 /src/function/read_file.cc | |
parent | ab840f41154f01d85fec769da693035149689c39 (diff) | |
download | InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.gz InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.bz2 InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.lz InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.xz InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.zst InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.zip |
Switched filesystem interaction code to boost::filesystem
* while plain read access on files is doesn't require boost::filesystem it will greatly simplify the implementation of external directory traversal functions
* it also improves the portability of relative path construction
Diffstat (limited to 'src/function/read_file.cc')
-rw-r--r-- | src/function/read_file.cc | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/function/read_file.cc b/src/function/read_file.cc index ea7a758..19ecfc8 100644 --- a/src/function/read_file.cc +++ b/src/function/read_file.cc @@ -1,5 +1,7 @@ #include "read_file.h" +#include "boost/filesystem/fstream.hpp" + #include <fstream> namespace InputXSLT { @@ -24,24 +26,20 @@ xalan::XObjectPtr FunctionReadFile::execute( xalan::CharVectorType castHelper; arguments[0]->str().transcode(castHelper); - std::string fileName(this->path_); - fileName.reserve(fileName.size() + castHelper.size()); - - std::move( + const std::string fileName( castHelper.begin(), - castHelper.end(), - fileName.end() + castHelper.end() ); - std::ifstream file(fileName); + boost::filesystem::ifstream file(this->path_ / fileName); - std::string content( + const std::string fileContent( (std::istreambuf_iterator<char>(file)), (std::istreambuf_iterator<char>()) ); return executionContext.getXObjectFactory().createString( - xalan::XalanDOMString(content.data()) + xalan::XalanDOMString(fileContent.data()) ); } |