stdin multiple file fixes (#3222)

* Fixes for https://github.com/facebook/zstd/issues/3206 - bugs when handling stdin as part of multiple files.

* new line at end of multiple-files.sh
This commit is contained in:
Yonatan Komornik authored and GitHub committed 2022-07-29 16:13:07 -07:00
1 parent d4a5bc4efc
commit ae4670466c
6 files changed
+62 -4

No files matched your search

+4 -4
View File
@@ -1391,19 +1391,19 @@ int main(int argCount, const char* argv[])
UTIL_refFilename(filenames, stdinmark);
}
if (!strcmp(filenames->fileNames[0], stdinmark) && !outFileName)
if (filenames->tableSize == 1 && !strcmp(filenames->fileNames[0], stdinmark) && !outFileName)
outFileName = stdoutmark; /* when input is stdin, default output is stdout */
/* Check if input/output defined as console; trigger an error in this case */
if (!forceStdin
&& !strcmp(filenames->fileNames[0], stdinmark)
&& (UTIL_searchFileNamesTable(filenames, stdinmark) != -1)
&& IS_CONSOLE(stdin) ) {
DISPLAYLEVEL(1, "stdin is a console, aborting\n");
CLEAN_RETURN(1);
}
if ( outFileName && !strcmp(outFileName, stdoutmark)
if ( (!outFileName || !strcmp(outFileName, stdoutmark))
&& IS_CONSOLE(stdout)
&& !strcmp(filenames->fileNames[0], stdinmark)
&& (UTIL_searchFileNamesTable(filenames, stdinmark) != -1)
&& !forceStdout
&& operation!=zom_decompress ) {
DISPLAYLEVEL(1, "stdout is a console, aborting\n");