X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fwim.c;h=11e2f9048aeb345995b8ddea83a3250c138129be;hb=d92446abf69f8a9eff9aed1123f37122647cc7e0;hp=bad95d1933c5c77b27e211d613665a23c064aee1;hpb=20f3793ebcdaa35e525d206a12c1bdf8ebbe64a5;p=wimlib diff --git a/src/wim.c b/src/wim.c index bad95d19..11e2f904 100644 --- a/src/wim.c +++ b/src/wim.c @@ -87,8 +87,8 @@ new_wim_struct(void) { WIMStruct *wim = CALLOC(1, sizeof(WIMStruct)); if (wim) { - wim->in_fd.fd = -1; - wim->out_fd.fd = -1; + filedes_invalidate(&wim->in_fd); + filedes_invalidate(&wim->out_fd); wim->out_pack_compression_type = wim_default_pack_compression_type(); wim->out_pack_chunk_size = wim_default_pack_chunk_size( wim->out_pack_compression_type); @@ -397,7 +397,7 @@ wimlib_get_wim_info(WIMStruct *wim, struct wimlib_wim_info *info) info->image_count = wim->hdr.image_count; info->boot_index = wim->hdr.boot_idx; info->wim_version = wim->hdr.wim_version; - info->chunk_size = wim->hdr.chunk_size; + info->chunk_size = wim->chunk_size; info->part_number = wim->hdr.part_number; info->total_parts = wim->hdr.total_parts; info->compression_type = wim->compression_type; @@ -709,9 +709,6 @@ begin_read(WIMStruct *wim, const void *wim_filename_or_fd, if (wim->lookup_table == NULL) return WIMLIB_ERR_NOMEM; } else { - ret = read_wim_lookup_table(wim); - if (ret) - return ret; ret = read_wim_xml_data(wim); if (ret) @@ -725,6 +722,11 @@ begin_read(WIMStruct *wim, const void *wim_filename_or_fd, " element per image.", wim->hdr.image_count); return WIMLIB_ERR_IMAGE_COUNT; } + + ret = read_wim_lookup_table(wim); + if (ret) + return ret; + DEBUG("Done beginning read of WIM file `%"TS"'.", wimfile); } return 0; @@ -1018,7 +1020,6 @@ WIMLIBAPI int wimlib_global_init(int init_flags) { static bool already_inited = false; - int ret; if (already_inited) return 0; @@ -1031,14 +1032,19 @@ wimlib_global_init(int init_flags) #endif } #ifdef __WIN32__ - ret = win32_global_init(init_flags); - if (ret) - return ret; -#else - ret = 0; + { + int ret = win32_global_init(init_flags); + if (ret) + return ret; + } #endif + 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; - return ret; + return 0; } /* API function documented in wimlib.h */