]> wimlib.net Git - wimlib/blobdiff - src/wim.c
Return new error code when trying to open encrypted WIM
[wimlib] / src / wim.c
index bad95d1933c5c77b27e211d613665a23c064aee1..498821bc2bffab8e38081d778d95df730486e137 100644 (file)
--- a/src/wim.c
+++ b/src/wim.c
@@ -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,
                              "<IMAGE> 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  */