When the Charset is euc-jp or shift_jis, iconv is used for mbrtowc
and wcrtomb. The worst part is mbrtowc_iconv(), where I attempted to
make mbrtowc both restartable (it can process part of multibyte
character) and fast in the case where there is nothing left over
from a previous character. Also I try to make no assumptions about
how those character sets work, which is easy, because I know very
little about them ...
People who don't use one of those two stateless Japanese display
charsets shouldn't be affected. People whose systems provide the
wchar_t functions should be even less affected, because they don't
even get this code in their binary.