From: senhuang42 Date: Tue, 25 Aug 2020 20:46:47 +0000 (-0400) Subject: Add initial live update with displayLevel = 2, add new field to FIO_prefs_t X-Git-Tag: v1.4.7~90^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da38891a87dc1be9796a65ce2c8214d16fe49379;p=thirdparty%2Fzstd.git Add initial live update with displayLevel = 2, add new field to FIO_prefs_t --- diff --git a/programs/fileio.c b/programs/fileio.c index d5b8a7d14..079b3bc43 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -319,6 +319,7 @@ struct FIO_prefs_s { int excludeCompressedFiles; int patchFromMode; int contentSize; + int nbFiles; }; @@ -360,6 +361,7 @@ FIO_prefs_t* FIO_createPreferences(void) ret->testMode = 0; ret->literalCompressionMode = ZSTD_lcm_auto; ret->excludeCompressedFiles = 0; + ret->nbFiles = 1; return ret; } @@ -495,6 +497,11 @@ void FIO_setContentSize(FIO_prefs_t* const prefs, int value) prefs->contentSize = value != 0; } +void FIO_setNbFiles(FIO_prefs_t* const prefs, int value) +{ + prefs->nbFiles = value; +} + /*-************************************* * Functions ***************************************/ @@ -1254,17 +1261,17 @@ FIO_compressZstdFrame(FIO_prefs_t* const prefs, /* display progress notifications */ if (g_display_prefs.displayLevel >= 3) { - DISPLAYUPDATE(3, "\r(L%i) Buffered :%4u MB - Consumed :%4u MB - Compressed :%4u MB => %.2f%% ", + DISPLAYUPDATE(3, "\r(L%i) Buffered :%4u MB - Consumed :%4u MB - Compressed :%4u MB => %.2f%%\033 ", compressionLevel, (unsigned)((zfp.ingested - zfp.consumed) >> 20), (unsigned)(zfp.consumed >> 20), (unsigned)(zfp.produced >> 20), cShare ); } else { /* summarized notifications if == 2; */ - DISPLAYLEVEL(2, "\rRead : %u ", (unsigned)(zfp.consumed >> 20)); + DISPLAYLEVEL(2, "\033[s Read : %u ", (unsigned)(zfp.consumed >> 20)); if (fileSize != UTIL_FILESIZE_UNKNOWN) DISPLAYLEVEL(2, "/ %u ", (unsigned)(fileSize >> 20)); - DISPLAYLEVEL(2, "MB ==> %2.f%% ", cShare); + DISPLAYLEVEL(2, "MB ==> %2.f%%\033[u", cShare); DELAY_NEXT_UPDATE(); } @@ -1427,18 +1434,21 @@ FIO_compressFilename_internal(FIO_prefs_t* const prefs, } /* Status */ - DISPLAYLEVEL(2, "\r%79s\r", ""); - if (readsize == 0) { - DISPLAYLEVEL(2,"%-20s : (%6llu => %6llu bytes, %s) \n", - srcFileName, - (unsigned long long)readsize, (unsigned long long) compressedfilesize, - dstFileName); - } else { - DISPLAYLEVEL(2,"%-20s :%6.2f%% (%6llu => %6llu bytes, %s) \n", - srcFileName, - (double)compressedfilesize / readsize * 100, - (unsigned long long)readsize, (unsigned long long) compressedfilesize, - dstFileName); + + if (prefs->nbFiles == 1 && !((!strcmp(srcFileName, stdinmark) && dstFileName && !strcmp(dstFileName,stdoutmark)))) { + DISPLAYLEVEL(2, "\r%79s\r", ""); + if (readsize == 0) { + DISPLAYLEVEL(2,"%-20s : (%6llu => %6llu bytes, %s) \n", + srcFileName, + (unsigned long long)readsize, (unsigned long long) compressedfilesize, + dstFileName); + } else { + DISPLAYLEVEL(2,"%-20s :%6.2f%% (%6llu => %6llu bytes, %s) \n", + srcFileName, + (double)compressedfilesize / readsize * 100, + (unsigned long long)readsize, (unsigned long long) compressedfilesize, + dstFileName); + } } /* Elapsed Time and CPU Load */ @@ -1682,8 +1692,10 @@ int FIO_compressMultipleFilenames(FIO_prefs_t* const prefs, error = 1; } else { unsigned u; - for (u=0; u 1) + DISPLAYUPDATE(2, "\rCompressing %u/%u files. Current source: %s |", u+1, nbFiles, srcFileName); error |= FIO_compressFilename_srcFile(prefs, ress, dstFileName, srcFileName, compressionLevel); } diff --git a/programs/fileio.h b/programs/fileio.h index ef3c9e72f..5913c8a13 100644 --- a/programs/fileio.h +++ b/programs/fileio.h @@ -96,6 +96,7 @@ void FIO_setNotificationLevel(int level); void FIO_setExcludeCompressedFile(FIO_prefs_t* const prefs, int excludeCompressedFiles); void FIO_setPatchFromMode(FIO_prefs_t* const prefs, int value); void FIO_setContentSize(FIO_prefs_t* const prefs, int value); +void FIO_setNbFiles(FIO_prefs_t* const prefs, int value); /*-************************************* * Single File functions diff --git a/programs/zstdcli.c b/programs/zstdcli.c index 1aea63dca..534a848e2 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -1244,10 +1244,6 @@ int main(int const argCount, const char* argv[]) CLEAN_RETURN(1); } - /* No status message in pipe mode (stdin - stdout) or multi-files mode */ - if (!strcmp(filenames->fileNames[0], stdinmark) && outFileName && !strcmp(outFileName,stdoutmark) && (g_displayLevel==2)) g_displayLevel=1; - if ((filenames->tableSize > 1) & (g_displayLevel==2)) g_displayLevel=1; - /* IO Stream/File */ FIO_setNotificationLevel(g_displayLevel); FIO_setPatchFromMode(prefs, patchFromDictFileName != NULL); @@ -1306,10 +1302,12 @@ int main(int const argCount, const char* argv[]) } } - if ((filenames->tableSize==1) && outFileName) - operationResult = FIO_compressFilename(prefs, outFileName, filenames->fileNames[0], dictFileName, cLevel, compressionParams); - else - operationResult = FIO_compressMultipleFilenames(prefs, filenames->fileNames, (unsigned)filenames->tableSize, outMirroredDirName, outDirName, outFileName, suffix, dictFileName, cLevel, compressionParams); + if ((filenames->tableSize==1) && outFileName) { + operationResult = FIO_compressFilename(prefs, outFileName, filenames->fileNames[0], dictFileName, cLevel, compressionParams); + } else { + FIO_setNbFiles(prefs, (int)filenames->tableSize); + operationResult = FIO_compressMultipleFilenames(prefs, filenames->fileNames, (unsigned)filenames->tableSize, outMirroredDirName, outDirName, outFileName, suffix, dictFileName, cLevel, compressionParams); + } #else (void)contentSize; (void)suffix; (void)adapt; (void)rsyncable; (void)ultra; (void)cLevel; (void)ldmFlag; (void)literalCompressionMode; (void)targetCBlockSize; (void)streamSrcSize; (void)srcSizeHint; (void)ZSTD_strategyMap; /* not used when ZSTD_NOCOMPRESS set */ DISPLAY("Compression not supported \n"); @@ -1319,6 +1317,7 @@ int main(int const argCount, const char* argv[]) if (filenames->tableSize == 1 && outFileName) { operationResult = FIO_decompressFilename(prefs, outFileName, filenames->fileNames[0], dictFileName); } else { + FIO_setNbFiles(prefs, (int)filenames->tableSize); operationResult = FIO_decompressMultipleFilenames(prefs, filenames->fileNames, (unsigned)filenames->tableSize, outMirroredDirName, outDirName, outFileName, dictFileName); } #else