mirror of
https://github.com/mpv-player/mpv
synced 2024-12-12 01:46:16 +00:00
11f2be2bcc
uchardet is written in C++, and thus doesn't appreciate the value of using static strings, and internally stores the guessed charset as allocated std::string. Add a minimal hack to deal with this. (I don't appreciate that the code is potentially harder to understand by returning either a static or allocated string, but I do appreciate for not having to litter the existing code with strdups.)
24 lines
809 B
C
24 lines
809 B
C
#ifndef MP_CHARSET_CONV_H
|
|
#define MP_CHARSET_CONV_H
|
|
|
|
#include <stdbool.h>
|
|
#include "misc/bstr.h"
|
|
|
|
struct mp_log;
|
|
|
|
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
|
|
};
|
|
|
|
bool mp_charset_is_utf8(const char *user_cp);
|
|
bool mp_charset_requires_guess(const char *user_cp);
|
|
const char *mp_charset_guess(void *talloc_ctx, struct mp_log *log, bstr buf,
|
|
const char *user_cp, int flags);
|
|
bstr mp_charset_guess_and_conv_to_utf8(struct mp_log *log, bstr buf,
|
|
const char *user_cp, int flags);
|
|
bstr mp_iconv_to_utf8(struct mp_log *log, bstr buf, const char *cp, int flags);
|
|
|
|
#endif
|