diff options
Diffstat (limited to 'toys/posix')
-rw-r--r-- | toys/posix/iconv.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/toys/posix/iconv.c b/toys/posix/iconv.c index 0674f3db..1d8f40b1 100644 --- a/toys/posix/iconv.c +++ b/toys/posix/iconv.c @@ -51,8 +51,11 @@ static void do_iconv(int fd, char *name) iconv(TT.ic, &in, &inlen, &out, &outlen); if (in == toybuf) { // Skip first byte of illegal sequence to avoid endless loops - if (toys.optflags & FLAG_c) in++; - else *(out++) = *(in++); + if (FLAG(c)) in++; + else { + *(out++) = *(in++); + toys.exitval = 1; + } inlen--; } if (out != outstart) xwrite(1, outstart, out-outstart); |