From: Eric Biggers Date: Fri, 31 Aug 2012 04:34:32 +0000 (-0500) Subject: Fix a couple random issues X-Git-Tag: v1.0.0~26 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=2441b3b94cf77a5193550682695dfaf930466764 Fix a couple random issues --- diff --git a/programs/imagex.c b/programs/imagex.c index cf118b33..c02ce6f6 100644 --- a/programs/imagex.c +++ b/programs/imagex.c @@ -413,7 +413,7 @@ static int imagex_append(int argc, const char **argv) goto out_write; } } else { - if (errno != -ENOENT) + if (errno != ENOENT) imagex_error_with_errno("Failed to stat `%s'", dir); } #endif @@ -522,7 +522,7 @@ static int imagex_apply(int argc, const char **argv) goto out; } } else { - if (errno != -ENOENT) + if (errno != ENOENT) imagex_error_with_errno("Failed to stat `%s'", dir); } #endif diff --git a/src/extract.c b/src/extract.c index b1b740f0..1d755cff 100644 --- a/src/extract.c +++ b/src/extract.c @@ -277,9 +277,6 @@ struct extract_args { WIMStruct *w; int extract_flags; const char *output_dir; -#ifdef WITH_NTFS_3G - struct SECURITY_API *scapi; -#endif }; /* @@ -293,7 +290,6 @@ static int extract_dentry(struct dentry *dentry, void *arg) int extract_flags = args->extract_flags; size_t len = strlen(args->output_dir); char output_path[len + dentry->full_path_utf8_len + 1]; - int ret; if (extract_flags & WIMLIB_EXTRACT_FLAG_VERBOSE) { wimlib_assert(dentry->full_path_utf8); @@ -305,16 +301,12 @@ static int extract_dentry(struct dentry *dentry, void *arg) output_path[len + dentry->full_path_utf8_len] = '\0'; if (dentry_is_symlink(dentry)) - ret = extract_symlink(dentry, output_path, w); + return extract_symlink(dentry, output_path, w); else if (dentry_is_directory(dentry)) - ret = extract_directory(output_path, dentry_is_root(dentry)); + return extract_directory(output_path, dentry_is_root(dentry)); else - ret = extract_regular_file(w, dentry, args->output_dir, + return extract_regular_file(w, dentry, args->output_dir, output_path, extract_flags); - if (ret != 0) - return ret; - - return 0; } /* Apply timestamp to extracted file */ @@ -353,9 +345,6 @@ static int extract_single_image(WIMStruct *w, int image, .w = w, .extract_flags = extract_flags, .output_dir = output_dir, - #ifdef WITH_NTFS_3G - .scapi = NULL - #endif }; ret = for_dentry_in_tree(wim_root_dentry(w), extract_dentry, &args); @@ -379,7 +368,8 @@ static int extract_all_images(WIMStruct *w, const char *output_dir, int image; const char *image_name; - DEBUG("Attempting to extract all images from `%s'", w->filename); + DEBUG("Attempting to extract all images from `%s' to `%s'", + w->filename, output_dir); ret = extract_directory(output_dir, true); if (ret != 0) @@ -398,11 +388,8 @@ static int extract_all_images(WIMStruct *w, const char *output_dir, } ret = extract_single_image(w, image, buf, extract_flags); if (ret != 0) - goto done; + return ret; } -done: - /* Restore original output directory */ - buf[output_path_len + 1] = '\0'; return 0; } diff --git a/tests/test-imagex b/tests/test-imagex index 33c58dbf..2c729cb4 100755 --- a/tests/test-imagex +++ b/tests/test-imagex @@ -9,7 +9,7 @@ cd tests imagex() { echo "imagex $@" - ../imagex $@ + ../imagex $@ } cleanup() {