summaryrefslogtreecommitdiffstats
path: root/src/events.c
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-05-25 15:42:02 +0100
committerRichard W.M. Jones <rjones@redhat.com>2012-05-25 15:46:18 +0100
commit73071b3163774ff9a514a05bc8e6fb35fa910787 (patch)
treea35286f39f31ffdd8e436f999764810c9808b429 /src/events.c
parentfba81add94cde015afe8a65245cb4e60a1d3e6bf (diff)
downloadlibguestfs-73071b3163774ff9a514a05bc8e6fb35fa910787.tar.gz
libguestfs-73071b3163774ff9a514a05bc8e6fb35fa910787.tar.xz
libguestfs-73071b3163774ff9a514a05bc8e6fb35fa910787.zip
trace: Fix display of non-printing characters.
Previously the code would drop the first character in any sequence of non-printing characters that occurred within a string. Fix for commit e6f18c59d577dd0b443bc6a1d76f699c4e0dde9f.
Diffstat (limited to 'src/events.c')
-rw-r--r--src/events.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/events.c b/src/events.c
index aa097295..a82b3f63 100644
--- a/src/events.c
+++ b/src/events.c
@@ -161,6 +161,11 @@ guestfs___call_callbacks_message (guestfs_h *g, uint64_t event,
while (i < buf_len && NO_ESCAPING (buf[i]))
++i;
fwrite (&buf[i0], 1, i-i0, stderr);
+ /* Adjust i so that next time around the loop, the next
+ * non-printing character will be displayed.
+ */
+ if (i < buf_len)
+ --i;
} else {
switch (buf[i]) {
case '\0': fputs ("\\0", stderr); break;