X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=programs%2Fimagex.c;h=d64f2e04d62ca19d9c5bfe00cda192683b8cca3f;hb=637f86d129be63bb9dc431e8e2ead370330ca5ce;hp=aa628b35fbf14a9c37171639493acf50dfe2f6c8;hpb=1fc939b7bd0b37900d974b1cd5b11df128df71f5;p=wimlib diff --git a/programs/imagex.c b/programs/imagex.c index aa628b35..d64f2e04 100644 --- a/programs/imagex.c +++ b/programs/imagex.c @@ -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 = true; + 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 = false; + } + } 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); @@ -3881,7 +3898,7 @@ T( ), [CMD_EXTRACT] = T( -" %"TS" WIMFILE (IMAGE_NUM | IMAGE_NAME) [PATH...]\n" +" %"TS" WIMFILE (IMAGE_NUM | IMAGE_NAME) ([PATH...] | @LISTFILE)\n" " [--check] [--ref=\"GLOB\"] [--no-acls] [--strict-acls]\n" " [--to-stdout] [--dest-dir=CMD_DIR]\n" " [--include-invalid-names]\n"