diff --git a/main.c b/main.c index ac92699..6b967e4 100644 --- a/main.c +++ b/main.c @@ -711,6 +711,74 @@ static void compress_file(void) free(control.outfile); } +static void show_summary(void) +{ + /* OK, if verbosity set, print summary of options selected */ + if (!INFO) { + i64 temp_chunk, temp_window, temp_ramsize; /* to show heurisitic computed values */ + + if (!TEST_ONLY) + print_verbose("The following options are in effect for this %s.\n", + DECOMPRESS ? "DECOMPRESSION" : "COMPRESSION"); + print_verbose("Threading is %s. Number of CPUs detected: %d\n", control.threads > 1? "ENABLED" : "DISABLED", + control.threads); + print_verbose("Detected %lld bytes ram\n", control.ramsize); + print_verbose("Compression level %d\n", control.compression_level); + print_verbose("Nice Value: %d\n", control.nice_val); + print_verbose("Show Progress\n"); + print_maxverbose("Max "); + print_verbose("Verbose\n"); + if (FORCE_REPLACE) + print_verbose("Overwrite Files\n"); + if (!KEEP_FILES) + print_verbose("Remove input files on completion\n"); + if (control.outdir) + print_verbose("Output Directory Specified: %s\n", control.outdir); + else if (control.outname) + print_verbose("Output Filename Specified: %s\n", control.outname); + if (TEST_ONLY) + print_verbose("Test file integrity\n"); + if (control.tmpdir) + print_verbose("Temporary Directory set as: %s\n", control.tmpdir); + + /* show compression options */ + if (!DECOMPRESS && !TEST_ONLY) { + print_verbose("Compression mode is: "); + if (LZMA_COMPRESS) + print_verbose("LZMA. LZO Compressibility testing %s\n", (LZO_TEST? "enabled" : "disabled")); + else if (LZO_COMPRESS) + print_verbose("LZO\n"); + else if (BZIP2_COMPRESS) + print_verbose("BZIP2. LZO Compressibility testing %s\n", (LZO_TEST? "enabled" : "disabled")); + else if (ZLIB_COMPRESS) + print_verbose("GZIP\n"); + else if (ZPAQ_COMPRESS) + print_verbose("ZPAQ. LZO Compressibility testing %s\n", (LZO_TEST? "enabled" : "disabled")); + else if (NO_COMPRESS) + print_verbose("RZIP pre-processing only\n"); + if (control.window) + print_verbose("Compression Window: %lld = %lldMB\n", control.window, control.window * 100ull); + /* show heuristically computed window size */ + if (!control.window && !UNLIMITED) { + temp_ramsize = control.ramsize; + if (BITS32) + temp_ramsize = MAX(temp_ramsize - 900000000ll, 900000000ll); + if (STDIN || STDOUT) { + if (STDIN && STDOUT) + temp_chunk = temp_ramsize * 2 / 9; + else + temp_chunk = temp_ramsize / 3; + } else + temp_chunk = temp_ramsize / 3 * 2; + temp_window = temp_chunk / (100 * 1024 * 1024); + print_verbose("Heuristically Computed Compression Window: %lld = %lldMB\n", temp_window, temp_window * 100ull); + } + if (UNLIMITED) + print_verbose("Using Unlimited Window size\n"); + } + } +} + int main(int argc, char *argv[]) { struct timeval start_time, end_time; @@ -926,65 +994,6 @@ int main(int argc, char *argv[]) } else if (ZPAQ_COMPRESS) control.overhead = 112 * 1024 * 1024; - /* OK, if verbosity set, print summary of options selected */ - if (!INFO) { - i64 temp_chunk, temp_window, temp_ramsize; /* to show heurisitic computed values */ - - if (!TEST_ONLY) - print_verbose("The following options are in effect for this %s.\n", - DECOMPRESS ? "DECOMPRESSION" : "COMPRESSION"); - print_verbose("Threading is %s. Number of CPUs detected: %d\n", control.threads > 1? "ENABLED" : "DISABLED", - control.threads); - print_verbose("Detected %lld bytes ram\n", control.ramsize); - print_verbose("Compression level %d\n", control.compression_level); - print_verbose("Nice Value: %d\n", control.nice_val); - print_verbose("Show Progress\n"); - print_maxverbose("Max "); - print_verbose("Verbose\n"); - if (FORCE_REPLACE) - print_verbose("Overwrite Files\n"); - if (!KEEP_FILES) - print_verbose("Remove input files on completion\n"); - if (control.outdir) - print_verbose("Output Directory Specified: %s\n", control.outdir); - else if (control.outname) - print_verbose("Output Filename Specified: %s\n", control.outname); - if (TEST_ONLY) - print_verbose("Test file integrity\n"); - if (control.tmpdir) - print_verbose("Temporary Directory set as: %s\n", control.tmpdir); - - /* show compression options */ - if (!DECOMPRESS && !TEST_ONLY) { - print_verbose("Compression mode is: "); - if (LZMA_COMPRESS) - print_verbose("LZMA. LZO Compressibility testing %s\n", (LZO_TEST? "enabled" : "disabled")); - else if (LZO_COMPRESS) - print_verbose("LZO\n"); - else if (BZIP2_COMPRESS) - print_verbose("BZIP2. LZO Compressibility testing %s\n", (LZO_TEST? "enabled" : "disabled")); - else if (ZLIB_COMPRESS) - print_verbose("GZIP\n"); - else if (ZPAQ_COMPRESS) - print_verbose("ZPAQ. LZO Compressibility testing %s\n", (LZO_TEST? "enabled" : "disabled")); - else if (NO_COMPRESS) - print_verbose("RZIP pre-processing only\n"); - if (control.window) - print_verbose("Compression Window: %lld = %lldMB\n", control.window, control.window * 100ull); - /* show heuristically computed window size */ - if (!control.window && !UNLIMITED) { - temp_ramsize = control.ramsize; - if (BITS32) - temp_ramsize = MAX(temp_ramsize - 900000000ll, 900000000ll); - temp_chunk = temp_ramsize / 3 * 2; - temp_window = temp_chunk / (100 * 1024 * 1024); - print_verbose("Heuristically Computed Compression Window: %lld = %lldMB\n", temp_window, temp_window * 100ull); - } - if (UNLIMITED) - print_verbose("Using Unlimited Window size\n"); - } - } - /* Decrease usable ram size on 32 bits due to kernel/userspace split */ if (BITS32) control.ramsize = MAX(control.ramsize - 900000000ll, 900000000ll); @@ -1039,6 +1048,8 @@ int main(int argc, char *argv[]) } } + show_summary(); + gettimeofday(&start_time, NULL); if (control.flags & (FLAG_DECOMPRESS | FLAG_TEST_ONLY))