Adding upstream version 1.10.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e316abdb9c
commit
4c3aebf1aa
29 changed files with 134 additions and 131 deletions
18
ChangeLog
18
ChangeLog
|
@ -1,12 +1,20 @@
|
|||
2021-01-05 Antonio Diaz Diaz <antonio@gnu.org>
|
||||
|
||||
* Version 1.10 released.
|
||||
* zdiff.cc (set_fifonames): Encode pid in little endian order.
|
||||
* zupdate.cc (zupdate_file): Fix a portability issue with Solaris 10.
|
||||
* zutils.texi: Document that 'zgrep -L' fails with GNU grep 3.2 to 3.4.
|
||||
* check.sh: Test empty input files with all tools except zupdate.
|
||||
|
||||
2020-06-27 Antonio Diaz Diaz <antonio@gnu.org>
|
||||
|
||||
* Version 1.9 released.
|
||||
* zcmp.cc zdiff.cc: Read standard input only if requested.
|
||||
* zcmp.cc, zdiff.cc: Read standard input only if requested.
|
||||
* zdiff.cc (main): Pass options '-W' and '-y' to diff.
|
||||
* zutils.cc (test_format): Detect bzip2 and lzip files better.
|
||||
* ztest.cc (main): Continue testing if any input file is a terminal.
|
||||
If verbosity >= 1, print number of files that failed the test.
|
||||
* zcat.cc zgrep.cc ztest.cc (main): Check return value of close( infd ).
|
||||
* zcat.cc, zgrep.cc, ztest.cc (main): Check return value of close(infd).
|
||||
* zutils.cc (good_status): Ignore trailing data remaining in feeder.
|
||||
* zupdate.cc (zupdate_file): Support new and old lzip option '-o'.
|
||||
Keep combined extensions: tgz, tbz, tbz2, txz --> tlz.
|
||||
|
@ -47,7 +55,7 @@
|
|||
|
||||
* Version 1.5 released.
|
||||
* zupdate.cc (zupdate_file): Pass '-q' to zcmp if verbosity < 0.
|
||||
* zcat.cc zgrep.cc ztest.cc (main): Don't use stdin more than once.
|
||||
* zcat.cc, zgrep.cc, ztest.cc (main): Don't use stdin more than once.
|
||||
* zdiff.cc (set_fifonames): Use '_' if both names are different.
|
||||
* configure: Avoid warning on some shells when testing for g++.
|
||||
* Makefile.in: Detect the existence of install-info.
|
||||
|
@ -92,7 +100,7 @@
|
|||
* main.cc (main): Make 'grep_show_name' tri-state so that file
|
||||
name is no prefixed to output by default when searching one
|
||||
file and '--recursive' has not been selected.
|
||||
* Zgrep: Fix output of option '-L' (it behaved like '-l').
|
||||
* zgrep.cc: Fix output of option '-L' (it behaved like '-l').
|
||||
* zcmp.cc: Fix deadlock when option '-n' is used.
|
||||
* zdiff.cc (set_data_feeder): Call compressor with option '-q'
|
||||
only if verbosity < 0.
|
||||
|
@ -172,7 +180,7 @@
|
|||
* Version 0.1 released.
|
||||
|
||||
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This file is a collection of facts, and thus it is not copyrightable,
|
||||
but just in case, you have unlimited permission to copy, distribute, and
|
||||
|
|
8
INSTALL
8
INSTALL
|
@ -5,6 +5,12 @@ I use gcc 6.1.0 and 4.1.2, but the code should compile with any standards
|
|||
compliant compiler.
|
||||
Gcc is available at http://gcc.gnu.org.
|
||||
|
||||
POSIX compliant versions of diff and grep are required for zdiff and zgrep.
|
||||
|
||||
(Option -L of zgrep fails (prints wrong results, returns wrong status, and
|
||||
even hangs) when using GNU grep versions 3.2 to 3.4 inclusive because of a
|
||||
wrong change in the exit status of grep, which was reverted in GNU grep 3.5).
|
||||
|
||||
Compressors for bzip2, gzip and lzip formats are required to run the tests.
|
||||
|
||||
If you are installing zutils along with GNU gzip and want to keep the
|
||||
|
@ -69,7 +75,7 @@ After running 'configure', you can run 'make' and 'make install' as
|
|||
explained above.
|
||||
|
||||
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This file is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
|
39
NEWS
39
NEWS
|
@ -1,36 +1,9 @@
|
|||
Changes in version 1.9:
|
||||
Changes in version 1.10:
|
||||
|
||||
zcmp anf zdiff now meet the POSIX requirement for cmp and diff that the
|
||||
standard input shall be used only if the file1 or file2 operand refers to
|
||||
standard input.
|
||||
A portability issue with Solaris 10 has been fixed.
|
||||
|
||||
zdiff now passes the options '-W' and '-y' to diff. (But it only works if
|
||||
the diff program used supports them).
|
||||
It has been documented in the manual that 'zgrep -L' fails with GNU grep
|
||||
versions 3.2 to 3.4 inclusive because of a wrong change reverted in GNU grep
|
||||
3.5.
|
||||
|
||||
Bzip2 and lzip files are now detected better.
|
||||
('echo LZIP | zcat' and 'echo BZh5 | zcat' no longer return an error).
|
||||
|
||||
ztest now continues checking the rest of the files if any input file is a
|
||||
terminal.
|
||||
|
||||
'ztest -v' now prints the number of files that failed the test (like lzip).
|
||||
|
||||
zcat, zgrep, and ztest now check for errors when closing the input file in
|
||||
addition to checking when closing the input from the decompressor.
|
||||
|
||||
Trailing data remaining in the data feeder to the decompressor are now
|
||||
correctly ignored.
|
||||
|
||||
zupdate has been modified to support the new behavior of lzip 1.22's option
|
||||
'-o' while retaining:
|
||||
perfect backwards compatibility with older versions of lzip down to 1.20,
|
||||
good backwards compatibility with older versions of lzip down to 1.11,
|
||||
acceptable backwards compatibility with older versions of lzip down to 1.4.
|
||||
|
||||
zupdate now keeps combined extensions: tgz, tbz, tbz2, txz --> tlz.
|
||||
This is useful when recompressing Slackware packages, for example.
|
||||
|
||||
zupdate now puts single quotes around file names when calling zcmp to allow
|
||||
file names with spaces. (But putting spaces in file names is a bad idea).
|
||||
|
||||
The descriptions of zcat, zcmp, and zdiff have been improved.
|
||||
'make check' now tests empty input files with all tools except zupdate.
|
||||
|
|
2
README
2
README
|
@ -37,7 +37,7 @@ been compressed. Decompressed is used to refer to data which have undergone
|
|||
the process of decompression.
|
||||
|
||||
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This file is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Arg_parser - POSIX/GNU command line argument parser. (C++ version)
|
||||
Copyright (C) 2006-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2006-2021 Antonio Diaz Diaz.
|
||||
|
||||
This library is free software. Redistribution and use in source and
|
||||
binary forms, with or without modification, are permitted provided
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Arg_parser - POSIX/GNU command line argument parser. (C++ version)
|
||||
Copyright (C) 2006-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2006-2021 Antonio Diaz Diaz.
|
||||
|
||||
This library is free software. Redistribution and use in source and
|
||||
binary forms, with or without modification, are permitted provided
|
||||
|
|
6
configure
vendored
6
configure
vendored
|
@ -1,12 +1,12 @@
|
|||
#! /bin/sh
|
||||
# configure script for Zutils - Utilities dealing with compressed files
|
||||
# Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
# Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
#
|
||||
# This configure script is free software: you have unlimited permission
|
||||
# to copy, distribute, and modify it.
|
||||
|
||||
pkgname=zutils
|
||||
pkgversion=1.9
|
||||
pkgversion=1.10
|
||||
srctrigger=doc/${pkgname}.texi
|
||||
|
||||
# clear some things potentially inherited from environment.
|
||||
|
@ -179,7 +179,7 @@ echo "GREP = ${GREP}"
|
|||
rm -f Makefile
|
||||
cat > Makefile << EOF
|
||||
# Makefile for Zutils - Utilities dealing with compressed files
|
||||
# Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
# Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
# This file was generated automatically by configure. Don't edit.
|
||||
#
|
||||
# This Makefile is free software: you have unlimited permission
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
|
||||
.TH ZCAT "1" "June 2020" "zcat (zutils) 1.9" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH ZCAT "1" "January 2021" "zutils 1.10" "User Commands"
|
||||
.SH NAME
|
||||
zcat \- decompress and concatenate files to standard output
|
||||
.SH SYNOPSIS
|
||||
|
@ -96,7 +96,7 @@ Report bugs to zutils\-bug@nongnu.org
|
|||
.br
|
||||
Zutils home page: http://www.nongnu.org/zutils/zutils.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 Antonio Diaz Diaz.
|
||||
Copyright \(co 2021 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
|
||||
.TH ZCMP "1" "June 2020" "zcmp (zutils) 1.9" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH ZCMP "1" "January 2021" "zutils 1.10" "User Commands"
|
||||
.SH NAME
|
||||
zcmp \- decompress and compare two files byte by byte
|
||||
.SH SYNOPSIS
|
||||
|
@ -83,7 +83,7 @@ Report bugs to zutils\-bug@nongnu.org
|
|||
.br
|
||||
Zutils home page: http://www.nongnu.org/zutils/zutils.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 Antonio Diaz Diaz.
|
||||
Copyright \(co 2021 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
|
||||
.TH ZDIFF "1" "June 2020" "zdiff (zutils) 1.9" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH ZDIFF "1" "January 2021" "zutils 1.10" "User Commands"
|
||||
.SH NAME
|
||||
zdiff \- decompress and compare two files line by line
|
||||
.SH SYNOPSIS
|
||||
|
@ -114,7 +114,7 @@ Report bugs to zutils\-bug@nongnu.org
|
|||
.br
|
||||
Zutils home page: http://www.nongnu.org/zutils/zutils.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 Antonio Diaz Diaz.
|
||||
Copyright \(co 2021 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
|
||||
.TH ZGREP "1" "June 2020" "zgrep (zutils) 1.9" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH ZGREP "1" "January 2021" "zutils 1.10" "User Commands"
|
||||
.SH NAME
|
||||
zgrep \- search compressed files for a regular expression
|
||||
.SH SYNOPSIS
|
||||
|
@ -146,7 +146,7 @@ Report bugs to zutils\-bug@nongnu.org
|
|||
.br
|
||||
Zutils home page: http://www.nongnu.org/zutils/zutils.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 Antonio Diaz Diaz.
|
||||
Copyright \(co 2021 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
|
||||
.TH ZTEST "1" "June 2020" "ztest (zutils) 1.9" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH ZTEST "1" "January 2021" "zutils 1.10" "User Commands"
|
||||
.SH NAME
|
||||
ztest \- verify the integrity of compressed files
|
||||
.SH SYNOPSIS
|
||||
|
@ -75,7 +75,7 @@ Report bugs to zutils\-bug@nongnu.org
|
|||
.br
|
||||
Zutils home page: http://www.nongnu.org/zutils/zutils.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 Antonio Diaz Diaz.
|
||||
Copyright \(co 2021 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
|
||||
.TH ZUPDATE "1" "June 2020" "zupdate (zutils) 1.9" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH ZUPDATE "1" "January 2021" "zutils 1.10" "User Commands"
|
||||
.SH NAME
|
||||
zupdate \- recompress bzip2, gzip, xz files to lzip format
|
||||
.SH SYNOPSIS
|
||||
|
@ -25,8 +25,8 @@ to be safe and not cause any data loss. Therefore, existing lzip
|
|||
compressed files are never overwritten nor deleted.
|
||||
.PP
|
||||
The names of the original files must have one of the following extensions:
|
||||
\&'.bz2', '.gz', and '.xz' are recompressed to '.lz'.
|
||||
\&'.tbz', '.tbz2', '.tgz', and '.txz' are recompressed to '.tlz'.
|
||||
\&'.bz2', '.gz', or '.xz', which are recompressed to '.lz';
|
||||
\&'.tbz', '.tbz2', '.tgz', or '.txz', which are recompressed to '.tlz'.
|
||||
.PP
|
||||
Exit status is 0 if all the compressed files were successfully recompressed
|
||||
(if needed), compared, and deleted (if requested). Non\-zero otherwise.
|
||||
|
@ -84,7 +84,7 @@ Report bugs to zutils\-bug@nongnu.org
|
|||
.br
|
||||
Zutils home page: http://www.nongnu.org/zutils/zutils.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2020 Antonio Diaz Diaz.
|
||||
Copyright \(co 2021 Antonio Diaz Diaz.
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -11,7 +11,7 @@ File: zutils.info, Node: Top, Next: Introduction, Up: (dir)
|
|||
Zutils Manual
|
||||
*************
|
||||
|
||||
This manual is for Zutils (version 1.9, 27 June 2020).
|
||||
This manual is for Zutils (version 1.10, 5 January 2021).
|
||||
|
||||
* Menu:
|
||||
|
||||
|
@ -28,7 +28,7 @@ This manual is for Zutils (version 1.9, 27 June 2020).
|
|||
* Concept index:: Index of concepts
|
||||
|
||||
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
@ -162,16 +162,15 @@ here. *Note Argument syntax: (arg_parser)Argument syntax.
|
|||
|
||||
File: zutils.info, Node: The zutilsrc file, Next: Zcat, Prev: Common options, Up: Top
|
||||
|
||||
3 The zutilsrc file
|
||||
*******************
|
||||
3 The zutils configuration file 'zutilsrc'
|
||||
******************************************
|
||||
|
||||
'zutilsrc' is the runtime configuration file for zutils. In it you may
|
||||
define the compressor name and options to be used for each format. The
|
||||
'zutilsrc' file is optional; you don't need to install it in order to run
|
||||
zutils.
|
||||
define the compressor name and options to be used for each format.
|
||||
'zutilsrc' is optional; you don't need to install it in order to run zutils.
|
||||
|
||||
The compressors specified in the command line override those specified
|
||||
in the 'zutilsrc' file.
|
||||
in 'zutilsrc'.
|
||||
|
||||
You may copy the system 'zutilsrc' file '${sysconfdir}/zutilsrc' to
|
||||
'$HOME/.zutilsrc' and customize these options as you like. The file syntax
|
||||
|
@ -557,6 +556,10 @@ program used supports them):
|
|||
'-L'
|
||||
'--files-without-match'
|
||||
Only print names of files not containing any matches.
|
||||
Note: option -L fails (prints wrong results, returns wrong status, and
|
||||
even hangs) when using GNU grep versions 3.2 to 3.4 inclusive because
|
||||
of a wrong change in the exit status of grep, which was reverted in
|
||||
GNU grep 3.5.
|
||||
|
||||
'-m N'
|
||||
'--max-count=N'
|
||||
|
@ -709,8 +712,8 @@ pair of files in a multiformat set of files.
|
|||
|
||||
The names of the original files must have one of the following
|
||||
extensions:
|
||||
'.bz2', '.gz', and '.xz' are recompressed to '.lz'.
|
||||
'.tbz', '.tbz2', '.tgz', and '.txz' are recompressed to '.tlz'.
|
||||
'.bz2', '.gz', or '.xz', which are recompressed to '.lz';
|
||||
'.tbz', '.tbz2', '.tgz', or '.txz', which are recompressed to '.tlz'.
|
||||
Keeping the combined extensions ('.tgz' -> '.tlz') may be useful when
|
||||
recompressing Slackware packages, for example.
|
||||
|
||||
|
@ -802,30 +805,30 @@ Concept index
|
|||
* common options: Common options. (line 6)
|
||||
* getting help: Problems. (line 6)
|
||||
* introduction: Introduction. (line 6)
|
||||
* the zutilsrc file: The zutilsrc file. (line 6)
|
||||
* zcat: Zcat. (line 6)
|
||||
* zcmp: Zcmp. (line 6)
|
||||
* zdiff: Zdiff. (line 6)
|
||||
* zgrep: Zgrep. (line 6)
|
||||
* ztest: Ztest. (line 6)
|
||||
* zupdate: Zupdate. (line 6)
|
||||
* zutilsrc: The zutilsrc file. (line 6)
|
||||
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top222
|
||||
Node: Introduction1148
|
||||
Node: Common options3773
|
||||
Ref: compressor-requirements5844
|
||||
Node: The zutilsrc file6216
|
||||
Node: Zcat7149
|
||||
Node: Zcmp9712
|
||||
Node: Zdiff12202
|
||||
Node: Zgrep14942
|
||||
Node: Ztest18944
|
||||
Node: Zupdate21451
|
||||
Node: Problems25123
|
||||
Node: Concept index25657
|
||||
Node: Introduction1151
|
||||
Node: Common options3776
|
||||
Ref: compressor-requirements5847
|
||||
Node: The zutilsrc file6219
|
||||
Node: Zcat7180
|
||||
Node: Zcmp9743
|
||||
Node: Zdiff12233
|
||||
Node: Zgrep14973
|
||||
Node: Ztest19218
|
||||
Node: Zupdate21725
|
||||
Node: Problems25409
|
||||
Node: Concept index25943
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
@finalout
|
||||
@c %**end of header
|
||||
|
||||
@set UPDATED 27 June 2020
|
||||
@set VERSION 1.9
|
||||
@set UPDATED 5 January 2021
|
||||
@set VERSION 1.10
|
||||
|
||||
@dircategory Data Compression
|
||||
@direntry
|
||||
|
@ -29,6 +29,7 @@
|
|||
@contents
|
||||
@end ifnothtml
|
||||
|
||||
@ifnottex
|
||||
@node Top
|
||||
@top
|
||||
|
||||
|
@ -49,10 +50,11 @@ This manual is for Zutils (version @value{VERSION}, @value{UPDATED}).
|
|||
@end menu
|
||||
|
||||
@sp 1
|
||||
Copyright @copyright{} 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright @copyright{} 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
@end ifnottex
|
||||
|
||||
|
||||
@node Introduction
|
||||
|
@ -194,21 +196,20 @@ It must return 0 if no errors occurred, and a non-zero value otherwise.
|
|||
|
||||
|
||||
@node The zutilsrc file
|
||||
@chapter The zutilsrc file
|
||||
@cindex the zutilsrc file
|
||||
@chapter The zutils configuration file 'zutilsrc'
|
||||
@cindex zutilsrc
|
||||
|
||||
@file{zutilsrc} is the runtime configuration file for zutils. In it you
|
||||
may define the compressor name and options to be used for each format.
|
||||
The @file{zutilsrc} file is optional; you don't need to install it in
|
||||
order to run zutils.
|
||||
@file{zutilsrc} is optional; you don't need to install it in order to run
|
||||
zutils.
|
||||
|
||||
The compressors specified in the command line override those specified
|
||||
in the @file{zutilsrc} file.
|
||||
in @file{zutilsrc}.
|
||||
|
||||
You may copy the system @file{zutilsrc} file
|
||||
@file{$@{sysconfdir@}/zutilsrc} to @file{$HOME/.zutilsrc} and customize
|
||||
these options as you like. The file syntax is fairly obvious (and there
|
||||
are further instructions in it):
|
||||
You may copy the system @file{zutilsrc} file @file{$@{sysconfdir@}/zutilsrc}
|
||||
to @file{$HOME/.zutilsrc} and customize these options as you like. The file
|
||||
syntax is fairly obvious (and there are further instructions in it):
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
|
@ -623,7 +624,10 @@ Only print names of files containing at least one match.
|
|||
|
||||
@item -L
|
||||
@itemx --files-without-match
|
||||
Only print names of files not containing any matches.
|
||||
Only print names of files not containing any matches.@*
|
||||
Note: option -L fails (prints wrong results, returns wrong status, and even
|
||||
hangs) when using GNU grep versions 3.2 to 3.4 inclusive because of a wrong
|
||||
change in the exit status of grep, which was reverted in GNU grep 3.5.
|
||||
|
||||
@item -m @var{n}
|
||||
@itemx --max-count=@var{n}
|
||||
|
@ -783,9 +787,10 @@ Combining the options @samp{--force} and @samp{--keep}, as in
|
|||
between each pair of files in a multiformat set of files.
|
||||
|
||||
The names of the original files must have one of the following extensions:@*
|
||||
@samp{.bz2}, @samp{.gz}, and @samp{.xz} are recompressed to @samp{.lz}.@*
|
||||
@samp{.tbz}, @samp{.tbz2}, @samp{.tgz}, and @samp{.txz} are recompressed to
|
||||
@samp{.tlz}.@*
|
||||
@samp{.bz2}, @samp{.gz}, or @samp{.xz}, which are recompressed to
|
||||
@samp{.lz};@*
|
||||
@samp{.tbz}, @samp{.tbz2}, @samp{.tgz}, or @samp{.txz}, which are
|
||||
recompressed to @samp{.tlz}.@*
|
||||
Keeping the combined extensions (@samp{.tgz} --> @samp{.tlz}) may be useful
|
||||
when recompressing Slackware packages, for example.
|
||||
|
||||
|
|
4
rc.cc
4
rc.cc
|
@ -1,5 +1,5 @@
|
|||
/* Zutils - Utilities dealing with compressed files
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -37,7 +37,7 @@ int verbosity = 0;
|
|||
namespace {
|
||||
|
||||
const char * const config_file_name = "zutilsrc";
|
||||
const char * const program_year = "2020";
|
||||
const char * const program_year = "2021";
|
||||
|
||||
std::string compressor_names[num_formats] =
|
||||
{ "bzip2", "gzip", "lzip", "xz" }; // default compressor names
|
||||
|
|
2
rc.h
2
rc.h
|
@ -1,5 +1,5 @@
|
|||
/* Zutils - Utilities dealing with compressed files
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Zutils - Utilities dealing with compressed files
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# check script for Zutils - Utilities dealing with compressed files
|
||||
# Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
# Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
#
|
||||
# This script is free software: you have unlimited permission
|
||||
# to copy, distribute, and modify it.
|
||||
|
@ -56,6 +56,7 @@ cat in in in in in in > in6 || framework_failure
|
|||
bad0_lz="${testdir}"/zero_bad_crc.lz
|
||||
bad0_gz="${testdir}"/zero_bad_crc.gz
|
||||
bad1_lz="${testdir}"/test_bad_crc.lz
|
||||
touch empty empty.bz2 empty.gz empty.lz
|
||||
fail=0
|
||||
test_failed() { fail=1 ; printf " $1" ; [ -z "$2" ] || printf "($2)" ; }
|
||||
|
||||
|
@ -64,6 +65,8 @@ printf "testing zcat-%s..." "$2"
|
|||
for i in ${extensions}; do
|
||||
"${ZCAT}" -N in.$i > copy || test_failed $LINENO $i
|
||||
cmp in copy || test_failed $LINENO $i
|
||||
"${ZCAT}" -N empty.$i in.$i > copy || test_failed $LINENO $i
|
||||
cmp in copy || test_failed $LINENO $i
|
||||
"${ZCAT}" -N --format=un in.$i > copy || test_failed $LINENO $i
|
||||
cmp in copy || test_failed $LINENO $i
|
||||
"${ZCAT}" -N --force-format=$i in.$i > copy || test_failed $LINENO $i
|
||||
|
@ -145,6 +148,7 @@ for i in ${extensions}; do
|
|||
"${ZCMP}" -N in.$i in --force-format=$i || test_failed $LINENO $i
|
||||
"${ZCMP}" -N -i 1kB:1000 -n 500 in6 in.$i || test_failed $LINENO $i
|
||||
"${ZCMP}" -N -i 1KiB:1024 -n 50 in.$i in6 || test_failed $LINENO $i
|
||||
"${ZCMP}" -N empty empty.$i || test_failed $LINENO $i
|
||||
done
|
||||
|
||||
"${ZCMP}" -Nq in in6
|
||||
|
@ -216,6 +220,7 @@ for i in ${extensions}; do
|
|||
"${ZDIFF}" -N in.$i in > /dev/null || test_failed $LINENO $i
|
||||
"${ZDIFF}" -N in.$i in --force-format=$i, > /dev/null ||
|
||||
test_failed $LINENO $i
|
||||
"${ZDIFF}" -N empty empty.$i > /dev/null || test_failed $LINENO $i
|
||||
done
|
||||
|
||||
"${ZDIFF}" -N in in6 > /dev/null
|
||||
|
@ -293,6 +298,7 @@ for i in ${extensions}; do
|
|||
test_failed $LINENO $i
|
||||
"${ZGREP}" -N --force-format=$i "GNU" in 2> /dev/null
|
||||
[ $? = 2 ] || test_failed $LINENO $i
|
||||
"${ZGREP}" -N "nx_pattern" empty.$i && test_failed $LINENO $i
|
||||
done
|
||||
|
||||
"${ZGREP}" -N pin.tar -e "GNU" > /dev/null || test_failed $LINENO
|
||||
|
@ -358,6 +364,7 @@ done
|
|||
"${ZTEST}" -N -r || test_failed $LINENO
|
||||
"${ZTEST}" -N -R . || test_failed $LINENO
|
||||
"${ZTEST}" -N -R || test_failed $LINENO
|
||||
"${ZTEST}" -N empty empty.bz2 empty.gz empty.lz || test_failed $LINENO
|
||||
|
||||
"${ZTEST}" -Nq in.gz "${bad0_lz}" in.bz2 "${bad1_lz}" in.lz
|
||||
[ $? = 2 ] || test_failed $LINENO
|
||||
|
@ -532,6 +539,7 @@ rm -f tmp3/a.lz || framework_failure
|
|||
cd .. || framework_failure
|
||||
rm -r tmp2 || framework_failure
|
||||
|
||||
rm -f empty empty.bz2 empty.gz empty.lz || framework_failure
|
||||
if ln -s '.' slink 2> /dev/null ; then
|
||||
"${ZCAT}" -N -r slink > /dev/null || test_failed $LINENO
|
||||
"${ZGREP}" -N -r "GNU" slink > /dev/null || test_failed $LINENO
|
||||
|
|
4
zcat.cc
4
zcat.cc
|
@ -1,5 +1,5 @@
|
|||
/* Zcat - decompress and concatenate files to standard output
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -75,7 +75,7 @@ public:
|
|||
str[i] = '0';
|
||||
}
|
||||
if( first_digit_pos > 0 ) str[--first_digit_pos] = '1';
|
||||
else str.insert( first_digit_pos, 1, '1' );
|
||||
else str.insert( str.begin() + first_digit_pos, '1' );
|
||||
}
|
||||
|
||||
int sprint( uint8_t * const buf )
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Common code for zcat and zgrep
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
2
zcmp.cc
2
zcmp.cc
|
@ -1,5 +1,5 @@
|
|||
/* Zcmp - decompress and compare two files byte by byte
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Common code for zcmp and zdiff
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
16
zdiff.cc
16
zdiff.cc
|
@ -1,5 +1,5 @@
|
|||
/* Zdiff - decompress and compare two files line by line
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -116,7 +116,8 @@ extern "C" void remove_fifos()
|
|||
|
||||
|
||||
/* Set fifonames[i] to "${TMPDIR}/<coded_pid>[_-]<basename(filenames[i])>"
|
||||
and create FIFOs. */
|
||||
and create FIFOs. The pid is coded in little endian order.
|
||||
*/
|
||||
bool set_fifonames( const std::string filenames[2] )
|
||||
{
|
||||
enum { num_codes = 36 };
|
||||
|
@ -126,13 +127,12 @@ bool set_fifonames( const std::string filenames[2] )
|
|||
if( p ) { fifonames[0] = p; fifonames[0] += '/'; }
|
||||
else fifonames[0] = "/tmp/";
|
||||
int n = getpid();
|
||||
unsigned pos = fifonames[0].size();
|
||||
do fifonames[0].insert( pos, 1, codes[n % num_codes] );
|
||||
while( n /= num_codes );
|
||||
pos = fifonames[0].size();
|
||||
do fifonames[0] += codes[n % num_codes]; while( n /= num_codes );
|
||||
const unsigned pos = fifonames[0].size();
|
||||
fifonames[0] += '_';
|
||||
fifonames[1] = fifonames[0];
|
||||
fifonames[0] += '_'; fifonames[0] += my_basename( filenames[0].c_str() );
|
||||
fifonames[1] += '_'; fifonames[1] += my_basename( filenames[1].c_str() );
|
||||
fifonames[0] += my_basename( filenames[0].c_str() );
|
||||
fifonames[1] += my_basename( filenames[1].c_str() );
|
||||
if( fifonames[1] == fifonames[0] ) fifonames[1][pos] = '-';
|
||||
|
||||
for( int i = 0; i < 2; ++i )
|
||||
|
|
4
zgrep.cc
4
zgrep.cc
|
@ -1,5 +1,5 @@
|
|||
/* Zgrep - search compressed files for a regular expression
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -195,7 +195,7 @@ int zgrep_file( int infd, const int format_index,
|
|||
{ std::fflush( stdout ); show_error( "Write error", errno ); return 2; }
|
||||
std::fflush( stdout );
|
||||
}
|
||||
if( size < buffer_size ) break;
|
||||
if( size < buffer_size ) break; // end of grep's output
|
||||
}
|
||||
|
||||
int retval = wait_for_child( grep_pid, GREP );
|
||||
|
|
2
ztest.cc
2
ztest.cc
|
@ -1,5 +1,5 @@
|
|||
/* Ztest - verify the integrity of compressed files
|
||||
Copyright (C) 2010-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Zupdate - recompress bzip2, gzip, xz files to lzip format
|
||||
Copyright (C) 2013-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2013-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -67,8 +67,8 @@ void show_help()
|
|||
"to be safe and not cause any data loss. Therefore, existing lzip\n"
|
||||
"compressed files are never overwritten nor deleted.\n"
|
||||
"\nThe names of the original files must have one of the following extensions:\n"
|
||||
"'.bz2', '.gz', and '.xz' are recompressed to '.lz'.\n"
|
||||
"'.tbz', '.tbz2', '.tgz', and '.txz' are recompressed to '.tlz'.\n"
|
||||
"'.bz2', '.gz', or '.xz', which are recompressed to '.lz';\n"
|
||||
"'.tbz', '.tbz2', '.tgz', or '.txz', which are recompressed to '.tlz'.\n"
|
||||
"\nUsage: zupdate [options] [files]\n"
|
||||
"\nExit status is 0 if all the compressed files were successfully recompressed\n"
|
||||
"(if needed), compared, and deleted (if requested). Non-zero otherwise.\n"
|
||||
|
@ -280,7 +280,7 @@ int zupdate_file( const std::string & name, const char * const lzip_name,
|
|||
std::string zcmp_command( invocation_name );
|
||||
unsigned i = zcmp_command.size();
|
||||
while( i > 0 && zcmp_command[i-1] != '/' ) --i;
|
||||
zcmp_command.resize( i ); zcmp_command.insert( 0U, 1, '\'' );
|
||||
zcmp_command.resize( i ); zcmp_command.insert( zcmp_command.begin(), '\'' );
|
||||
zcmp_command += "zcmp' "; // '[dir/]zcmp'
|
||||
if( no_rcfile ) zcmp_command += "-N ";
|
||||
if( verbosity < 0 ) zcmp_command += "-q ";
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Zutils - Utilities dealing with compressed files
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
2
zutils.h
2
zutils.h
|
@ -1,5 +1,5 @@
|
|||
/* Zutils - Utilities dealing with compressed files
|
||||
Copyright (C) 2009-2020 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009-2021 Antonio Diaz Diaz.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
Loading…
Add table
Reference in a new issue