diff --git a/lib/libc/locale/cXXrtomb_iconv.h b/lib/libc/locale/cXXrtomb_iconv.h --- a/lib/libc/locale/cXXrtomb_iconv.h +++ b/lib/libc/locale/cXXrtomb_iconv.h @@ -75,7 +75,7 @@ errno = EINVAL; return (-1); } - handle->cv_shared->ci_discard_ilseq = true; + handle->cv_shared->ci_discard_ilseq = false; handle->cv_shared->ci_hooks = NULL; cs->srcbuf_len = 0; cs->initialized = true; @@ -92,7 +92,7 @@ dst = s; dstleft = MB_CUR_MAX_L(locale); err = _citrus_iconv_convert(handle, &src, &srcleft, &dst, &dstleft, - 0, &invlen); + _CITRUS_ICONV_F_HIDE_INVALID, &invlen); /* Character is part of a surrogate pair. We need more input. */ if (err == EINVAL) diff --git a/lib/libc/locale/mbrtocXX_iconv.h b/lib/libc/locale/mbrtocXX_iconv.h --- a/lib/libc/locale/mbrtocXX_iconv.h +++ b/lib/libc/locale/mbrtocXX_iconv.h @@ -78,7 +78,7 @@ errno = EINVAL; return (-1); } - handle->cv_shared->ci_discard_ilseq = true; + handle->cv_shared->ci_discard_ilseq = false; handle->cv_shared->ci_hooks = NULL; cs->srcbuf_len = cs->dstbuf_len = 0; cs->initialized = true; @@ -110,7 +110,7 @@ assert(srcleft <= sizeof(cs->srcbuf) && dstleft <= sizeof(cs->dstbuf.bytes)); err = _citrus_iconv_convert(handle, &src, &srcleft, - &dst, &dstleft, 0, &invlen); + &dst, &dstleft, _CITRUS_ICONV_F_HIDE_INVALID, &invlen); cs->dstbuf_len = (dst - cs->dstbuf.bytes) / sizeof(charXX_t); /* Got new character(s). Return the first. */