Package: unzip
Version: 6.0-28
Severity: minor
Tags: patch

Dear Maintainer,

   * What led up to the situation?

     Checking for defects with

[test-][g|n]roff -mandoc -t -K utf8 -ww -b -z <man page>

  [test-groff is a script in the repository for "groff"]

   * What was the outcome of this action?

troff: backtrace: file '<stdin>':992
troff:<stdin>:992: warning: tab character in unquoted macro argument


   * What outcome did you expect instead?

     No output (warnings).

-.-

  Remarks and a patch are in the attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.7.12-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages unzip depends on:
ii  libbz2-1.0  1.0.8-5.1
ii  libc6       2.38-11

unzip recommends no packages.

Versions of packages unzip suggests:
ii  zip  3.0-13

-- no debconf information
  Any program (person), that produces man pages, should check its content for
defects by using

groff -mandoc -t -ww -b -z [ -K utf8 | k ] <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  So any generator should check its products with the above mentioned
'groff' and additionally with 'nroff ...'.

  This is just a simple quality control measure.

  The generator may have to be corrected to get a better man page,
the source file may, and any additional file may.

-.-

The difference between the formatted outputs can be seen with:

  nroff -man <file1> > <out1>
  nroff -man <file2> > <out2>
  diff -u <out1> <out2>

and for groff, using

"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -man -Z - "

instead of "nroff -man"

  Add the option "-t", if the file contains a table.

  Read the output of "diff -u" with "less -R" or similar.

-.-.

  If "man" (man-db) is used to check the manual for warnings,
the following must be set:

  The option "-warnings=w"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT="-ww -z"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-.

Change '-' (\-) to '\(en' (en-dash) for a numeric range.
GNU gnulib has recently (2023-06-18) updated its
"build_aux/update-copyright" to recognize "\(en" in man pages.

unzip.1:871:other errors, where the `?' is 2 (error) for \fIunzip\fP values 2, 
9-11 and
unzip.1:872:80-82, and 4 (fatal error) for the remaining ones (3-8, 50, 51).  
In addition,

-.-.

Change two HYPHEN-MINUSES (code 0x2D) to an em-dash (\(em),
if one is intended.  An en-dash is usually surrounded by a space,
while an em-dash is used without spaces.
"man" (1 byte characters in input) transforms an en-dash (\(en) to one
HYPHEN-MINUS,
and an em-dash to two HYPHEN-MINUSES without considering the space
around it.
If "--" are two single "-" (end of options) then use "\-\-".

unzip.1:304:of directory timestamps, the negated option \fB\--D\fP should be 
specified.
unzip.1:479:Note that ordinary file attributes are always restored--this option 
applies
unzip.1:725:To extract all FORTRAN and C source files--*.f, *.c, *.h, and 
Makefile--into
unzip.1:750:zipfile created in another--ZIP archives other than those created 
by Zip 2.1

-.-.

Mark a full stop (.) and the exclamation mark (!) with "\&",
if it does not mean an end of a sentence.
This is a preventive action,
the paragraph could be reshaped, e.g., after changes.

When typing, one does not always notice when the line wraps after the
period.
There are too many examples of input lines in manual pages,
that end with an abbreviation point.

This marking is robust, and independent of the position on the line.

It corresponds to "\ " in TeX, and to "@:" in Texinfo.


30:[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.] [\fB\-d\fP\ \fIexdir\fP]
226:extracting Zip entries marked as "text". (On Tandem, \fB\-a\fP is enabled
234:record delimiters is disabled for binary (\fB\-b\fP) resp. all (\fB\-bb\fP)
351:file systems (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase 
names;
518:extraction target folder to root (e.g. \fB\-d / \fP).  However, when the
535:to handle such file names (e.g. when trying to specify it for open, copy,
663:(Latin-1 etc.) everywhere else; and Nico Mak's \fIWinZip\fP 6.x does not
905:under Unix. (On Windows NT and successors, timestamps are now restored.)

-.-.

Change -- in x--y to \(em (em-dash), or, if an
option, to \-\-

479:Note that ordinary file attributes are always restored--this option applies
725:To extract all FORTRAN and C source files--*.f, *.c, *.h, and Makefile--into
750:zipfile created in another--ZIP archives other than those created by Zip 2.1

-.-.

Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-),
if it
is in front of a name for an option,
is a symbol for standard input,
is a single character used to indicate an option,
or is in the NAME section (man-pages(7)).
N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen
(0x2010, groff \[u2010] or \[hy]) in the output.

83:example, ``\fCunzip foo *.[ch] -x */*\fR'' would extract all C source files
304:of directory timestamps, the negated option \fB\--D\fP should be specified.
466:For systems allowing `/' as regular filename character, the -W option
479:Note that ordinary file attributes are always restored--this option applies
491:     "a.b.3" -> "a.b;3".
691:unzip -j letters
698:unzip -tq letters
705:unzip -tq \e*.zip
725:To extract all FORTRAN and C source files--*.f, *.c, *.h, and Makefile--into
729:unzip source.zip "*.[fch]" Makefile -d /tmp
737:unzip \-C source.zip "*.[fch]" makefile -d /tmp
745:unzip \-aaCL source.zip "*.[fch]" makefile -d /tmp
750:zipfile created in another--ZIP archives other than those created by Zip 2.1
773:In the last five examples, assume that UNZIP or UNZIP_OPTS is set to -q.
932:(e.g., ``\fCunzip -o foo */\fR'').

