X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fextract.c;h=14accdac3119c6d4241ca6d86b4c9a0934d4b69e;hb=f15a63ac3f4a9be0e4989363814502e85bdaf495;hp=1dd2f618479f0a879e3b4a4e560be1fd05c424a8;hpb=63a5804943519281f206ca0fefacfe2b99fc9958;p=wimlib diff --git a/src/extract.c b/src/extract.c index 1dd2f618..14accdac 100644 --- a/src/extract.c +++ b/src/extract.c @@ -48,7 +48,7 @@ /* Internal */ #define WIMLIB_EXTRACT_FLAG_MULTI_IMAGE 0x80000000 -static int extract_regular_file_linked(const struct dentry *dentry, +static int extract_regular_file_linked(const struct dentry *dentry, const char *output_dir, const char *output_path, int extract_flags, @@ -77,7 +77,7 @@ static int extract_regular_file_linked(const struct dentry *dentry, wimlib_assert(extract_flags & WIMLIB_EXTRACT_FLAG_SYMLINK); - num_path_components = + num_path_components = get_num_path_components(dentry->full_path_utf8) - 1; num_output_dir_path_components = get_num_path_components(output_dir); @@ -114,7 +114,7 @@ static int extract_regular_file_linked(const struct dentry *dentry, } static int extract_regular_file_unlinked(WIMStruct *w, - struct dentry *dentry, + struct dentry *dentry, const char *output_path, int extract_flags, struct lookup_table_entry *lte) @@ -124,7 +124,7 @@ static int extract_regular_file_unlinked(WIMStruct *w, int out_fd; int ret; - struct inode *inode = dentry->inode; + struct inode *inode = dentry->d_inode; if (!((extract_flags & WIMLIB_EXTRACT_FLAG_MULTI_IMAGE) && (extract_flags & (WIMLIB_EXTRACT_FLAG_SYMLINK | @@ -188,17 +188,17 @@ out: return ret; } -/* - * Extracts a regular file from the WIM archive. +/* + * Extracts a regular file from the WIM archive. */ -static int extract_regular_file(WIMStruct *w, - struct dentry *dentry, +static int extract_regular_file(WIMStruct *w, + struct dentry *dentry, const char *output_dir, const char *output_path, int extract_flags) { struct lookup_table_entry *lte; - const struct inode *inode = dentry->inode; + const struct inode *inode = dentry->d_inode; lte = inode_unnamed_lte(inode, w->lookup_table); @@ -224,7 +224,7 @@ static int extract_symlink(const struct dentry *dentry, const char *output_path, const WIMStruct *w) { char target[4096]; - ssize_t ret = inode_readlink(dentry->inode, target, sizeof(target), w); + ssize_t ret = inode_readlink(dentry->d_inode, target, sizeof(target), w); if (ret <= 0) { ERROR("Could not read the symbolic link from dentry `%s'", dentry->full_path_utf8); @@ -239,12 +239,12 @@ static int extract_symlink(const struct dentry *dentry, const char *output_path, return 0; } -/* - * Extracts a directory from the WIM archive. +/* + * Extracts a directory from the WIM archive. * * @dentry: The directory entry for the directory. * @output_path: The path to which the directory is to be extracted to. - * @return: True on success, false on failure. + * @return: True on success, false on failure. */ static int extract_directory(const char *output_path, bool is_root) { @@ -282,7 +282,7 @@ struct extract_args { const char *output_dir; }; -/* +/* * Extracts a file, directory, or symbolic link from the WIM archive. For use * in for_dentry_in_tree(). */ @@ -324,8 +324,8 @@ static int apply_dentry_timestamps(struct dentry *dentry, void *arg) output_path[len + dentry->full_path_utf8_len] = '\0'; struct timeval tv[2]; - wim_timestamp_to_timeval(dentry->inode->last_access_time, &tv[0]); - wim_timestamp_to_timeval(dentry->inode->last_write_time, &tv[1]); + wim_timestamp_to_timeval(dentry->d_inode->last_access_time, &tv[0]); + wim_timestamp_to_timeval(dentry->d_inode->last_write_time, &tv[1]); if (lutimes(output_path, tv) != 0) { WARNING("Failed to set timestamp on file `%s': %s", output_path, strerror(errno)); @@ -340,7 +340,7 @@ static int extract_single_image(WIMStruct *w, int image, DEBUG("Extracting image %d", image); int ret; - ret = wimlib_select_image(w, image); + ret = select_wim_image(w, image); if (ret != 0) return ret; @@ -381,7 +381,7 @@ static int extract_all_images(WIMStruct *w, const char *output_dir, memcpy(buf, output_dir, output_path_len); buf[output_path_len] = '/'; for (image = 1; image <= w->hdr.image_count; image++) { - + image_name = wimlib_get_image_name(w, image); if (*image_name) { strcpy(buf + output_path_len + 1, image_name);