testsuite-discovered fixes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/libbb/unicode.c b/libbb/unicode.c
index 844c154..39b173e 100644
--- a/libbb/unicode.c
+++ b/libbb/unicode.c
@@ -203,11 +203,13 @@
while (n) {
wchar_t wc;
- const char *rc = mbstowc_internal(dest ? dest : &wc, src);
- if (rc == NULL) /* error */
+ src = mbstowc_internal(&wc, src);
+ if (src == NULL) /* error */
return (size_t) -1L;
if (dest)
- dest++;
+ *dest++ = wc;
+ if (wc == 0) /* end-of-string */
+ break;
n--;
}