]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Add FIO_determineHasStdinInput() function and member to fCtx
authorsenhuang42 <senhuang96@fb.com>
Thu, 24 Sep 2020 19:55:30 +0000 (15:55 -0400)
committersenhuang42 <senhuang96@fb.com>
Thu, 24 Sep 2020 19:55:30 +0000 (15:55 -0400)
programs/fileio.c
programs/fileio.h
programs/zstdcli.c

index b8700f5d462e23306b41c7179a59bafa87b7e838..aa28d05f207dde9c2caf0141c8e271befcdb3bec 100644 (file)
@@ -330,6 +330,7 @@ struct FIO_ctx_s {
 
     /* file i/o info */
     int nbFilesTotal;
+    int hasStdinInput;
 
     /* file i/o state */
     int currFileIdx;
@@ -386,6 +387,7 @@ FIO_ctx_t* FIO_createContext(void)
     if (!ret) EXM_THROW(21, "Allocation error : not enough memory");
 
     ret->currFileIdx = 0;
+    ret->hasStdinInput = 0;
     ret->nbFilesTotal = 1;
     ret->nbFilesProcessed = 0;
     ret->totalBytesInput = 0;
@@ -539,6 +541,16 @@ void FIO_setNbFilesTotal(FIO_ctx_t* const fCtx, int value)
     fCtx->nbFilesTotal = value;
 }
 
+void FIO_determineHasStdinInput(FIO_ctx_t* const fCtx, const FileNamesTable* const filenames) {
+    int i = 0;
+    for ( ; i < filenames->tableSize; ++i) {
+        if (!strcmp(stdinmark, filenames->fileNames[i])) {
+            fCtx->hasStdinInput = 1;
+            return;
+        }
+    }
+}
+
 /*-*************************************
 *  Functions
 ***************************************/
index bec651a153a8a5b45c3f50477ad26316024363d9..866d679d97b1adb12c3b9618012f48a2b0f427fc 100644 (file)
@@ -106,6 +106,7 @@ void FIO_setContentSize(FIO_prefs_t* const prefs, int value);
 
 /* FIO_ctx_t functions */
 void FIO_setNbFilesTotal(FIO_ctx_t* const fCtx, int value);
+void FIO_determineHasStdinInput(FIO_ctx_t* const fCtx, const FileNamesTable* const filenames);
 
 /*-*************************************
 *  Single File functions
index 5d1c09de68db06177d631dc6b66dbfcdd002572e..3df91c10e063375b545ffb1e5bb62af870a88010 100644 (file)
@@ -1286,6 +1286,7 @@ int main(int const argCount, const char* argv[])
 
     /* IO Stream/File */
     FIO_setNbFilesTotal(fCtx, (int)filenames->tableSize); 
+    FIO_determineHasStdinInput(fCtx, filenames);
     FIO_setNotificationLevel(g_displayLevel);
     FIO_setPatchFromMode(prefs, patchFromDictFileName != NULL);
     if (memLimit == 0) {