aboutsummaryrefslogtreecommitdiff
path: root/toys/posix
diff options
context:
space:
mode:
Diffstat (limited to 'toys/posix')
-rw-r--r--toys/posix/iconv.c7
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);