]> wimlib.net Git - wimlib/blobdiff - src/wim.c
License and documentation
[wimlib] / src / wim.c
index 933cfd73032f20f927c06aced94709eb3ec83e93..1a159578a0338da0ac08ba61e8de2524f7eec6a1 100644 (file)
--- a/src/wim.c
+++ b/src/wim.c
  * This file is part of wimlib, a library for working with WIM files.
  *
  * wimlib is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
+ * terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 3 of the License, or (at your option)
  * any later version.
  *
  * wimlib is distributed in the hope that it will be useful, but WITHOUT ANY
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more
  * details.
  *
- * You should have received a copy of the GNU Lesser General Public License
+ * You should have received a copy of the GNU General Public License
  * along with wimlib; if not, see http://www.gnu.org/licenses/.
  */
 
 #include "xml.h"
 #include <stdlib.h>
 
+#ifdef WITH_NTFS_3G
+#include <ntfs-3g/volume.h>
+#endif
+
 static int print_metadata(WIMStruct *w)
 {
        print_security_data(wim_security_data(w));
@@ -61,8 +65,6 @@ int for_image(WIMStruct *w, int image, int (*visitor)(WIMStruct *))
        int i;
        int end;
 
-       DEBUG("for_image(w = %p, image = %d, visitor = %p)", w, image, visitor);
-
        if (image == WIM_ALL_IMAGES) {
                i = 1;
                end = w->hdr.image_count;
@@ -218,9 +220,7 @@ int wimlib_select_image(WIMStruct *w, int image)
                      "lookup table entry:");
                print_lookup_table_entry(imd->metadata_lte);
                #endif
-               return read_metadata_resource(w->fp, 
-                                             wimlib_get_compression_type(w), 
-                                             imd);
+               return read_metadata_resource(w, imd);
        }
 }
 
@@ -328,6 +328,10 @@ WIMLIBAPI void wimlib_print_available_images(const WIMStruct *w, int image)
  * not WIM_NO_IMAGE. */
 WIMLIBAPI int wimlib_print_metadata(WIMStruct *w, int image)
 {
+       if (image == WIM_ALL_IMAGES)
+               DEBUG("Printing metadata for all images");
+       else
+               DEBUG("Printing metadata for image %d", image);
        return for_image(w, image, print_metadata);
 }
 
@@ -550,6 +554,12 @@ WIMLIBAPI void wimlib_free(WIMStruct *w)
                        destroy_image_metadata(&w->image_metadata[i], NULL);
                FREE(w->image_metadata);
        }
+#ifdef WITH_NTFS_3G
+       if (w->ntfs_vol) {
+               DEBUG("Unmounting NTFS volume");
+               ntfs_umount(w->ntfs_vol, FALSE);
+       }
+#endif
        FREE(w);
 }