IMAGEX_RECOMPRESS_OPTION,
IMAGEX_RECURSIVE_OPTION,
IMAGEX_REF_OPTION,
+ IMAGEX_RESUME_OPTION,
IMAGEX_RPFIX_OPTION,
IMAGEX_SOFT_OPTION,
IMAGEX_SOURCE_LIST_OPTION,
{T("rpfix"), no_argument, NULL, IMAGEX_RPFIX_OPTION},
{T("norpfix"), no_argument, NULL, IMAGEX_NORPFIX_OPTION},
{T("include-invalid-names"), no_argument, NULL, IMAGEX_INCLUDE_INVALID_NAMES_OPTION},
+ {T("resume"), no_argument, NULL, IMAGEX_RESUME_OPTION},
{NULL, 0, NULL, 0},
};
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) {
const tchar *data_type;
data_type, info->write_streams.num_threads,
(info->write_streams.num_threads == 1) ? T("") : T("s"));
}
- imagex_printf(T("\r%"PRIu64" %"TS" of %"PRIu64" %"TS" (uncompressed) "
- "written (%u%% done)"),
- info->write_streams.completed_bytes >> unit_shift,
- unit_name,
- info->write_streams.total_bytes >> unit_shift,
- unit_name,
- percent_done);
+ if (info->write_streams.total_parts <= 1) {
+ imagex_printf(T("\r%"PRIu64" %"TS" of %"PRIu64" %"TS" (uncompressed) "
+ "written (%u%% done)"),
+ info->write_streams.completed_bytes >> unit_shift,
+ unit_name,
+ info->write_streams.total_bytes >> unit_shift,
+ unit_name,
+ percent_done);
+ } else {
+ imagex_printf(T("\rWriting resources from part %u of %u: "
+ "%"PRIu64 " %"TS" of %"PRIu64" %"TS" (%u%%) written"),
+ (info->write_streams.completed_parts ==
+ info->write_streams.total_parts) ?
+ info->write_streams.completed_parts :
+ info->write_streams.completed_parts + 1,
+ info->write_streams.total_parts,
+ info->write_streams.completed_bytes >> unit_shift,
+ unit_name,
+ info->write_streams.total_bytes >> unit_shift,
+ unit_name,
+ percent_done);
+ }
if (info->write_streams.completed_bytes >= info->write_streams.total_bytes)
imagex_printf(T("\n"));
break;
else
imagex_printf(T("Scanning \"%"TS"\"\n"), info->scan.cur_path);
break;
- /*case WIMLIB_PROGRESS_MSG_SCAN_END:*/
- /*break;*/
case WIMLIB_PROGRESS_MSG_VERIFY_INTEGRITY:
unit_shift = get_unit(info->integrity.total_bytes, &unit_name);
percent_done = TO_PERCENT(info->integrity.completed_bytes,
info->extract.wimfile_name,
info->extract.target);
break;
- /*case WIMLIB_PROGRESS_MSG_EXTRACT_DIR_STRUCTURE_BEGIN:*/
- /*imagex_printf(T("Applying directory structure to %"TS"\n"),*/
- /*info->extract.target);*/
- /*break;*/
case WIMLIB_PROGRESS_MSG_EXTRACT_STREAMS:
percent_done = TO_PERCENT(info->extract.completed_bytes,
info->extract.total_bytes);
if (info->extract.completed_bytes >= info->extract.total_bytes)
imagex_printf(T("\n"));
break;
+ case WIMLIB_PROGRESS_MSG_EXTRACT_SPWM_PART_BEGIN:
+ imagex_printf(T("\nReading split pipable WIM part %u of %u\n"),
+ info->extract.part_number,
+ info->extract.total_parts);
+ break;
case WIMLIB_PROGRESS_MSG_APPLY_TIMESTAMPS:
if (info->extract.extract_root_wim_source_path[0] == T('\0'))
imagex_printf(T("Setting timestamps on all extracted files...\n"));
info->extract.target);
}
break;
- case WIMLIB_PROGRESS_MSG_JOIN_STREAMS:
- percent_done = TO_PERCENT(info->join.completed_bytes,
- info->join.total_bytes);
- unit_shift = get_unit(info->join.total_bytes, &unit_name);
- imagex_printf(T("Writing resources from part %u of %u: "
- "%"PRIu64 " %"TS" of %"PRIu64" %"TS" (%u%%) written\n"),
- (info->join.completed_parts == info->join.total_parts) ?
- info->join.completed_parts : info->join.completed_parts + 1,
- info->join.total_parts,
- info->join.completed_bytes >> unit_shift,
- unit_name,
- info->join.total_bytes >> unit_shift,
- unit_name,
- percent_done);
- break;
case WIMLIB_PROGRESS_MSG_SPLIT_BEGIN_PART:
percent_done = TO_PERCENT(info->split.completed_bytes,
info->split.total_bytes);
break;
case WIMLIB_PROGRESS_MSG_SPLIT_END_PART:
if (info->split.completed_bytes == info->split.total_bytes) {
- imagex_printf(T("Finished writing part %u of %u WIM parts\n"),
+ imagex_printf(T("Finished writing split WIM part %u of %u\n"),
info->split.cur_part_number,
info->split.total_parts);
}
extract_flags |= WIMLIB_EXTRACT_FLAG_REPLACE_INVALID_FILENAMES;
extract_flags |= WIMLIB_EXTRACT_FLAG_ALL_CASE_CONFLICTS;
break;
+ case IMAGEX_RESUME_OPTION:
+ extract_flags |= WIMLIB_EXTRACT_FLAG_RESUME;
+ break;
default:
goto out_usage;
}
" (DIRECTORY | NTFS_VOLUME) [--check] [--hardlink]\n"
" [--symlink] [--verbose] [--ref=\"GLOB\"] [--unix-data]\n"
" [--no-acls] [--strict-acls] [--rpfix] [--norpfix]\n"
-" [--include-invalid-names]\n"
+" [--include-invalid-names] [--resume]\n"
),
[CMD_CAPTURE] =
T(
static void
version(void)
{
- static const tchar *format =
+ static const tchar *s =
T(
-"%"TS" (" PACKAGE ") " PACKAGE_VERSION "\n"
+IMAGEX_PROGNAME " (" PACKAGE ") " PACKAGE_VERSION "\n"
"Copyright (C) 2012, 2013 Eric Biggers\n"
"License GPLv3+; GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n"
"This is free software: you are free to change and redistribute it.\n"
"\n"
"Report bugs to "PACKAGE_BUGREPORT".\n"
);
- tprintf(format, invocation_name);
+ tfputs(s, stdout);
}