From ded09e8ed60d031ad3963dccc1c71800f1d539e1 Mon Sep 17 00:00:00 2001 From: Vaclav Dolezal Date: Fri, 8 Sep 2017 16:36:26 +0200 Subject: [PATCH] lib/mbsalign: encode backslash to prevent ambiguity Signed-off-by: Vaclav Dolezal --- lib/mbsalign.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/mbsalign.c b/lib/mbsalign.c index 78ab12a0da..dce1a13214 100644 --- a/lib/mbsalign.c +++ b/lib/mbsalign.c @@ -54,7 +54,7 @@ size_t mbs_safe_nwidth(const char *buf, size_t bufsz, size_t *sz) last = p + (bufsz - 1); while (p && *p && p <= last) { - if (iscntrl((unsigned char) *p)) { + if (*p == '\\' || iscntrl((unsigned char) *p)) { width += 4, bytes += 4; /* *p encoded to \x?? */ p++; } @@ -135,7 +135,7 @@ char *mbs_safe_encode_to_buffer(const char *s, size_t *width, char *buf, const c continue; } - if (iscntrl((unsigned char) *p)) { + if (*p == '\\' || iscntrl((unsigned char) *p)) { sprintf(r, "\\x%02x", (unsigned char) *p); r += 4; *width += 4; -- 2.47.3