1 #ifndef _WIMLIB_ENCODING_H
2 #define _WIMLIB_ENCODING_H
4 #include "wimlib/types.h"
7 iconv_global_cleanup(void);
12 extern bool wimlib_mbs_is_utf8;
14 #define DECLARE_CHAR_CONVERSION_FUNCTIONS(varname1, varname2, \
15 chartype1, chartype2) \
18 varname1##_to_##varname2(const chartype1 *in, size_t in_nbytes, \
19 chartype2 **out_ret, \
20 size_t *out_nbytes_ret); \
23 varname1##_to_##varname2##_nbytes(const chartype1 *in, size_t in_nbytes,\
24 size_t *out_nbytes_ret); \
27 varname1##_to_##varname2##_buf(const chartype1 *in, size_t in_nbytes, \
32 DECLARE_CHAR_CONVERSION_FUNCTIONS(utf16le, tstr, utf16lechar, tchar);
33 DECLARE_CHAR_CONVERSION_FUNCTIONS(tstr, utf16le, tchar, utf16lechar);
36 DECLARE_CHAR_CONVERSION_FUNCTIONS(utf8, tstr, char, tchar);
37 DECLARE_CHAR_CONVERSION_FUNCTIONS(tstr, utf8, tchar, char);
40 utf8_to_tstr_simple(const char *utf8str, tchar **out);
43 tstr_to_utf8_simple(const tchar *tstr, char **out);
46 cmp_utf16le_strings(const utf16lechar *s1, size_t n1,
47 const utf16lechar *s2, size_t n2,
51 get_utf16le_string(const tchar *name, utf16lechar **name_utf16le_ret,
52 u16 *name_utf16le_nbytes_ret);
55 #endif /* _WIMLIB_ENCODING_H */