-.-.

Add a comma (or \&) after "e.g." and "i.e.", or use English words
(man-pages(7)).
Abbreviation points should be protected against being interpreted as
an end of sentence, if they are not, and that independent of the
current place on the line.

518:extraction target folder to root (e.g. \fB\-d / \fP).  However, when the
535:to handle such file names (e.g. when trying to specify it for open, copy,

-.-.

Wrong distance between sentences.

  Separate the sentences and subordinate clauses; each begins on a new
line.  See man-pages(7) ("Conventions for source file layout") and
"info groff" ("Input Conventions").

  The best procedure is to always start a new sentence on a new line,
at least, if you are typing on a computer.

Remember coding: Only one command ("sentence") on each (logical) line.

E-mail: Easier to quote exactly the relevant lines.

Generally: Easier to edit the sentence.

Patches: Less unaffected text.

Search for two adjacent words is easier, when they belong to the same line,
and the same phrase.

  The amount of space between sentences in the output can then be
controlled with the ".ss" request.

N.B

  The number of lines affected can be too large to be in the patch.

226:extracting Zip entries marked as "text". (On Tandem, \fB\-a\fP is enabled
232:to be extracted in this format. When extracting to standard output
234:record delimiters is disabled for binary (\fB\-b\fP) resp. all (\fB\-bb\fP)
239:overwritten file. The backup file is gets the name of the target file with
243:option \fB\-o\fP, numbered backup files are never created. In this case,
325:[MacOS only] ignore filenames stored in MacOS extra fields. Instead, the
339:is skipped. Data-fork and resource-fork are restored as separate files.
351:file systems (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase 
names;
418:(Stream_LF is the default record format of VMS \fIunzip\fP. It is applied
502:variable. During extraction, filename extensions that match one of the items
508:locations outside of the current `` extraction root folder''. For security
518:extraction target folder to root (e.g. \fB\-d / \fP).  However, when the
535:to handle such file names (e.g. when trying to specify it for open, copy,
538:extracted file names. The \fB-^\fP option allows to override this filter
663:(Latin-1 etc.) everywhere else; and Nico Mak's \fIWinZip\fP 6.x does not
870:for warning errors, and (0x7fff000? + 16*normal_unzip_exit_status) for all
896:wrapping of long lines. However, the code may fail to detect the correct
897:wrapping locations. First, TAB characters (and similar control sequences) 
are
905:under Unix. (On Windows NT and successors, timestamps are now restored.)
967:Windows DLLs); Kai Uwe Rommel (OS/2, Win32); Steven M. Schweda (VMS, Unix,
982:is Samuel H. Smith; Carl Mascott did the first Unix port; and David P.

-.-.

Output from "test-groff -b -mandoc -dAD=l -rF0 -rHY=0 -K utf8 -t -ww -z -K 
utf8":

troff: backtrace: file '<stdin>':992
troff:<stdin>:992: warning: tab character in unquoted macro argument

[this is a false warning, '\t' is used to calculate width]
--- unzip.1     2024-06-01 12:48:41.087696663 +0000
+++ unzip.1.new 2024-06-01 13:55:27.296463220 +0000
@@ -27,7 +27,7 @@ unzip \- list, test and extract compress
 .SH SYNOPSIS
 \fBunzip\fP [\fB\-Z\fP] [\fB\-cflptTuvz\fP[\fBabjnoqsCDKLMUVWX$/:^\fP]]
 \fIfile\fP[\fI.zip\fP] [\fIfile(s)\fP\ .\|.\|.]
-[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.] [\fB\-d\fP\ \fIexdir\fP]
+[\fB\-x\fP\ \fIxfile(s)\fP\ .\|.\|.\&] [\fB\-d\fP\ \fIexdir\fP]
 .PD
 .\" =========================================================================
 .SH DESCRIPTION
@@ -80,7 +80,7 @@ An optional list of archive members to b
 Since wildcard characters normally match (`/') directory separators
 (for exceptions see the option \fB\-W\fP), this option may be used
 to exclude any files that are in subdirectories.  For
-example, ``\fCunzip foo *.[ch] -x */*\fR'' would extract all C source files
+example, ``\fCunzip foo *.[ch] \-x */*\fR'' would extract all C source files
 in the main directory, but none in any subdirectories.  Without the \fB\-x\fP
 option, all C source files in all directories within the zipfile would be
 extracted.
@@ -223,15 +223,15 @@ for \fB\-\-\-a\fP.
 .TP
 .B \-b
 [Tandem] force the creation files with filecode type 180 ('C') when
-extracting Zip entries marked as "text". (On Tandem, \fB\-a\fP is enabled
-by default, see above).
+extracting Zip entries marked as "text".
+(On Tandem, \fB\-a\fP is enabled by default, see above).
 .TP
 .B \-b
 [VMS] auto-convert binary files (see \fB\-a\fP above) to fixed-length,
 512-byte record format.  Doubling the option (\fB\-bb\fP) forces all files
 to be extracted in this format. When extracting to standard output
 (\fB\-c\fP or \fB\-p\fP option in effect), the default conversion of text
-record delimiters is disabled for binary (\fB\-b\fP) resp. all (\fB\-bb\fP)
+record delimiters is disabled for binary (\fB\-b\fP) resp.\& all (\fB\-bb\fP)
 files.
 .TP
 .B \-B
@@ -248,7 +248,7 @@ in many locations.
 .IP
 Example: the old copy of ``\fCfoo\fR'' is renamed to ``\fCfoo~\fR''.
 .IP
-Warning: Users should be aware that the \fB-B\fP option does not prevent
+Warning: Users should be aware that the \fB\-B\fP option does not prevent
 loss of existing data under all circumstances.  For example, when
 \fIunzip\fP is run in overwrite-all mode, an existing ``\fCfoo~\fR'' file
 is deleted before \fIunzip\fP attempts to rename ``\fCfoo\fR'' to
@@ -301,7 +301,7 @@ setting the timestamps for all extracted
 On VMS, the default setting for this option is \fB\-D\fP for consistency
 with the behaviour of BACKUP: file timestamps are restored, timestamps of
 extracted directories are left at the current time.  To enable restoration
-of directory timestamps, the negated option \fB\--D\fP should be specified.
+of directory timestamps, the negated option \fB\-\-D\fP should be specified.
 On VMS, the option \fB\-D\fP disables timestamp restoration for all extracted
 Zip archive items.  (Here, a single \fB\-D\fP on the command line combines
 with the default \fB\-D\fP to do what an explicit \fB\-DD\fP does on other
@@ -348,7 +348,7 @@ system or file system.  (This was \fIunz
 prior to 5.11; the new default behavior is identical to the old behavior with
 the \fB\-U\fP option, which is now obsolete and will be removed in a future
 release.)  Depending on the archiver, files archived under single-case
-file systems (VMS, old MS-DOS FAT, etc.) may be stored as all-uppercase names;
+file systems (VMS, old MS-DOS FAT, etc.\&) may be stored as all-uppercase 
names;
 this can be ugly or inconvenient when extracting to a case-preserving
 file system such as OS/2 HPFS or a case-sensitive one such as under
 Unix.  By default \fIunzip\fP lists and extracts such filenames exactly as
@@ -447,7 +447,7 @@ modifies the pattern matching routine so
 and `*' (multi-char wildcard) do not match the directory separator character
 `/'.  (The two-character sequence ``**'' acts as a multi-char wildcard that
 includes the directory separator in its matched characters.)  Examples:
-.PP
+.sp
 .EX
     "*.c" matches "foo.c" but not "mydir/foo.c"
     "**.c" matches both "foo.c" and "mydir/foo.c"
@@ -463,7 +463,7 @@ where the Zip archive's internal directo
 allowed as regular character in native operating system filenames.
 (Currently, UnZip uses the same pattern matching rules for both wildcard
 zipfile specifications and zip entry selection patterns in most ports.
-For systems allowing `/' as regular filename character, the -W option
+For systems allowing `/' as regular filename character, the \-W option
 would not work as expected on a wildcard zipfile specification.)
 .TP
 .B \-X
@@ -476,7 +476,7 @@ require special system privileges, and d
 under NT instructs \fIunzip\fP to use privileges for extraction; but under
 Unix, for example, a user who belongs to several groups can restore files
 owned by any of those groups, as long as the user IDs match his or her own.
-Note that ordinary file attributes are always restored--this option applies
+Note that ordinary file attributes are always restored\(emthis option applies
 only to optional, extra ownership info available on some operating systems.
 [NT's access control lists do not appear to be especially compatible with
 OS/2's, so no attempt is made at cross-platform portability of access
@@ -488,7 +488,7 @@ useful anyway.]
 decimal  number) as if they were VMS version numbers (``;nnn'').
 (The default is to treat them as file types.)  Example:
 .EX
-     "a.b.3" -> "a.b;3".
+     "a.b.3" \-> "a.b;3".
 .EE
 .TP
 .B \-$
@@ -515,7 +515,7 @@ behaviour, to allow exact extraction of
 components to create multiple directory trees at the level of the current
 extraction folder.  This option does not enable writing explicitly to the
 root directory (``/'').  To achieve this, it is necessary to set the
-extraction target folder to root (e.g. \fB\-d / \fP).  However, when the
+extraction target folder to root (e.g.\& \fB\-d / \fP).  However, when the
 \fB\-:\fP option is specified, it is still possible to implicitly write to
 the root directory by specifying enough ``../'' path components within the
 zip archive.
@@ -532,10 +532,10 @@ on 'native' Unix file systems.  However,
 make use of this Unix "feature".  Embedded control characters in file names
 might have nasty side effects when displayed on screen by some listing code
 without sufficient filtering.  And, for ordinary users, it may be difficult
-to handle such file names (e.g. when trying to specify it for open, copy,
+to handle such file names (e.g., when trying to specify it for open, copy,
 move, or delete operations).  Therefore, \fIunzip\fP applies a filter by
 default that removes potentially dangerous control characters from the
-extracted file names. The \fB-^\fP option allows to override this filter
+extracted file names. The \fB\-^\fP option allows to override this filter
 in the rare case that embedded filename control characters are to be
 intentionally restored.
 .TP
@@ -660,7 +660,7 @@ such characters, including Latin-1 (ISO
 DOS \fIPKZIP\fP 2.04g uses the OEM code page; Windows \fIPKZIP\fP 2.50
 uses Latin-1 (and is therefore incompatible with DOS \fIPKZIP\fP); Info-ZIP
 uses the OEM code page on DOS, OS/2 and Win3.x ports but ISO coding
-(Latin-1 etc.) everywhere else; and Nico Mak's \fIWinZip\fP 6.x does not
+(Latin-1 etc.\&) everywhere else; and Nico Mak's \fIWinZip\fP 6.x does not
 allow 8-bit passwords at all.  \fIUnZip\fP 5.3 (or newer) attempts to use
 the default character set first (e.g., Latin-1), followed by the alternate
 one (e.g., OEM code page) to test passwords.  On EBCDIC systems, if both
@@ -688,21 +688,21 @@ unzip letters
 To extract all members of \fIletters.zip\fP into the current directory only:
 .PP
 .EX
-unzip -j letters
+unzip \-j letters
 .EE
 .PP
 To test \fIletters.zip\fP, printing only a summary message indicating
 whether the archive is OK or not:
 .PP
 .EX
-unzip -tq letters
+unzip \-tq letters
 .EE
 .PP
 To test \fIall\fP zipfiles in the current directory, printing only the
 summaries:
 .PP
 .EX
-unzip -tq \e*.zip
+unzip \-tq \e*.zip
 .EE
 .PP
 (The backslash before the asterisk is only required if the shell expands
@@ -722,11 +722,11 @@ to a printing program:
 unzip \-p articles paper1.dvi | dvips
 .EE
 .PP
-To extract all FORTRAN and C source files--*.f, *.c, *.h, and Makefile--into
+To extract all FORTRAN and C source files\(em*.f, *.c, *.h, and 
Makefile\(eminto
 the /tmp directory:
 .PP
 .EX
-unzip source.zip "*.[fch]" Makefile -d /tmp
+unzip source.zip "*.[fch]" Makefile \-d /tmp
 .EE
 .PP
 (the double quotes are necessary only in Unix and only if globbing is turned
@@ -734,7 +734,7 @@ on).  To extract all FORTRAN and C sourc
 both *.c and *.C, and any makefile, Makefile, MAKEFILE or similar):
 .PP
 .EX
-unzip \-C source.zip "*.[fch]" makefile -d /tmp
+unzip \-C source.zip "*.[fch]" makefile \-d /tmp
 .EE
 .PP
 To extract any such files but convert any uppercase MS-DOS or VMS names to
@@ -742,12 +742,12 @@ lowercase and convert the line-endings o
 standard (without respect to any files that might be marked ``binary''):
 .PP
 .EX
-unzip \-aaCL source.zip "*.[fch]" makefile -d /tmp
+unzip \-aaCL source.zip "*.[fch]" makefile \-d /tmp
 .EE
 .PP
 To extract only newer versions of the files already in the current
 directory, without querying (NOTE:  be careful of unzipping in one timezone a
-zipfile created in another--ZIP archives other than those created by Zip 2.1
+zipfile created in another\(emZIP archives other than those created by Zip 2.1
 or later contain no timezone information, and a ``newer'' file from an eastern
 timezone may, in fact, be older):
 .PP
@@ -770,7 +770,7 @@ compiled in, the compiler with which \fI
 unzip \-v
 .EE
 .PP
-In the last five examples, assume that UNZIP or UNZIP_OPTS is set to -q.
+In the last five examples, assume that UNZIP or UNZIP_OPTS is set to \-q.
 To do a singly quiet listing:
 .PP
 .EX
@@ -868,8 +868,8 @@ VMS interprets standard Unix (or PC) ret
 things, so \fIunzip\fP instead maps them into VMS-style status codes.  The
 current mapping is as follows:   1 (success) for normal exit, 0x7fff0001
 for warning errors, and (0x7fff000? + 16*normal_unzip_exit_status) for all
-other errors, where the `?' is 2 (error) for \fIunzip\fP values 2, 9-11 and
-80-82, and 4 (fatal error) for the remaining ones (3-8, 50, 51).  In addition,
+other errors, where the `?' is 2 (error) for \fIunzip\fP values 2, 9\en11 and
+80\(en82, and 4 (fatal error) for the remaining ones (3\(en8, 50, 51).  In 
addition,
 there is a compilation option to expand upon this behavior:  defining
 RETURN_CODES results in a human-readable explanation of what the error
 status means.
@@ -902,7 +902,8 @@ The correct handling of tabs would requi
 the actual tabulator setup on the output console.
 .PP
 Dates, times and permissions of stored directories are not restored except
-under Unix. (On Windows NT and successors, timestamps are now restored.)
+under Unix.
+(On Windows NT and successors, timestamps are now restored.)
 .PP
 [MS-DOS] When extracting or testing files from an archive on a defective
 floppy diskette, if the ``Fail'' option is chosen from DOS's ``Abort, Retry,
@@ -929,7 +930,7 @@ with them, \fIunzip\fP has no way to det
 are newer or older than those on disk.  In practice this may mean a two-pass
 approach is required:  first unpack the archive normally (with or without
 freshening/updating existing files), then overwrite just the directory entries
-(e.g., ``\fCunzip -o foo */\fR'').
+(e.g., ``\fCunzip \-o foo */\fR'').
 .PP
 [VMS] When extracting to another directory, only the \fI[.foo]\fP syntax is
 accepted for the \fB\-d\fP option; the simple Unix \fIfoo\fP syntax is
@@ -990,9 +991,9 @@ file in the UnZip source distribution fo
 .ta \w'vx.xxnn'u +\w'fall 1989'u+3n
 .PD 0
 .IP "v1.2\t15 Mar 89" \w'\t\t'u
-Samuel H. Smith
+Samuel H.\& Smith
 .IP "v2.0\t\ 9 Sep 89"
-Samuel H. Smith
+Samuel H.\& Smith
 .IP "v2.x\tfall 1989"
 many Usenet contributors
 .IP "v3.0\t\ 1 May 90"

Reply via email to