Bug#1072830: IO::Compress::FAQ.3perl: some remarks and editorial changes for this man page
Bjarni Ingi Gislason
bjarniig at simnet.is
Sat Jun 8 15:45:15 BST 2024
Package: perl-doc
Version: 5.38.2-5
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>':375
troff:<stdin>:375: warning: [page 4, 6.0i]: cannot break line
* 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 perl-doc depends on:
ii perl 5.38.2-5
perl-doc recommends no packages.
Versions of packages perl-doc suggests:
ii groff-base 1.23.0-4
ii man-db [man-browser] 2.12.1-1
-- no debconf information
-------------- next part --------------
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 -mandoc <file1> > <out1>
nroff -mandoc <file2> > <out2>
diff -u <out1> <out2>
and for groff, using
"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - "
instead of "nroff -mandoc"
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)
-.-.
Output from "mandoc -T lint IO::Compress::FAQ.3perl": (possibly shortened list)
mandoc: IO::Compress::FAQ.3perl:108:102: STYLE: input text line longer than 80 bytes: The \f(CW\*(C`Archiv...
mandoc: IO::Compress::FAQ.3perl:111:84: STYLE: input text line longer than 80 bytes: utility cannot be re...
mandoc: IO::Compress::FAQ.3perl:114:103: STYLE: input text line longer than 80 bytes: If the \f(CW\*(C`unc...
mandoc: IO::Compress::FAQ.3perl:115:95: STYLE: input text line longer than 80 bytes: of these workarounds...
mandoc: IO::Compress::FAQ.3perl:141:86: STYLE: input text line longer than 80 bytes: Similarly, if the \f...
mandoc: IO::Compress::FAQ.3perl:190:90: STYLE: input text line longer than 80 bytes: The following compre...
mandoc: IO::Compress::FAQ.3perl:211:102: STYLE: input text line longer than 80 bytes: Yes, both the \f(CW\...
mandoc: IO::Compress::FAQ.3perl:244:86: STYLE: input text line longer than 80 bytes: When uncompressing w...
mandoc: IO::Compress::FAQ.3perl:286:89: STYLE: input text line longer than 80 bytes: By default \f(CW\*(C...
mandoc: IO::Compress::FAQ.3perl:295:90: STYLE: input text line longer than 80 bytes: To force \f(CW\*(C`I...
mandoc: IO::Compress::FAQ.3perl:305:88: STYLE: input text line longer than 80 bytes: A \f(CW\*(C`bgzip\*(...
mandoc: IO::Compress::FAQ.3perl:338:91: STYLE: input text line longer than 80 bytes: By default \f(CW\*(C...
mandoc: IO::Compress::FAQ.3perl:347:92: STYLE: input text line longer than 80 bytes: To force \f(CW\*(C`I...
mandoc: IO::Compress::FAQ.3perl:361:87: STYLE: input text line longer than 80 bytes: By default \f(CW\*(C...
mandoc: IO::Compress::FAQ.3perl:373:85: STYLE: input text line longer than 80 bytes: Below is a mod_perl ...
mandoc: IO::Compress::FAQ.3perl:457:87: STYLE: input text line longer than 80 bytes: read the contents of...
mandoc: IO::Compress::FAQ.3perl:462:90: STYLE: input text line longer than 80 bytes: The gzip support in ...
mandoc: IO::Compress::FAQ.3perl:525:100: STYLE: input text line longer than 80 bytes: The use of one-shot ...
mandoc: IO::Compress::FAQ.3perl:528:87: STYLE: input text line longer than 80 bytes: Note the use of the ...
mandoc: IO::Compress::FAQ.3perl:534:102: STYLE: input text line longer than 80 bytes: The \f(CW\*(C`Net::F...
mandoc: IO::Compress::FAQ.3perl:540:86: STYLE: input text line longer than 80 bytes: Firstly, here is cod...
mandoc: IO::Compress::FAQ.3perl:582:88: STYLE: input text line longer than 80 bytes: To illustrate how to...
mandoc: IO::Compress::FAQ.3perl:691:94: STYLE: input text line longer than 80 bytes: The call to \f(CW\*(...
mandoc: IO::Compress::FAQ.3perl:693:86: STYLE: input text line longer than 80 bytes: it as it goes. The u...
mandoc: IO::Compress::FAQ.3perl:72:103: STYLE: input text line longer than 80 bytes: Although \f(CW\*(C`C...
mandoc: IO::Compress::FAQ.3perl:737:85: STYLE: input text line longer than 80 bytes: Using \f(CW\*(C`Inpu...
mandoc: IO::Compress::FAQ.3perl:740:90: STYLE: input text line longer than 80 bytes: One final point \-\-...
mandoc: IO::Compress::FAQ.3perl:750:523: STYLE: input text line longer than 80 bytes: Compress::Zlib, IO::...
mandoc: IO::Compress::FAQ.3perl:77:88: STYLE: input text line longer than 80 bytes: If you have the \f(C...
mandoc: IO::Compress::FAQ.3perl:87:86: STYLE: input text line longer than 80 bytes: Alternatively, if yo...
mandoc: IO::Compress::FAQ.3perl:97:84: STYLE: input text line longer than 80 bytes: and this to write co...
-.-.
Change (or include a "FIXME" paragraph about) misused SI (metric)
numeric prefixes (or names) to the binary ones, like Ki (kibi), Mi
(mebi), Gi (gibi), or Ti (tebi), if indicated.
If the metric prefixes are correct, add the definitions or an
explanation to avoid misunderstanding.
213:files/buffers larger than 4Gig.
216:input files is greater than 4Gig, a zip64 complaint zip file will be
254:.SS "Can I write more that 64K entries is a Zip files?"
255:.IX Subsection "Can I write more that 64K entries is a Zip files?"
-.-.
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.
547:\& my $ftp = Net::FTP\->new( ... )
-.-.
Strings longer than 3/4 of a standard line length (80)
375 <http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
-.-.
Test nr. 31:
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.
74:name. The \f(CW\*(C`Compress::Zlib\*(C'\fR module is not compatible with Unix
110:\&\f(CW\*(C`gzip\*(C'\fR. Unfortunately tar files compressed with the Unix \f(CW\*(C`compress\*(C'\fR
163:recompress with bzip2. Here is all that is needed to carry out the
180:Note, there is a limitation of this technique. Some compression file
181:formats store extra information along with the compressed data payload. For
183:lot of information about the original file. If the original compressed file
212:support the zip feature called \fIZip64\fR. That allows them to read/write
256:Yes. Zip64 allows this. See previous question.
262:An alternatively is the Info-Zip appnote. This is available from
287:program. It will only uncompress the first gzip data stream in the file, as
306:concatenated together. To read a file created by \f(CW\*(C`bgzip\*(C'\fR with
339:program. It will only uncompress the first bunzip2 data stream in the file, as
358:bzip2. The output from pbzip2 consists of a series of concatenated bzip2
362:data stream in a pbzip2 file. To uncompress the complete pbzip2 file you
458:the compressed data to standard output. That's all.
463:filesystem filehandle. The filehandles used by Apache modules are not
471:of the reasons for writing it in the first place). So if
473:filehandle code can be removed. Here is the rewritten code.
528:Note the use of the \f(CW\*(C`Minimal\*(C'\fR option in the code above. When using gzip
529:for Content-Encoding you should \fIalways\fR use this option. In the example
535:\&\f(CW\*(C`retr\*(C'\fR that both return filehandles. These filehandles can used with the
547:\& my $ftp = Net::FTP\->new( ... )
572:As an example consider the structure of a zip file. This is a well-defined
578:local header. The local header contains information about the compressed
585:"Walking through a zip file" in IO::Uncompress::Unzip ). Also, although
666:header data. The code that I want to focus on is at the bottom.
693:it as it goes. The use of the \f(CW\*(C`InputLength\*(C'\fR option will guarantee that
733:storage won't be a problem. But if \f(CW$compressedLength\fR is very large or
765:Copyright (c) 2005\-2023 Paul Marquess. All rights reserved.
-.-.
Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.
N.B.
The number of lines affected can be too large to be in the patch.
IO::Compress::FAQ.3perl: line 58 length 88
.TH IO::Compress::FAQ 3perl 2024-05-30 "perl v5.38.2" "Perl Programmers Reference Guide"
IO::Compress::FAQ.3perl: line 72 length 103
Although \f(CW\*(C`Compress::Zlib\*(C'\fR has a pair of functions called \f(CW\*(C`compress\*(C'\fR and
IO::Compress::FAQ.3perl: line 73 length 91
\&\f(CW\*(C`uncompress\*(C'\fR, they are \fInot\fR related to the Unix programs of the same
IO::Compress::FAQ.3perl: line 77 length 88
If you have the \f(CW\*(C`uncompress\*(C'\fR program available, you can use this to read
IO::Compress::FAQ.3perl: line 87 length 86
Alternatively, if you have the \f(CW\*(C`gunzip\*(C'\fR program available, you can use
IO::Compress::FAQ.3perl: line 97 length 84
and this to write compress files, if you have the \f(CW\*(C`compress\*(C'\fR program
IO::Compress::FAQ.3perl: line 108 length 102
The \f(CW\*(C`Archive::Tar\*(C'\fR module can optionally use \f(CW\*(C`Compress::Zlib\*(C'\fR (via the
IO::Compress::FAQ.3perl: line 109 length 87
\&\f(CW\*(C`IO::Zlib\*(C'\fR module) to access tar files that have been compressed with
IO::Compress::FAQ.3perl: line 110 length 101
\&\f(CW\*(C`gzip\*(C'\fR. Unfortunately tar files compressed with the Unix \f(CW\*(C`compress\*(C'\fR
IO::Compress::FAQ.3perl: line 111 length 84
utility cannot be read by \f(CW\*(C`Compress::Zlib\*(C'\fR and so cannot be directly
IO::Compress::FAQ.3perl: line 114 length 103
If the \f(CW\*(C`uncompress\*(C'\fR or \f(CW\*(C`gunzip\*(C'\fR programs are available, you can use one
IO::Compress::FAQ.3perl: line 115 length 95
of these workarounds to read \f(CW\*(C`.tar.Z\*(C'\fR files from \f(CW\*(C`Archive::Tar\*(C'\fR
IO::Compress::FAQ.3perl: line 141 length 86
Similarly, if the \f(CW\*(C`compress\*(C'\fR program is available, you can use this to
IO::Compress::FAQ.3perl: line 159 length 104
\&\f(CW\*(C`IO::Compress::*\*(C'\fR objects are derived from \f(CW\*(C`IO::File\*(C'\fR and that all the
IO::Compress::FAQ.3perl: line 160 length 101
\&\f(CW\*(C`IO::Uncompress::*\*(C'\fR modules can read from an \f(CW\*(C`IO::File\*(C'\fR filehandle.
IO::Compress::FAQ.3perl: line 188 length 82
.SS "What Compression Types do IO::Compress::Zip & IO::Uncompress::Unzip support?"
IO::Compress::FAQ.3perl: line 189 length 93
.IX Subsection "What Compression Types do IO::Compress::Zip & IO::Uncompress::Unzip support?"
IO::Compress::FAQ.3perl: line 190 length 90
The following compression formats are supported by \f(CW\*(C`IO::Compress::Zip\*(C'\fR and
IO::Compress::FAQ.3perl: line 211 length 102
Yes, both the \f(CW\*(C`IO\-Compress\-Zip\*(C'\fR and \f(CW\*(C`IO\-Uncompress\-Unzip\*(C'\fR modules
IO::Compress::FAQ.3perl: line 244 length 86
When uncompressing with \f(CW\*(C`IO\-Uncompress\-Unzip\*(C'\fR, it will automatically
IO::Compress::FAQ.3perl: line 248 length 93
\&\f(CW\*(C`IO\-Compress\-Zip\*(C'\fR using an external zip/unzip, make sure that it supports
IO::Compress::FAQ.3perl: line 286 length 89
By default \f(CW\*(C`IO::Uncompress::Gunzip\*(C'\fR will \fInot\fR behave like the gunzip
IO::Compress::FAQ.3perl: line 291 length 84
\& $ perl \-MIO::Uncompress::Gunzip=:all \-e \*(Aqgunzip "x.gz" => \e*STDOUT\*(Aq
IO::Compress::FAQ.3perl: line 295 length 90
To force \f(CW\*(C`IO::Uncompress::Gunzip\*(C'\fR to uncompress all the gzip data streams,
IO::Compress::FAQ.3perl: line 299 length 102
\& $ perl \-MIO::Uncompress::Gunzip=:all \-e \*(Aqgunzip "x.gz" => \e*STDOUT, MultiStream => 1\*(Aq
IO::Compress::FAQ.3perl: line 305 length 88
A \f(CW\*(C`bgzip\*(C'\fR file consists of a series of valid gzip-compliant data streams
IO::Compress::FAQ.3perl: line 307 length 103
\&\f(CW\*(C`IO::Uncompress::Gunzip\*(C'\fR use the \f(CW\*(C`MultiStream\*(C'\fR option as shown in the
IO::Compress::FAQ.3perl: line 338 length 91
By default \f(CW\*(C`IO::Uncompress::Bunzip2\*(C'\fR will \fInot\fR behave like the bunzip2
IO::Compress::FAQ.3perl: line 343 length 87
\& $ perl \-MIO::Uncompress::Bunzip2=:all \-e \*(Aqbunzip2 "x.bz2" => \e*STDOUT\*(Aq
IO::Compress::FAQ.3perl: line 347 length 92
To force \f(CW\*(C`IO::Uncompress::Bunzip2\*(C'\fR to uncompress all the bzip2 data streams,
IO::Compress::FAQ.3perl: line 351 length 105
\& $ perl \-MIO::Uncompress::Bunzip2=:all \-e \*(Aqbunzip2 "x.bz2" => \e*STDOUT, MultiStream => 1\*(Aq
IO::Compress::FAQ.3perl: line 361 length 87
By default \f(CW\*(C`IO::Uncompress::Bzip2\*(C'\fR will only uncompress the first bzip2
IO::Compress::FAQ.3perl: line 373 length 85
Below is a mod_perl Apache compression module, called \f(CW\*(C`Apache::GZip\*(C'\fR,
IO::Compress::FAQ.3perl: line 375 length 104
<http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
IO::Compress::FAQ.3perl: line 456 length 90
\&\f(CW\*(C`Apache::GZip\*(C'\fR, you could sum up what the code was doing as follows \-\-
IO::Compress::FAQ.3perl: line 457 length 87
read the contents of the file in \f(CW\*(C`$r\->filename\*(C'\fR, compress it and write
IO::Compress::FAQ.3perl: line 462 length 90
The gzip support in \f(CW\*(C`Compress::Zlib\*(C'\fR version 1.x can only work with a real
IO::Compress::FAQ.3perl: line 470 length 92
\&\f(CW\*(C`IO::Compress::Gzip\*(C'\fR doesn't have that filehandle limitation (this was one
IO::Compress::FAQ.3perl: line 472 length 105
\&\f(CW\*(C`IO::Compress::Gzip\*(C'\fR is used instead of \f(CW\*(C`Compress::Zlib\*(C'\fR the whole tied
IO::Compress::FAQ.3perl: line 525 length 100
The use of one-shot \f(CW\*(C`gzip\*(C'\fR above just reads from \f(CW\*(C`$r\->filename\*(C'\fR and
IO::Compress::FAQ.3perl: line 528 length 87
Note the use of the \f(CW\*(C`Minimal\*(C'\fR option in the code above. When using gzip
IO::Compress::FAQ.3perl: line 534 length 102
The \f(CW\*(C`Net::FTP\*(C'\fR module provides two low-level methods called \f(CW\*(C`stor\*(C'\fR and
IO::Compress::FAQ.3perl: line 535 length 90
\&\f(CW\*(C`retr\*(C'\fR that both return filehandles. These filehandles can used with the
IO::Compress::FAQ.3perl: line 536 length 88
\&\f(CW\*(C`IO::Compress/Uncompress\*(C'\fR modules to compress or uncompress files read
IO::Compress::FAQ.3perl: line 540 length 86
Firstly, here is code that uses \f(CW\*(C`retr\*(C'\fR to uncompressed a file as it is
IO::Compress::FAQ.3perl: line 551 length 81
\& or die "Cannot uncompress \*(Aq$compressed_file\*(Aq: $GunzipError\en";
IO::Compress::FAQ.3perl: line 566 length 86
.ie n .SS "Using ""InputLength"" to uncompress data embedded in a larger file/buffer."
IO::Compress::FAQ.3perl: line 567 length 88
.el .SS "Using \f(CWInputLength\fP to uncompress data embedded in a larger file/buffer."
IO::Compress::FAQ.3perl: line 568 length 87
.IX Subsection "Using InputLength to uncompress data embedded in a larger file/buffer."
IO::Compress::FAQ.3perl: line 582 length 88
To illustrate how to use \f(CW\*(C`InputLength\*(C'\fR here is a script that walks a zip
IO::Compress::FAQ.3perl: line 610 length 82
\& ($x = $fh\->read($buffer, ZIP_LOCAL_HDR_LENGTH)) == ZIP_LOCAL_HDR_LENGTH
IO::Compress::FAQ.3perl: line 634 length 92
\& warn "Skipping file \*(Aq$filename\*(Aq \- not deflated $compressedMethod\en";
IO::Compress::FAQ.3perl: line 691 length 94
The call to \f(CW\*(C`IO::Uncompress::RawInflate\*(C'\fR creates a new filehandle \f(CW$inf\fR
IO::Compress::FAQ.3perl: line 693 length 86
it as it goes. The use of the \f(CW\*(C`InputLength\*(C'\fR option will guarantee that
IO::Compress::FAQ.3perl: line 694 length 84
\&\fIat most\fR \f(CW$compressedLength\fR bytes of compressed data will be read from
IO::Compress::FAQ.3perl: line 737 length 85
Using \f(CW\*(C`InputLength\*(C'\fR avoids the use of temporary storage and means the
IO::Compress::FAQ.3perl: line 740 length 90
One final point \-\- obviously \f(CW\*(C`InputLength\*(C'\fR can only be used whenever you
IO::Compress::FAQ.3perl: line 750 length 523
Compress::Zlib, IO::Compress::Gzip, IO::Uncompress::Gunzip, IO::Compress::Deflate, IO::Uncompress::Inflate, IO::Compress::RawDeflate, IO::Uncompress::RawInflate, IO::Compress::Bzip2, IO::Uncompress::Bunzip2, IO::Compress::Lzma, IO::Uncompress::UnLzma, IO::Compress::Xz, IO::Uncompress::UnXz, IO::Compress::Lzip, IO::Uncompress::UnLzip, IO::Compress::Lzop, IO::Uncompress::UnLzop, IO::Compress::Lzf, IO::Uncompress::UnLzf, IO::Compress::Zstd, IO::Uncompress::UnZstd, IO::Uncompress::AnyInflate, IO::Uncompress::AnyUncompress
Add a zero (0) in front of a decimal fraction that begins with a period
(.)
7:.if t .sp .5v
-.-.
Use the name of units in text; use symbols in tables and
calculations.
The rule is to have a (no-break, \~) space between a number and
its units (see "www.bipm.org/en/publications/si-brochure")
213:files/buffers larger than 4Gig.
216:input files is greater than 4Gig, a zip64 complaint zip file will be
-.-.
Protect a period (.) or an apostrophe (') with '\&' from becoming a
control character, if it could end up at the start of a line
(by splitting the line into more lines).
84:\& ...
94:\& ...
103:\& ...
126:\& ...
138:\& ...
152:\& ...
547:\& my $ftp = Net::FTP\->new( ... )
-.-.
Output from "test-groff -b -mandoc -rF0 -rHY=0 -K utf8 -t -ww -z ":
troff: backtrace: file '<stdin>':375
troff:<stdin>:375: warning: [page 4, 6.0i]: cannot break line
-.-
Spelling:
automagically -> automatically
-------------- next part --------------
--- IO::Compress::FAQ.3perl 2024-06-08 12:37:25.279538210 +0000
+++ IO::Compress::FAQ.3perl.new 2024-06-08 14:09:47.089860475 +0000
@@ -4,7 +4,7 @@
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
+.if t .sp 0.5v
.if n .sp
..
.de Vb \" Begin verbatim text
@@ -81,7 +81,7 @@ compressed files
\& open F, "uncompress \-c $filename |";
\& while (<F>)
\& {
-\& ...
+\& \&...\&
.Ve
.PP
Alternatively, if you have the \f(CW\*(C`gunzip\*(C'\fR program available, you can use
@@ -91,7 +91,7 @@ this to read compressed files
\& open F, "gunzip \-c $filename |";
\& while (<F>)
\& {
-\& ...
+\& \&...\&
.Ve
.PP
and this to write compress files, if you have the \f(CW\*(C`compress\*(C'\fR program
@@ -100,7 +100,7 @@ available
.Vb 4
\& open F, "| compress \-c $filename ";
\& print F "data";
-\& ...
+\& \&...\&
\& close F ;
.Ve
.SS "Accessing .tar.Z files"
@@ -123,7 +123,7 @@ Firstly with \f(CW\*(C`uncompress\*(C'\f
\&
\& open F, "uncompress \-c $filename |";
\& my $tar = Archive::Tar\->new(*F);
-\& ...
+\& \&...\&
.Ve
.PP
and this with \f(CW\*(C`gunzip\*(C'\fR
@@ -135,7 +135,7 @@ and this with \f(CW\*(C`gunzip\*(C'\fR
\&
\& open F, "gunzip \-c $filename |";
\& my $tar = Archive::Tar\->new(*F);
-\& ...
+\& \&...\&
.Ve
.PP
Similarly, if the \f(CW\*(C`compress\*(C'\fR program is available, you can use this to
@@ -149,7 +149,7 @@ write a \f(CW\*(C`.tar.Z\*(C'\fR file
\&
\& my $fh = IO::File\->new( "| compress \-c >$filename" );
\& my $tar = Archive::Tar\->new();
-\& ...
+\& \&...\&
\& $tar\->write($fh);
\& $fh\->close ;
.Ve
@@ -210,10 +210,10 @@ Only supported if the \f(CW\*(C`IO\-Comp
.IX Subsection "Can I Read/Write Zip files larger the 4 Gig?"
Yes, both the \f(CW\*(C`IO\-Compress\-Zip\*(C'\fR and \f(CW\*(C`IO\-Uncompress\-Unzip\*(C'\fR modules
support the zip feature called \fIZip64\fR. That allows them to read/write
-files/buffers larger than 4Gig.
+files/buffers larger than 4\~GiB.
.PP
If you are creating a Zip file using the one-shot interface, and any of the
-input files is greater than 4Gig, a zip64 complaint zip file will be
+input files is greater than 4\~GiB, a zip64 complaint zip file will be
created.
.PP
.Vb 1
@@ -251,8 +251,8 @@ Zip64.
In particular, if you are using Info-Zip you need to have zip version 3.x
or better to update a Zip64 archive and unzip version 6.x to read a zip64
archive.
-.SS "Can I write more that 64K entries is a Zip files?"
-.IX Subsection "Can I write more that 64K entries is a Zip files?"
+.SS "Can I write more that 64\~KB entries is a Zip files?"
+.IX Subsection "Can I write more that 64\~KB entries is a Zip files?"
Yes. Zip64 allows this. See previous question.
.SS "Zip Resources"
.IX Subsection "Zip Resources"
@@ -372,7 +372,7 @@ must include the \f(CW\*(C`MultiStream\*
.IX Subsection "Apache::GZip Revisited"
Below is a mod_perl Apache compression module, called \f(CW\*(C`Apache::GZip\*(C'\fR,
taken from
-<http://perl.apache.org/docs/tutorials/tips/mod_perl_tricks/mod_perl_tricks.html#On_the_Fly_Compression>
+<http://perl.apache.org/\:docs/\:tutorials/\:tips/\:mod_perl_tricks/\:mod_perl_tricks.html#On_the_Fly_Compression>
.PP
.Vb 2
\& package Apache::GZip;
@@ -443,7 +443,7 @@ taken from
.PP
Here's the Apache configuration entry you'll need to make use of it. Once
set it will result in everything in the /compressed directory will be
-compressed automagically.
+compressed automatically.
.PP
.Vb 4
\& <Location /compressed>
@@ -544,7 +544,7 @@ read from the FTP Server.
\& use Net::FTP;
\& use IO::Uncompress::Gunzip qw(:all);
\&
-\& my $ftp = Net::FTP\->new( ... )
+\& my $ftp = Net::FTP\->new( \&...\& )
\&
\& my $retr_fh = $ftp\->retr($compressed_filename);
\& gunzip $retr_fh => $outFilename, AutoClose => 1
@@ -747,7 +747,14 @@ General feedback/questions/bug reports s
<https://rt.cpan.org/Public/Dist/Display.html?Name=>.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
-Compress::Zlib, IO::Compress::Gzip, IO::Uncompress::Gunzip, IO::Compress::Deflate, IO::Uncompress::Inflate, IO::Compress::RawDeflate, IO::Uncompress::RawInflate, IO::Compress::Bzip2, IO::Uncompress::Bunzip2, IO::Compress::Lzma, IO::Uncompress::UnLzma, IO::Compress::Xz, IO::Uncompress::UnXz, IO::Compress::Lzip, IO::Uncompress::UnLzip, IO::Compress::Lzop, IO::Uncompress::UnLzop, IO::Compress::Lzf, IO::Uncompress::UnLzf, IO::Compress::Zstd, IO::Uncompress::UnZstd, IO::Uncompress::AnyInflate, IO::Uncompress::AnyUncompress
+Compress::Zlib, IO::Compress::Gzip, IO::Uncompress::Gunzip,
+IO::Compress::Deflate, IO::Uncompress::Inflate, IO::Compress::RawDeflate,
+IO::Uncompress::RawInflate, IO::Compress::Bzip2, IO::Uncompress::Bunzip2,
+IO::Compress::Lzma, IO::Uncompress::UnLzma, IO::Compress::Xz,
+IO::Uncompress::UnXz, IO::Compress::Lzip, IO::Uncompress::UnLzip,
+IO::Compress::Lzop, IO::Uncompress::UnLzop, IO::Compress::Lzf,
+IO::Uncompress::UnLzf, IO::Compress::Zstd, IO::Uncompress::UnZstd,
+IO::Uncompress::AnyInflate, IO::Uncompress::AnyUncompress
.PP
IO::Compress::FAQ
.PP
More information about the Perl-maintainers
mailing list