summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch')
-rw-r--r--gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch b/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch
new file mode 100644
index 0000000000..47fa3e59a7
--- /dev/null
+++ b/gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch
@@ -0,0 +1,67 @@
+From 712a9fd9721c314f4b0238577d803b012845f6d2 Mon Sep 17 00:00:00 2001
+From: "W. Felix Handte" <w@felixhandte.com>
+Date: Fri, 29 Jun 2018 15:33:44 -0400
+Subject: [PATCH] Allow Invoking `zstd --list` When `stdin` is not a `tty`
+
+Also now returns an error when no inputs are given.
+
+New proposed behavior:
+
+```
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l; echo $?
+No files given
+1
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst; echo $?
+Frames Skips Compressed Uncompressed Ratio Check Filename
+ 1 0 3.08 KB 10.92 KB 3.544 XXH64 Makefile.zst
+0
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l <Makefile.zst; echo $?
+zstd: --list does not support reading from standard input
+No files given
+1
+felix@odin:~/prog/zstd (list-stdin-check)$ ./zstd -l Makefile.zst <Makefile.zst; echo $?
+Frames Skips Compressed Uncompressed Ratio Check Filename
+ 1 0 3.08 KB 10.92 KB 3.544 XXH64 Makefile.zst
+0
+felix@odin:~/prog/zstd (list-stdin-check)$
+```
+---
+ programs/fileio.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/programs/fileio.c b/programs/fileio.c
+index 0175b3163..b4eed28d1 100644
+--- a/programs/fileio.c
++++ b/programs/fileio.c
+@@ -2017,21 +2017,25 @@ static int FIO_listFile(fileInfo_t* total, const char* inFileName, int displayLe
+ }
+
+ int FIO_listMultipleFiles(unsigned numFiles, const char** filenameTable, int displayLevel){
+-
+- if (!IS_CONSOLE(stdin)) {
+- DISPLAYOUT("zstd: --list does not support reading from standard input\n");
+- return 1;
++ unsigned u;
++ for (u=0; u<numFiles;u++) {
++ if (!strcmp (filenameTable[u], stdinmark)) {
++ DISPLAYOUT("zstd: --list does not support reading from standard input\n");
++ return 1;
++ }
+ }
+
+ if (numFiles == 0) {
++ if (!IS_CONSOLE(stdin)) {
++ DISPLAYOUT("zstd: --list does not support reading from standard input\n");
++ }
+ DISPLAYOUT("No files given\n");
+- return 0;
++ return 1;
+ }
+ if (displayLevel <= 2) {
+ DISPLAYOUT("Frames Skips Compressed Uncompressed Ratio Check Filename\n");
+ }
+ { int error = 0;
+- unsigned u;
+ fileInfo_t total;
+ memset(&total, 0, sizeof(total));
+ total.usesCheck = 1;