X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fwim.c;h=3ab0266b9216a1d8cacf480cb40fc8d367a07466;hb=b79d426cd90c506974f6c956a9af141b5d257d42;hp=cf7965e7168ffa6c237e96d79e505da9d161ab56;hpb=b4f0ab9002559b774407fb692bcc7e83a6c82ab7;p=wimlib diff --git a/src/wim.c b/src/wim.c index cf7965e7..3ab0266b 100644 --- a/src/wim.c +++ b/src/wim.c @@ -38,8 +38,6 @@ #include "wimlib/security.h" #include "wimlib/wim.h" #include "wimlib/xml.h" -#include "wimlib/compressor_ops.h" -#include "wimlib/decompressor_ops.h" #include "wimlib/version.h" #ifdef __WIN32__ @@ -66,7 +64,7 @@ static u32 wim_default_pack_chunk_size(int ctype) { switch (ctype) { case WIMLIB_COMPRESSION_TYPE_LZMS: - return 1U << 26; /* 67108864 */ + return 1U << 25; /* 33554432 */ default: return 1U << 15; /* 32768 */ } @@ -126,9 +124,8 @@ wim_chunk_size_valid(u32 chunk_size, int ctype) switch (ctype) { case WIMLIB_COMPRESSION_TYPE_LZX: return order >= 15 && order <= 21; - case WIMLIB_COMPRESSION_TYPE_XPRESS: - return order >= 12 && order <= 26; + return order >= 12 && order <= 16; case WIMLIB_COMPRESSION_TYPE_LZMS: return order >= 15 && order <= 30; } @@ -1011,15 +1008,20 @@ wimlib_get_version(void) return WIMLIB_VERSION_CODE; } +static bool lib_initialized = false; + /* API function documented in wimlib.h */ WIMLIBAPI int wimlib_global_init(int init_flags) { - static bool already_inited = false; - - if (already_inited) + if (lib_initialized) return 0; +#ifdef ENABLE_ERROR_MESSAGES + if (wimlib_error_file == NULL) + wimlib_error_file = stderr; +#endif + if (init_flags & ~(WIMLIB_INIT_FLAG_ASSUME_UTF8 | WIMLIB_INIT_FLAG_DONT_ACQUIRE_PRIVILEGES | WIMLIB_INIT_FLAG_STRICT_CAPTURE_PRIVILEGES | @@ -1043,12 +1045,13 @@ wimlib_global_init(int init_flags) return ret; } #endif + iconv_global_init(); init_upcase(); if (init_flags & WIMLIB_INIT_FLAG_DEFAULT_CASE_SENSITIVE) default_ignore_case = false; else if (init_flags & WIMLIB_INIT_FLAG_DEFAULT_CASE_INSENSITIVE) default_ignore_case = true; - already_inited = true; + lib_initialized = true; return 0; } @@ -1056,11 +1059,14 @@ wimlib_global_init(int init_flags) WIMLIBAPI void wimlib_global_cleanup(void) { + if (!lib_initialized) + return; libxml_global_cleanup(); iconv_global_cleanup(); #ifdef __WIN32__ win32_global_cleanup(); #endif - cleanup_decompressor_params(); - cleanup_compressor_params(); + + wimlib_set_error_file(NULL); + lib_initialized = false; }