]> wimlib.net Git - wimlib/blobdiff - programs/imagex.c
Fix completed_streams of write streams progress and update docs
[wimlib] / programs / imagex.c
index 92e64ee775d0b815567e1eb99a566a55b45741c1..9569a255cd2d1f90cfcab3dab469702f79488441 100644 (file)
@@ -1079,7 +1079,7 @@ report_scan_progress(const struct wimlib_progress_info_scan *scan, bool done)
 
                unit_shift = get_unit(scan->num_bytes_scanned, &unit_name);
                imagex_printf(T("\r%"PRIu64" %"TS" scanned (%"PRIu64" files, "
-                               "%"PRIu64" directories)"),
+                               "%"PRIu64" directories)    "),
                              scan->num_bytes_scanned >> unit_shift,
                              unit_name,
                              scan->num_nondirs_scanned,
@@ -1101,16 +1101,22 @@ imagex_progress_func(enum wimlib_progress_msg msg,
                return 0;
        switch (msg) {
        case WIMLIB_PROGRESS_MSG_WRITE_STREAMS:
+               {
+                       static bool first = false;
+                       if (!first) {
+                               imagex_printf(T("Writing %"TS"-compressed data "
+                                               "using %u thread%"TS"\n"),
+                                             wimlib_get_compression_type_string(
+                                                       info->write_streams.compression_type),
+                                       info->write_streams.num_threads,
+                                       (info->write_streams.num_threads == 1) ? T("") : T("s"));
+                               first = true;
+                       }
+               }
                unit_shift = get_unit(info->write_streams.total_bytes, &unit_name);
                percent_done = TO_PERCENT(info->write_streams.completed_bytes,
                                          info->write_streams.total_bytes);
 
-               if (info->write_streams.completed_streams == 0) {
-                       imagex_printf(T("Writing %"TS"-compressed data using %u thread%"TS"\n"),
-                               wimlib_get_compression_type_string(info->write_streams.compression_type),
-                               info->write_streams.num_threads,
-                               (info->write_streams.num_threads == 1) ? T("") : T("s"));
-               }
                if (info->write_streams.total_parts <= 1) {
                        imagex_printf(T("\r%"PRIu64" %"TS" of %"PRIu64" %"TS" (uncompressed) "
                                "written (%u%% done)"),
@@ -1159,6 +1165,14 @@ imagex_progress_func(enum wimlib_progress_msg msg,
                        imagex_printf(T("\nWARNING: Excluding unsupported file or directory\n"
                                        "         \"%"TS"\" from capture\n"), info->scan.cur_path);
                        break;
+               case WIMLIB_SCAN_DENTRY_EXCLUDED_SYMLINK:
+                       imagex_printf(T("\nWARNING: Ignoring absolute symbolic link "
+                                       "with out-of-tree target:\n"
+                                       "           \"%"TS"\" => \"%"TS"\"\n"
+                                       "           (Use --norpfix to capture "
+                                       "absolute symbolic links as-is)\n"),
+                                       info->scan.cur_path, info->scan.symlink_target);
+                       break;
                }
                break;
        case WIMLIB_PROGRESS_MSG_SCAN_END:
@@ -1205,14 +1219,17 @@ imagex_progress_func(enum wimlib_progress_msg msg,
                        info->extract.target);
                break;
        case WIMLIB_PROGRESS_MSG_EXTRACT_TREE_BEGIN:
-               imagex_printf(T("Extracting "
-                         "\""WIMLIB_WIM_PATH_SEPARATOR_STRING"%"TS"\" from image %d (\"%"TS"\") "
-                         "in \"%"TS"\" to \"%"TS"\"\n"),
-                       info->extract.extract_root_wim_source_path,
-                       info->extract.image,
-                       info->extract.image_name,
-                       info->extract.wimfile_name,
-                       info->extract.target);
+               if (info->extract.extract_root_wim_source_path[0] != T('\0')) {
+                       imagex_printf(T("Extracting "
+                                 "\""WIMLIB_WIM_PATH_SEPARATOR_STRING"%"TS"\" "
+                                 "from image %d (\"%"TS"\") "
+                                 "in \"%"TS"\" to \"%"TS"\"\n"),
+                               info->extract.extract_root_wim_source_path,
+                               info->extract.image,
+                               info->extract.image_name,
+                               info->extract.wimfile_name,
+                               info->extract.target);
+               }
                break;
        case WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS:
                percent_done = TO_PERCENT(info->extract.completed_bytes,
@@ -1541,7 +1558,7 @@ imagex_apply(int argc, tchar **argv, int cmd)
        const tchar *wimfile;
        const tchar *target;
        const tchar *image_num_or_name = NULL;
-       int extract_flags = WIMLIB_EXTRACT_FLAG_SEQUENTIAL;
+       int extract_flags = 0;
 
        STRING_SET(refglobs);
 
@@ -2703,7 +2720,7 @@ imagex_extract(int argc, tchar **argv, int cmd)
        const tchar *image_num_or_name;
        const tchar *pathlist;
        tchar *dest_dir = T(".");
-       int extract_flags = WIMLIB_EXTRACT_FLAG_SEQUENTIAL | WIMLIB_EXTRACT_FLAG_NORPFIX;
+       int extract_flags = WIMLIB_EXTRACT_FLAG_NORPFIX;
        int listfile_extract_flags = WIMLIB_EXTRACT_FLAG_GLOB_PATHS;
 
        STRING_SET(refglobs);