diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mbsalign.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/mbsalign.c b/lib/mbsalign.c index 07fc313b8..8fdab9ee9 100644 --- a/lib/mbsalign.c +++ b/lib/mbsalign.c @@ -168,7 +168,7 @@ char *mbs_safe_encode_to_buffer(const char *s, size_t *width, char *buf, const c } else if (!iswprint(wc)) { size_t i; for (i = 0; i < len; i++) { - sprintf(r, "\\x%02x", (unsigned char) *p); + sprintf(r, "\\x%02x", (unsigned char) p[i]); r += 4; *width += 4; } @@ -223,6 +223,9 @@ char *mbs_invalid_encode_to_buffer(const char *s, size_t *width, char *buf) #ifdef HAVE_WIDECHAR wchar_t wc; size_t len = mbrtowc(&wc, p, MB_CUR_MAX, &st); +#else + size_t len = 1; +#endif if (len == 0) break; /* end of string */ @@ -251,10 +254,6 @@ char *mbs_invalid_encode_to_buffer(const char *s, size_t *width, char *buf) *width += wcwidth(wc); } p += len; -#else - *r++ = *p++; - (*width)++; -#endif } *r = '\0'; |