aboutsummaryrefslogtreecommitdiff
path: root/src/function/external_text_formatter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/function/external_text_formatter.cc')
-rw-r--r--src/function/external_text_formatter.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/function/external_text_formatter.cc b/src/function/external_text_formatter.cc
index 048f81a..03902e9 100644
--- a/src/function/external_text_formatter.cc
+++ b/src/function/external_text_formatter.cc
@@ -40,21 +40,21 @@ inline xercesc::DOMNode* importDocumentElement(
namespace InputXSLT {
DomDocumentCache::document_ptr FunctionExternalTextFormatter::constructDocument(
- boost::filesystem::path formatterPath,
- std::string stdinText
+ std::string formatterCommand,
+ std::string stdinText
) const {
DomDocumentCache::document_ptr domDocument(
DomDocumentCache::createDocument("content")
);
boost::process::context context;
+ context.environment = boost::process::self::get_environment();
context.stdout_behavior = boost::process::capture_stream();
context.stdin_behavior = boost::process::capture_stream();
boost::process::child formatterProcess(
- boost::process::launch(
- formatterPath,
- std::vector<std::string>{""},
+ boost::process::launch_shell(
+ formatterCommand,
context
)
);
@@ -68,7 +68,7 @@ DomDocumentCache::document_ptr FunctionExternalTextFormatter::constructDocument(
boost::process::status status = formatterProcess.wait();
ResultNodeFacade result(domDocument.get(), "output");
- result.setAttribute("formatter", formatterPath.filename().string());
+ result.setAttribute("formatter", formatterCommand);
result.setAttribute("code", std::to_string(status.exit_status()));
if ( status.exited() ) {