diff options
author | Rob Landley <rob@landley.net> | 2023-12-15 04:44:53 -0600 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2023-12-15 04:44:53 -0600 |
commit | 53d8a6707e3cf635004927a920c8b7fa967ea966 (patch) | |
tree | 656f72e097f423bcd4ec378782e1cbda3d46b2a2 /toys/posix | |
parent | d908031520fb3a1b847dde5c55b1f0d698d49edf (diff) | |
download | toybox-53d8a6707e3cf635004927a920c8b7fa967ea966.tar.gz |
Exit with (eventual) error if any characters failed to convert without -c.
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); |