]> wimlib.net Git - wimlib/blobdiff - src/extract_image.c
Fix extract progress messages (again)
[wimlib] / src / extract_image.c
index ba9b8c675d47e90dd98c70e502236330dcfbf199..56c72f870e0947e7c5d05177c5f5228aa647e508 100644 (file)
@@ -546,12 +546,20 @@ static int apply_stream_list(struct list_head *stream_list,
                                if (ret != 0)
                                        goto out;
                                if (progress_func &&
-                                   args->progress.extract.completed_bytes >= next_progress &&
-                                   args->progress.extract.total_bytes != 0)
+                                   args->progress.extract.completed_bytes >= next_progress)
                                {
                                        progress_func(WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS,
                                                      &args->progress);
-                                       next_progress += bytes_per_progress;
+                                       if (args->progress.extract.completed_bytes >=
+                                           args->progress.extract.total_bytes)
+                                       {
+                                               next_progress = ~0ULL;
+                                       } else {
+                                               next_progress =
+                                                       min (args->progress.extract.completed_bytes +
+                                                            bytes_per_progress,
+                                                            args->progress.extract.total_bytes);
+                                       }
                                }
                        }
                }