On 2025-04-08 11:25, Nelson H. F. Beebe wrote:
Here is the output on NetBSD 10.0 for the test script for zdiff
behavior:
Thanks. I'm quoting it below. Apparently the equivalent of the following
crashed:
echo b >b
gzip b
gzip_status=$(gzip -cdfq -- b.gz)
whereas the same thing succeeded if one substitutes "a" for "b". I
suspect the problem isn't reproduced by the above commands, though, and
don't know how to debug this further, remotely.
% cat ~/foo.sh
#! /bin/sh -
echo a>a
echo b>b
./gzip a b
/usr/pkg/bin/bash -x ./zdiff a.gz b.gz
% cd /local/build/cc/gzip-1.13.56-e549
% ~/foo.sh
+ case $1 in
+ prog=diff
+ cmp='${DIFF-diff}'
+ version='zdiff (gzip) 1.13.56-e549
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License<https://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
Written by Jean-loup Gailly.'
+ usage='Usage: ./zdiff [OPTION]... FILE1 [FILE2]
Compare FILE1 to FILE2, using their uncompressed contents if they are
compressed. If FILE2 is omitted, compare FILE1 to the uncompressed
contents of FILE1.gz. Do comparisons like '\''diff'\'' does.
OPTIONs are the same as for '\''diff'\''.
Report bugs to<bug-gzip@gnu.org>.'
+ escape='
s/'\''/'\''\\'\'''\''/g
$s/X$/'\''/
'
+ filesonly=
+ file1=
+ file2=
+ needop=
+ for arg in "$@"
+ case $filesonly$needop$arg in
+ case $needop in
+ case $arg in
+ case $file1 in
+ file1=a.gz
+ for arg in "$@"
+ case $filesonly$needop$arg in
+ case $needop in
+ case $arg in
+ case $file1 in
+ case $file2 in
+ file2=b.gz
+ case $needop in
+ cmp='${DIFF-diff} --'
+ case $file1 in
+ case $file2 in
+ gzip_status=0
+ exec
+ case $file2 in
+ case $file1,$file2 in
+ case $file1 in
+ case $file2 in
+ echo X
+ eval '${DIFF-diff} --' /dev/fd/5 -
+ echo X
++ exec
++ gzip -cdfq -- a.gz
++ eval '${DIFF-diff} --' /dev/fd/5 -
++ gzip -cdfq -- b.gz
+++ diff -- /dev/fd/5 -
++ echo 0
++ echo 141
+ gzip_status='0
141'