git: 21c966a6b9f2 - main - Fix test output when gzip is run with -tlv

From: Tom Jones <thj_at_FreeBSD.org>
Date: Thu, 27 Jan 2022 17:20:59 UTC
The branch main has been updated by thj:

URL: https://cgit.FreeBSD.org/src/commit/?id=21c966a6b9f2e9110b8dc2a822ad2b4583f4f18b

commit 21c966a6b9f2e9110b8dc2a822ad2b4583f4f18b
Author:     Tom Jones <thj@FreeBSD.org>
AuthorDate: 2022-01-27 17:17:13 +0000
Commit:     Tom Jones <thj@FreeBSD.org>
CommitDate: 2022-01-27 17:20:23 +0000

    Fix test output when gzip is run with -tlv
    
    When run with test, verbose and list we need to parse the file otherwise
    the test output is "NOT OK" even for the file is valid.
    
    Reviewed by:    kevans, allanjude, imp
    Sponsored by:   Klara Inc.
    Differential Revision:  https://reviews.freebsd.org/D34046
---
 usr.bin/gzip/gzip.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/usr.bin/gzip/gzip.c b/usr.bin/gzip/gzip.c
index 5128e7ed43e0..f31f744b93f6 100644
--- a/usr.bin/gzip/gzip.c
+++ b/usr.bin/gzip/gzip.c
@@ -1655,10 +1655,13 @@ file_uncompress(char *file, char *outfile, size_t outsize)
 	case FT_XZ:
 		if (lflag) {
 			size = unxz_len(fd);
-			print_list_out(in_size, size, file);
-			return -1;
-		}
-		size = unxz(fd, zfd, NULL, 0, NULL);
+			if (!tflag) {
+				print_list_out(in_size, size, file);
+				close(fd);
+				return -1;
+			}
+		} else
+			size = unxz(fd, zfd, NULL, 0, NULL);
 		break;
 #endif
 
@@ -1683,8 +1686,10 @@ file_uncompress(char *file, char *outfile, size_t outsize)
 	default:
 		if (lflag) {
 			print_list(fd, in_size, outfile, isb.st_mtime);
-			close(fd);
-			return -1;	/* XXX */
+			if (!tflag) {
+				close(fd);
+				return -1;	/* XXX */
+			}
 		}
 
 		size = gz_uncompress(fd, zfd, NULL, 0, NULL, file);