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"