... in wimlib_open_wim() and wimlib_create_new_wim(), just in case the library
user did not explicitly call wimlib_global_init() (otherwise this could cause
problems on Windows, with the Windows version not being determined).
struct wim_lookup_table *table;
int ret;
struct wim_lookup_table *table;
int ret;
+ wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+
DEBUG("Creating new WIM with %"TS" compression.",
wimlib_get_compression_type_string(ctype));
DEBUG("Creating new WIM with %"TS" compression.",
wimlib_get_compression_type_string(ctype));
+ wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+
ret = WIMLIB_ERR_INVALID_PARAM;
if (!wim_file || !wim_ret)
goto out;
ret = WIMLIB_ERR_INVALID_PARAM;
if (!wim_file || !wim_ret)
goto out;
WIMLIBAPI int
wimlib_global_init(int init_flags)
{
WIMLIBAPI int
wimlib_global_init(int init_flags)
{
+ static bool already_inited = false;
+
+ if (already_inited)
+ return 0;
libxml_global_init();
if (!(init_flags & WIMLIB_INIT_FLAG_ASSUME_UTF8)) {
wimlib_mbs_is_utf8 = test_locale_ctype_utf8();
libxml_global_init();
if (!(init_flags & WIMLIB_INIT_FLAG_ASSUME_UTF8)) {
wimlib_mbs_is_utf8 = test_locale_ctype_utf8();
#ifdef __WIN32__
win32_global_init();
#endif
#ifdef __WIN32__
win32_global_init();
#endif