iconv exit code on 10.0
Pavel Timofeev
timp87 at gmail.com
Tue May 20 12:04:23 UTC 2014
Hi!
I've encountered with wrong iconv work.
root at timbsd:~ # uname -a
FreeBSD timbsd 10.0-RELEASE-p3 FreeBSD 10.0-RELEASE-p3 #0: Tue May 13
18:31:10 UTC 2014
root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
root at timbsd:~ # locale
LANG=
LC_CTYPE=ru_RU.UTF-8
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
I have file with russian content.
root at timbsd:~ # cat /tmp/delete_it
Какой-то текст на русском. Some text on russian
Еще немного. Some more.
And I wanted to try to convert it to ISO.
root at timbsd:~ # /usr/bin/iconv -t ISO-8859-15 /tmp/delete_it
?????-?? ????? ?? ???????. Some text on russian
??? ???????. Some more.
iconv: warning: invalid characters: 31
root at timbsd:~ # echo $?
0
Why exit code is 0? Base iconv didn't manage to convert strings so
exit code should be more than 0. That's really bad!
converters/libiconv from ports works better in this case!
See:
root at timbsd:~ # /usr/local/bin/iconv -t ISO-8859-15 /tmp/delete_it
/usr/local/bin/iconv: /tmp/delete_it:1:0: cannot convert
root at timbsd:~ # echo $?
1
I tried it on FreeBSD 11-CURRENT and base iconv doesn't have such problem there.
So I hope that suitable fixes will be MFCd to 10-STABLE.
More information about the freebsd-stable
mailing list