summaryrefslogtreecommitdiffstats
path: root/rtemstoolkit/rld-process.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rtemstoolkit/rld-process.cpp')
-rw-r--r--rtemstoolkit/rld-process.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/rtemstoolkit/rld-process.cpp b/rtemstoolkit/rld-process.cpp
index bfd6734..e91796f 100644
--- a/rtemstoolkit/rld-process.cpp
+++ b/rtemstoolkit/rld-process.cpp
@@ -271,7 +271,7 @@ namespace rld
{
if (level < (sizeof (buf) - 1))
{
- memset (buf + level, 0, sizeof (buf) - level);
+ ::memset (buf + level, 0, sizeof (buf) - level);
int read = ::read (fd, buf + level, sizeof (buf) - level - 1);
if (read < 0)
throw rld::error (::strerror (errno), "tempfile read:" + _name);
@@ -285,15 +285,14 @@ namespace rld
char* lf = ::strchr (buf, '\n');
int len = level;
if (lf)
- len = lf - &buf[0] + 1;
- if (lf || !reading)
{
- line.append (buf, len);
- level -= len;
+ len = lf - &buf[0] + 1;
+ reading = false;
}
+ line.append (buf, len);
+ level -= len;
if (level)
::memmove (buf, &buf[len], level + 1);
- reading = false;
}
}
}
@@ -354,7 +353,7 @@ namespace rld
{
read_line (line);
++lc;
- if (line.empty ())
+ if (line.empty () && (level == 0))
break;
if (!prefix.empty ())
out << prefix << ": ";