aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_file.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-20 23:30:25 +0200
committerAdrian Kummerländer2014-04-20 23:30:25 +0200
commit5f4f3f003e1f08e5495e0fe30fae18eb6029888d (patch)
tree3ede7d6c8f0cb6887fdecf635cc4757d3d0ec9b5 /src/function/read_file.cc
parentab840f41154f01d85fec769da693035149689c39 (diff)
downloadInputXSLT-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.cc16
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())
);
}