1
0
mirror of https://github.com/facebook/zstd.git synced 2025-07-30 22:23:13 +03:00

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
2022-07-29 16:13:07 -07:00
committed by GitHub
parent d4a5bc4efc
commit ae4670466c
6 changed files with 62 additions and 4 deletions

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");