]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
--no-content-size cli
authorBimba Shrestha <bimbashrestha@fb.com>
Mon, 9 Mar 2020 18:07:29 +0000 (13:07 -0500)
committerBimba Shrestha <bimbashrestha@fb.com>
Mon, 9 Mar 2020 18:07:29 +0000 (13:07 -0500)
programs/fileio.c
programs/fileio.h
programs/zstdcli.c

index e08c7f3501f532587467b1c2bf50607aa246c4a2..288a73d327cd4dffd0a6d2d05ad48341c6a73514 100644 (file)
@@ -323,6 +323,7 @@ struct FIO_prefs_s {
 
     int excludeCompressedFiles;
     int patchFromMode;
+    int noContentSize;
 };
 
 
@@ -494,6 +495,11 @@ void FIO_setPatchFromMode(FIO_prefs_t* const prefs, int value)
     prefs->patchFromMode = value != 0;
 }
 
+void FIO_setNoContentSize(FIO_prefs_t* const prefs, int value)
+{
+    prefs->noContentSize = value != 0;
+}
+
 /*-*************************************
 *  Functions
 ***************************************/
@@ -1336,7 +1342,7 @@ FIO_compressFilename_internal(FIO_prefs_t* const prefs,
     clock_t const cpuStart = clock();
     U64 readsize = 0;
     U64 compressedfilesize = 0;
-    U64 const fileSize = UTIL_getFileSize(srcFileName);
+    U64 const fileSize = !prefs->noContentSize ? UTIL_getFileSize(srcFileName) : UTIL_FILESIZE_UNKNOWN;
     DISPLAYLEVEL(5, "%s: %u bytes \n", srcFileName, (unsigned)fileSize);
 
     /* compression format selection */
index c592542e55ad2dc4db41441f4b7cb0bbc4492e67..ec2f28dc5f7758ec4109bd3ea41f39be1c191814 100644 (file)
@@ -95,6 +95,7 @@ void FIO_setNoProgress(unsigned noProgress);
 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_setNoContentSize(FIO_prefs_t* const prefs, int value);
 
 /*-*************************************
 *  Single File functions
index b7f068ac1c956472b6264f52ba59a730c9f9a646..557c95dfd078815a6b64e92796c424d9ce958762 100644 (file)
@@ -634,7 +634,8 @@ int main(int const argCount, const char* argv[])
         setRealTimePrio = 0,
         singleThread = 0,
         showDefaultCParams = 0,
-        ultra=0;
+        ultra=0,
+        noContentSize=0;
     double compressibility = 0.5;
     unsigned bench_nbSeconds = 3;   /* would be better if this value was synchronized from bench */
     size_t blockSize = 0;
@@ -748,6 +749,7 @@ int main(int const argCount, const char* argv[])
                 if (!strcmp(argument, "--priority=rt")) { setRealTimePrio = 1; continue; }
                 if (!strcmp(argument, "--output-dir-flat")) {nextArgumentIsOutDirName=1; lastCommand=1; continue; }
                 if (!strcmp(argument, "--show-default-cparams")) { showDefaultCParams = 1; continue; }
+                if (!strcmp(argument, "--no-content-size")) { noContentSize = 1; continue; }
                 if (!strcmp(argument, "--adapt")) { adapt = 1; continue; }
                 if (longCommandWArg(&argument, "--adapt=")) { adapt = 1; if (!parseAdaptParameters(argument, &adaptMin, &adaptMax)) { badusage(programName); CLEAN_RETURN(1); } continue; }
                 if (!strcmp(argument, "--single-thread")) { nbWorkers = 0; singleThread = 1; continue; }
@@ -1256,6 +1258,7 @@ int main(int const argCount, const char* argv[])
     FIO_setMemLimit(prefs, memLimit);
     if (operation==zom_compress) {
 #ifndef ZSTD_NOCOMPRESS
+        FIO_setNoContentSize(prefs, noContentSize);
         FIO_setNbWorkers(prefs, nbWorkers);
         FIO_setBlockSize(prefs, (int)blockSize);
         if (g_overlapLog!=OVERLAP_LOG_DEFAULT) FIO_setOverlapLog(prefs, (int)g_overlapLog);