freebsd-ports/devel/boost-libs/files/patch-libs_locale_src_posix_codecvt.cpp
Tijl Coosemans 6ddf470ea6 Fix use of iconv in Boost Locale. On FreeBSD it used __ICONV_F_HIDE_INVALID
which hides invalid sequences, but what Boost really wants is that iconv
returns an error on invalid sequences like GNU libiconv does by default.
On FreeBSD ICONV_SET_ILSEQ_INVALID can be used for this.  It has to be set
via iconvctl.

PR:		215393
2019-01-16 20:36:47 +00:00

20 lines
790 B
C++

--- libs/locale/src/posix/codecvt.cpp.orig 2017-09-02 09:56:14 UTC
+++ libs/locale/src/posix/codecvt.cpp
@@ -38,7 +38,7 @@ namespace impl_posix {
iconv_t d = (iconv_t)(-1);
std::vector<uint32_t> first_byte_table;
try {
- d = iconv_open(utf32_encoding(),encoding.c_str());
+ d = call_iconv_open(utf32_encoding(),encoding.c_str());
if(d == (iconv_t)(-1)) {
throw std::runtime_error("Unsupported encoding" + encoding);
}
@@ -186,7 +186,7 @@ namespace impl_posix {
{
if(d!=(iconv_t)(-1))
return;
- d=iconv_open(to,from);
+ d=call_iconv_open(to,from);
}
static char const *utf32_encoding()