diff options
Diffstat (limited to 'misc')
-rw-r--r-- | misc/charset_conv.c | 6 | ||||
-rw-r--r-- | misc/charset_conv.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/misc/charset_conv.c b/misc/charset_conv.c index 7dc1a87783..51e55c6338 100644 --- a/misc/charset_conv.c +++ b/misc/charset_conv.c @@ -234,5 +234,9 @@ bstr mp_iconv_to_utf8(struct mp_log *log, bstr buf, const char *cp, int flags) #endif failure: - return bstr_sanitize_utf8_latin1(NULL, buf); + if (flags & MP_NO_LATIN1_FALLBACK) { + return buf; + } else { + return bstr_sanitize_utf8_latin1(NULL, buf); + } } diff --git a/misc/charset_conv.h b/misc/charset_conv.h index 9be7a50961..ccaa17e3c9 100644 --- a/misc/charset_conv.h +++ b/misc/charset_conv.h @@ -10,6 +10,7 @@ enum { MP_ICONV_VERBOSE = 1, // print errors instead of failing silently MP_ICONV_ALLOW_CUTOFF = 2, // allow partial input data MP_STRICT_UTF8 = 4, // don't fall back to UTF-8-BROKEN when guessing + MP_NO_LATIN1_FALLBACK = 8, // fall back to input buffer instead of latin1 }; bool mp_charset_is_utf8(const char *user_cp); |