* gnu/packages/compression.scm (zstd): Update to 1.3.5. [source]: Add two patches to make the test suite pass. * gnu/packages/patches/zstd-fix-stdin-list-without-tty.patch, gnu/packages/patches/zstd-fix-stdin-list-test.patch: New files. * gnu/local.mk (dist_patch_DATA): Add both.
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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;
 |