summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/src/Process.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/dvisvgm/src/Process.cpp')
-rw-r--r--dviware/dvisvgm/src/Process.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/dviware/dvisvgm/src/Process.cpp b/dviware/dvisvgm/src/Process.cpp
index c79f6e9526..b7fb3929b8 100644
--- a/dviware/dvisvgm/src/Process.cpp
+++ b/dviware/dvisvgm/src/Process.cpp
@@ -74,13 +74,13 @@ string Subprocess::read (const SearchPattern &pattern, bool *error) {
const size_t bytesRead = readFromPipe(&_rdbuf[_bufstartpos], _rdbuf.size()-_bufstartpos, error);
const size_t bufendpos = _bufstartpos + bytesRead;
smatch matches;
- size_t matchendpos= bufendpos; // buffer position after last match
+ size_t matchendpos = bufendpos; // buffer position after last match
if (pattern.search.empty())
result.assign(_rdbuf.data(), matchendpos);
else {
bool matched=false;
regex re(pattern.search);
- for (auto it = cregex_iterator(&_rdbuf[0], &_rdbuf[bufendpos], re); it != cregex_iterator(); ++it) {
+ for (auto it = cregex_iterator(&_rdbuf[0], &_rdbuf[0]+bufendpos, re); it != cregex_iterator(); ++it) {
result += it->format(pattern.replace, regex_constants::format_no_copy);
matchendpos = it->position() + it->length();
matched = true;
@@ -121,11 +121,8 @@ bool Process::run (string *out, const SearchPattern &pattern, PipeFlags flags) {
if (out)
out->clear();
for (;;) {
- if (out) {
- string chunk;
- subprocess.readFromPipe(chunk, pattern);
- *out += chunk;
- }
+ if (out)
+ subprocess.readFromPipe(*out, pattern);
Subprocess::State state = subprocess.state();
if (state != Subprocess::State::RUNNING)
return state == Subprocess::State::FINISHED;