X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fwim.c;h=2907cd31c42f933b03067f10e61cad86954d0a51;hb=d490e6e2a9cb3e421556ed3e50e0665ec955a418;hp=c320b311ea21f32be9c2e06c0e65ed696a029c5a;hpb=4f8059f2d0a74a9922128b162d9c9343b305999c;p=wimlib diff --git a/src/wim.c b/src/wim.c index c320b311..2907cd31 100644 --- a/src/wim.c +++ b/src/wim.c @@ -5,8 +5,6 @@ /* * Copyright (C) 2012, 2013 Eric Biggers * - * wimlib - Library for working with WIM files - * * 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 @@ -23,32 +21,43 @@ * along with wimlib; if not, see http://www.gnu.org/licenses/. */ -#include "config.h" +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "wimlib/error.h" +#include "wimlib/dentry.h" +#include "wimlib/encoding.h" +#include "wimlib/file_io.h" +#include "wimlib/integrity.h" +#include "wimlib/lookup_table.h" +#include "wimlib/metadata.h" +#ifdef WITH_NTFS_3G +# include "wimlib/ntfs_3g.h" /* for do_ntfs_umount() */ +#endif +#include "wimlib/security.h" +#include "wimlib/wim.h" +#include "wimlib/xml.h" + +#ifdef __WIN32__ +# include "wimlib/win32.h" /* for realpath() replacement */ +#endif #include #include +#ifndef __WIN32__ +# include +#endif #include #include #include #include -#ifdef __WIN32__ -# include "win32.h" -#else -# include -#endif - -#include "buffer_io.h" -#include "dentry.h" -#include "lookup_table.h" -#include "wimlib_internal.h" -#include "xml.h" - static int image_print_metadata(WIMStruct *w) { DEBUG("Printing metadata for image %d", w->current_image); - print_security_data(wim_security_data(w)); + print_wim_security_data(wim_security_data(w)); return for_dentry_in_tree(wim_root_dentry(w), print_dentry, w->lookup_table); } @@ -62,7 +71,7 @@ image_print_files(WIMStruct *w) } static WIMStruct * -new_wim_struct() +new_wim_struct(void) { WIMStruct *w = CALLOC(1, sizeof(WIMStruct)); if (w) { @@ -197,7 +206,7 @@ select_wim_image(WIMStruct *w, int image) } w->current_image = image; imd = wim_get_current_image_metadata(w); - if (imd->root_dentry) { + if (imd->root_dentry || imd->modified) { ret = 0; } else { #ifdef ENABLE_DEBUG @@ -453,7 +462,7 @@ begin_read(WIMStruct *w, const tchar *in_wim_path, int open_flags, return WIMLIB_ERR_OPEN; } - ret = read_header(w->in_fd, &w->hdr, open_flags); + ret = read_header(w->filename, w->in_fd, &w->hdr, open_flags); if (ret) return ret; @@ -546,7 +555,7 @@ destroy_image_metadata(struct wim_image_metadata *imd, { free_dentry_tree(imd->root_dentry, table); imd->root_dentry = NULL; - free_security_data(imd->security_data); + free_wim_security_data(imd->security_data); imd->security_data = NULL; if (free_metadata_lte) { @@ -599,7 +608,7 @@ append_image_metadata(WIMStruct *w, struct wim_image_metadata *imd) struct wim_image_metadata * -new_image_metadata() +new_image_metadata(void) { struct wim_image_metadata *imd; @@ -690,7 +699,7 @@ wimlib_free(WIMStruct *w) } static bool -test_locale_ctype_utf8() +test_locale_ctype_utf8(void) { #ifdef __WIN32__ return false; @@ -724,7 +733,7 @@ wimlib_global_init(int init_flags) /* Free global memory allocations. Not strictly necessary if the process using * wimlib is just about to exit (as is the case for 'imagex'). */ WIMLIBAPI void -wimlib_global_cleanup() +wimlib_global_cleanup(void) { libxml_global_cleanup(); iconv_global_cleanup();