]> wimlib.net Git - wimlib/blobdiff - src/extract.c
extract_trees(): Send correct end progress msg
[wimlib] / src / extract.c
index c53515d62e723b1ad4d12a1697248227d0d9be0b..c6711ec902dd36f43df80b972531bfa14fc22da1 100644 (file)
@@ -1530,8 +1530,8 @@ extract_streams_from_pipe(struct apply_ctx *ctx)
                                if (ret)
                                        goto out_free_found_lte;
 
-                               ret = extract_stream_to_fd(needed_lte, &tmpfile_fd,
-                                                          needed_lte->size);
+                               ret = extract_full_stream_to_fd(needed_lte,
+                                                               &tmpfile_fd);
                                if (ret) {
                                        filedes_close(&tmpfile_fd);
                                        goto delete_tmpfile;
@@ -1651,7 +1651,7 @@ extract_dentry_to_stdout(struct wim_dentry *dentry)
                if (lte) {
                        struct filedes _stdout;
                        filedes_init(&_stdout, STDOUT_FILENO);
-                       ret = extract_stream_to_fd(lte, &_stdout, lte->size);
+                       ret = extract_full_stream_to_fd(lte, &_stdout);
                }
        }
        return ret;
@@ -2503,9 +2503,12 @@ extract_trees(WIMStruct *wim, struct wim_dentry **trees, size_t num_trees,
                goto out_free_realtarget;
 
        if (progress_func) {
-               progress_func(*wim_source_path ? WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END :
-                             WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END,
-                             &ctx.progress);
+               int msg;
+               if (*wim_source_path || (extract_flags & WIMLIB_EXTRACT_FLAG_PATHMODE))
+                       msg = WIMLIB_PROGRESS_MSG_EXTRACT_TREE_END;
+               else
+                       msg = WIMLIB_PROGRESS_MSG_EXTRACT_IMAGE_END;
+               progress_func(msg, &ctx.progress);
        }
 
        do_extract_warnings(&ctx);