In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/cb21ff4630e9dc4048595dd175a4ee716bd54ba2?hp=b0248dbfdf5ebb72be4ef440747e59fd3204ee95>
- Log ----------------------------------------------------------------- commit cb21ff4630e9dc4048595dd175a4ee716bd54ba2 Author: Karen Etheridge <[email protected]> Date: Sat Dec 19 19:08:24 2015 -0800 Update podlators to version 4.03 ----------------------------------------------------------------------- Summary of changes: MANIFEST | 78 +- Porting/Maintainers.pl | 2 +- cpan/podlators/.gitignore | 10 + cpan/podlators/Changes | 945 +++++++++++++++++++++ cpan/podlators/Makefile.PL | 13 + cpan/podlators/{scripts/pod2man.PL => bin/pod2man} | 132 ++- .../{scripts/pod2text.PL => bin/pod2text} | 84 +- cpan/podlators/lib/Pod/Man.pm | 219 +++-- cpan/podlators/lib/Pod/ParseLink.pm | 16 +- cpan/podlators/lib/Pod/Text.pm | 65 +- cpan/podlators/lib/Pod/Text/Color.pm | 14 +- cpan/podlators/lib/Pod/Text/Overstrike.pm | 19 +- cpan/podlators/lib/Pod/Text/Termcap.pm | 39 +- cpan/podlators/t/basic.t | 117 --- cpan/podlators/t/{ => data}/basic.cap | 0 cpan/podlators/t/{ => data}/basic.clr | 0 cpan/podlators/t/{ => data}/basic.man | 0 cpan/podlators/t/{ => data}/basic.ovr | 0 cpan/podlators/t/{ => data}/basic.pod | 0 cpan/podlators/t/{ => data}/basic.txt | 0 cpan/podlators/t/data/perl.conf | 7 + cpan/podlators/t/data/snippets/README | 45 + cpan/podlators/t/data/snippets/man/cpp | 20 + .../podlators/t/data/snippets/man/utf8-nonbreaking | 17 + cpan/podlators/t/data/snippets/man/utf8-verbatim | 31 + cpan/podlators/t/data/snippets/text/cpp | 20 + cpan/podlators/t/data/termcap | 8 + cpan/podlators/t/devise-date.t | 15 - cpan/podlators/t/docs/pod-spelling.t | 66 ++ cpan/podlators/t/docs/pod.t | 65 ++ cpan/podlators/t/docs/synopsis.t | 60 ++ cpan/podlators/t/filehandle.t | 110 --- cpan/podlators/t/general/basic.t | 108 +++ cpan/podlators/t/general/filehandle.t | 82 ++ cpan/podlators/t/general/pod-parser.t | 83 ++ cpan/podlators/t/lib/Test/Podlators.pm | 510 +++++++++++ cpan/podlators/t/lib/Test/RRA.pm | 235 +++++ cpan/podlators/t/lib/Test/RRA/Config.pm | 215 +++++ cpan/podlators/t/man-heading.t | 90 -- cpan/podlators/t/man-options.t | 286 ------- cpan/podlators/t/man-perlio.t | 135 --- cpan/podlators/t/man-utf8.t | 133 --- cpan/podlators/t/{man.t => man/basic.t} | 11 +- cpan/podlators/t/man/devise-date.t | 56 ++ cpan/podlators/t/man/devise-title.t | 32 + cpan/podlators/t/{man-empty.t => man/empty.t} | 2 +- cpan/podlators/t/man/heading.t | 94 ++ cpan/podlators/t/man/options.t | 273 ++++++ cpan/podlators/t/man/utf8-io.t | 50 ++ .../podlators/t/{parselink.t => parselink/basic.t} | 2 +- cpan/podlators/t/pod-parser.t | 78 -- cpan/podlators/t/pod-spelling.t | 75 -- cpan/podlators/t/pod.t | 14 - cpan/podlators/t/style/minimum-version.t | 47 + cpan/podlators/t/style/module-version.t | 315 +++++++ cpan/podlators/t/style/strict.t | 56 ++ cpan/podlators/t/{text.t => text/basic.t} | 2 +- cpan/podlators/t/{ => text}/color.t | 2 +- cpan/podlators/t/{text-empty.t => text/empty.t} | 2 +- .../t/{text-encoding.t => text/encoding.t} | 33 +- .../podlators/t/{text-options.t => text/options.t} | 19 +- cpan/podlators/t/{ => text}/overstrike.t | 2 +- cpan/podlators/t/{text-perlio.t => text/perlio.t} | 24 +- cpan/podlators/t/{ => text}/termcap.t | 26 +- cpan/podlators/t/{text-utf8.t => text/utf8.t} | 22 +- pod/perlpodstyle.pod | 12 +- t/porting/known_pod_issues.dat | 1 - utils/Makefile.PL | 6 +- utils/pod2man.PL | 53 ++ utils/pod2text.PL | 53 ++ 70 files changed, 4045 insertions(+), 1411 deletions(-) create mode 100644 cpan/podlators/Changes create mode 100644 cpan/podlators/Makefile.PL rename cpan/podlators/{scripts/pod2man.PL => bin/pod2man} (76%) rename cpan/podlators/{scripts/pod2text.PL => bin/pod2text} (83%) delete mode 100644 cpan/podlators/t/basic.t rename cpan/podlators/t/{ => data}/basic.cap (100%) rename cpan/podlators/t/{ => data}/basic.clr (100%) rename cpan/podlators/t/{ => data}/basic.man (100%) rename cpan/podlators/t/{ => data}/basic.ovr (100%) rename cpan/podlators/t/{ => data}/basic.pod (100%) rename cpan/podlators/t/{ => data}/basic.txt (100%) create mode 100644 cpan/podlators/t/data/perl.conf create mode 100644 cpan/podlators/t/data/snippets/README create mode 100644 cpan/podlators/t/data/snippets/man/cpp create mode 100644 cpan/podlators/t/data/snippets/man/utf8-nonbreaking create mode 100644 cpan/podlators/t/data/snippets/man/utf8-verbatim create mode 100644 cpan/podlators/t/data/snippets/text/cpp create mode 100644 cpan/podlators/t/data/termcap delete mode 100644 cpan/podlators/t/devise-date.t create mode 100644 cpan/podlators/t/docs/pod-spelling.t create mode 100644 cpan/podlators/t/docs/pod.t create mode 100644 cpan/podlators/t/docs/synopsis.t delete mode 100644 cpan/podlators/t/filehandle.t create mode 100644 cpan/podlators/t/general/basic.t create mode 100644 cpan/podlators/t/general/filehandle.t create mode 100644 cpan/podlators/t/general/pod-parser.t create mode 100644 cpan/podlators/t/lib/Test/Podlators.pm create mode 100644 cpan/podlators/t/lib/Test/RRA.pm create mode 100644 cpan/podlators/t/lib/Test/RRA/Config.pm delete mode 100644 cpan/podlators/t/man-heading.t delete mode 100644 cpan/podlators/t/man-options.t delete mode 100644 cpan/podlators/t/man-perlio.t delete mode 100644 cpan/podlators/t/man-utf8.t rename cpan/podlators/t/{man.t => man/basic.t} (97%) create mode 100644 cpan/podlators/t/man/devise-date.t create mode 100644 cpan/podlators/t/man/devise-title.t rename cpan/podlators/t/{man-empty.t => man/empty.t} (97%) create mode 100644 cpan/podlators/t/man/heading.t create mode 100644 cpan/podlators/t/man/options.t create mode 100644 cpan/podlators/t/man/utf8-io.t rename cpan/podlators/t/{parselink.t => parselink/basic.t} (98%) delete mode 100644 cpan/podlators/t/pod-parser.t delete mode 100644 cpan/podlators/t/pod-spelling.t delete mode 100644 cpan/podlators/t/pod.t create mode 100644 cpan/podlators/t/style/minimum-version.t create mode 100644 cpan/podlators/t/style/module-version.t create mode 100644 cpan/podlators/t/style/strict.t rename cpan/podlators/t/{text.t => text/basic.t} (98%) rename cpan/podlators/t/{ => text}/color.t (98%) rename cpan/podlators/t/{text-empty.t => text/empty.t} (96%) rename cpan/podlators/t/{text-encoding.t => text/encoding.t} (89%) rename cpan/podlators/t/{text-options.t => text/options.t} (95%) rename cpan/podlators/t/{ => text}/overstrike.t (98%) rename cpan/podlators/t/{text-perlio.t => text/perlio.t} (81%) rename cpan/podlators/t/{ => text}/termcap.t (74%) rename cpan/podlators/t/{text-utf8.t => text/utf8.t} (82%) create mode 100644 utils/pod2man.PL create mode 100644 utils/pod2text.PL diff --git a/MANIFEST b/MANIFEST index 205c83e..b2c0264 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1864,42 +1864,58 @@ cpan/Pod-Escapes/lib/Pod/Escapes.pm Pod::Escapes cpan/Pod-Escapes/t/01_about_verbose.t test Pod::Escapes cpan/Pod-Escapes/t/10_main.t test Pod::Escapes cpan/Pod-Escapes/t/15_name2charnum.t test Pod::Escapes +cpan/podlators/bin/pod2man Translator to turn pod into manpage +cpan/podlators/bin/pod2text Translator to turn pod into text +cpan/podlators/Changes podlators release notes cpan/podlators/lib/Pod/Man.pm Convert POD data to *roff cpan/podlators/lib/Pod/ParseLink.pm Perl an L<> formatting code in POD text cpan/podlators/lib/Pod/Text/Color.pm Convert POD data to color ASCII text cpan/podlators/lib/Pod/Text/Overstrike.pm Convert POD data to formatted overstrike text cpan/podlators/lib/Pod/Text.pm Pod-Parser - convert POD data to formatted ASCII text cpan/podlators/lib/Pod/Text/Termcap.pm Convert POD data to ASCII text with format escapes -cpan/podlators/scripts/pod2man.PL Precursor for translator to turn pod into manpage -cpan/podlators/scripts/pod2text.PL Precursor for translator to turn pod into text -cpan/podlators/t/basic.cap podlators test -cpan/podlators/t/basic.clr podlators test -cpan/podlators/t/basic.man podlators test -cpan/podlators/t/basic.ovr podlators test -cpan/podlators/t/basic.pod podlators test -cpan/podlators/t/basic.t podlators test -cpan/podlators/t/basic.txt podlators test -cpan/podlators/t/color.t podlators test -cpan/podlators/t/devise-date.t podlators test -cpan/podlators/t/filehandle.t podlators test -cpan/podlators/t/man-empty.t podlators test -cpan/podlators/t/man-heading.t podlators test -cpan/podlators/t/man-options.t podlators test -cpan/podlators/t/man-perlio.t podlators test -cpan/podlators/t/man.t podlators test -cpan/podlators/t/man-utf8.t podlators test -cpan/podlators/t/overstrike.t podlators test -cpan/podlators/t/parselink.t podlators test -cpan/podlators/t/pod-parser.t podlators test -cpan/podlators/t/pod-spelling.t podlators test -cpan/podlators/t/pod.t podlators test -cpan/podlators/t/termcap.t podlators test -cpan/podlators/t/text-empty.t podlators test -cpan/podlators/t/text-encoding.t podlators test -cpan/podlators/t/text-options.t podlators test -cpan/podlators/t/text-perlio.t podlators test -cpan/podlators/t/text.t podlators test -cpan/podlators/t/text-utf8.t podlators test +cpan/podlators/Makefile.PL podlators Makefile.PL +cpan/podlators/t/data/basic.cap podlators test podlators test +cpan/podlators/t/data/basic.clr podlators test +cpan/podlators/t/data/basic.man podlators test +cpan/podlators/t/data/basic.ovr podlators test +cpan/podlators/t/data/basic.pod podlators test +cpan/podlators/t/data/basic.txt podlators test +cpan/podlators/t/data/perl.conf podlators test +cpan/podlators/t/data/snippets/man/cpp podlators test +cpan/podlators/t/data/snippets/man/utf8-nonbreaking podlators test +cpan/podlators/t/data/snippets/man/utf8-verbatim podlators test +cpan/podlators/t/data/snippets/README podlators test +cpan/podlators/t/data/snippets/text/cpp podlators test +cpan/podlators/t/data/termcap podlators test +cpan/podlators/t/docs/pod-spelling.t podlators test +cpan/podlators/t/docs/pod.t podlators test +cpan/podlators/t/docs/synopsis.t podlators test +cpan/podlators/t/general/basic.t podlators test +cpan/podlators/t/general/filehandle.t podlators test +cpan/podlators/t/general/pod-parser.t podlators test +cpan/podlators/t/lib/Test/Podlators.pm podlators test +cpan/podlators/t/lib/Test/RRA/Config.pm podlators test +cpan/podlators/t/lib/Test/RRA.pm podlators test +cpan/podlators/t/man/basic.t podlators test +cpan/podlators/t/man/devise-date.t podlators test +cpan/podlators/t/man/devise-title.t podlators test +cpan/podlators/t/man/empty.t podlators test +cpan/podlators/t/man/heading.t podlators test +cpan/podlators/t/man/options.t podlators test +cpan/podlators/t/man/utf8-io.t podlators test +cpan/podlators/t/parselink/basic.t podlators test +cpan/podlators/t/style/minimum-version.t podlators test +cpan/podlators/t/style/module-version.t podlators test +cpan/podlators/t/style/strict.t podlators test +cpan/podlators/t/text/basic.t podlators test +cpan/podlators/t/text/color.t podlators test +cpan/podlators/t/text/empty.t podlators test +cpan/podlators/t/text/encoding.t podlators test +cpan/podlators/t/text/options.t podlators test +cpan/podlators/t/text/overstrike.t podlators test +cpan/podlators/t/text/perlio.t podlators test +cpan/podlators/t/text/termcap.t podlators test +cpan/podlators/t/text/utf8.t podlators test cpan/podlators/VERSION podlators distribution version cpan/Pod-Parser/lib/Pod/Find.pm find POD documents in directory trees cpan/Pod-Parser/lib/Pod/InputObjects.pm Pod-Parser - define objects for input streams @@ -5612,6 +5628,8 @@ utils/perlivp.PL installation verification procedure utils/piconv.PL iconv(1), reinvented in perl utils/pl2pm.PL A pl to pm translator utils/pod2html.PL Translator to turn pod into HTML +utils/pod2man.PL Convert POD data to formatted *roff input +utils/pod2text.PL Convert POD data to formatted ASCII text utils/prove.PL The prove harness utility utils/ptardiff.PL The ptardiff utility utils/ptargrep.PL The ptargrep utility diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 343698e..2f289d1 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -933,7 +933,7 @@ use File::Glob qw(:case); }, 'podlators' => { - 'DISTRIBUTION' => 'RRA/podlators-2.5.3.tar.gz', + 'DISTRIBUTION' => 'RRA/podlators-4.03.tar.gz', 'FILES' => q[cpan/podlators pod/perlpodstyle.pod], # The perl distribution has pod2man.PL and pod2text.PL, which are diff --git a/cpan/podlators/.gitignore b/cpan/podlators/.gitignore index e2a37b5..b7e08fd 100644 --- a/cpan/podlators/.gitignore +++ b/cpan/podlators/.gitignore @@ -1,2 +1,12 @@ /pod2man* /pod2text* +/.travis.yml +/LICENSE +/MANIFEST +/MANIFEST.SKIP +/META.yml +/META.json +/NOTES +/README +/THANKS +/TODO diff --git a/cpan/podlators/Changes b/cpan/podlators/Changes new file mode 100644 index 0000000..a632a0b --- /dev/null +++ b/cpan/podlators/Changes @@ -0,0 +1,945 @@ + User-Visible podlators Changes + +podlators 4.03 (2015-12-06) + + Fix tests when POD_MAN_DATE or SOURCE_DATE_EPOCH are already set in + the environment. Thanks, Niko Tyni. (Debian Bug#807086) + + Continue general improvements and refactoring of the test suite to + make it more maintainable and clean out duplicate or unnecessary code. + +podlators 4.02 (2015-12-02) + + For versions of Perl prior to 5.11, install the modules into the Perl + core module directories, since in those versions site modules did not + take precedence over Perl core modules. Thanks, Peter Rabbitson. + (#110024) + +podlators 4.01 (2015-12-01) + + [Pod::Text::Termcap] Do not override the TERMPATH environment variable + if it's already set. This should fix the test suite with Term::Cap + 1.16 (which has a bug in termcap handling if TERMPATH doesn't point to + a valid file). Also document the manipulation of TERMPATH. + + Revert the switch to Module::Build as the build system. This creates + a circular dependency with Module::Build, since it wants a newer + version of Pod::Man than in Perl versions prior to 5.10.1. Instead, + add the new metadata to Makefile.PL and stick with a single build + system that will also work inside Perl core. + +podlators 4.00 (2015-11-28) + + Increase the version number of the package to be larger than any of + the previous version numbers of any of the modules, and change all + modules to use the same version as the overall podlators package. + Switch to a simple decimal version number to avoid complexity with + v-strings and portability to old versions of Perl. + + podlators now requires Perl 5.006 or later. All modules enable + warnings. Please report any unexpected or confusing warnings as bugs + in the bug tracker. + + [pod2man] In previous versions, the -r or --release option could be + specified without an argument and was interpreted as setting that + value to the empty string. That never made a great deal of sense, and + the original change to Perl was apparently because no one realized one + could pass the empty string as the argument value. The argument is + now mandatory, but may be the empty string, which will cause some + *roff implementations to use the system default. + + Allow any even number of characters to be specified as the quote marks + for Pod::Text and Pod::Man (and the corresponding --quotes options of + pod2text and pod2man), rather than being artificially limited to one- + or two-character quotes. The first half of the string will be used as + the left quote and the second half as the right quote. This allows + Unicode characters or groff escapes like \(lq and \(rq to be used. + (Partly addresses #103298) + + [Pod::Man] Attempt to detect if the input came from a pipe and + therefore has a completely unhelpful (and nonreproducible) source file + name, and diagnose this as an error. Document that the name option + (--name to pod2man) is required when processing POD source from + standard input. (Debian Bug#777405) + + [Pod::Man] Honor the environment variable SOURCE_DATE_EPOCH and use it + as the timestamp from which to derive the left-hand footer if the date + option is not set, overriding the timestamp of the input file. This + is primarily useful to ensure reproducible builds of the same output + file given the same souce and Pod::Man version, even when file + timestamps may not be consistent. Thanks, Niko Tyni. (Debian + Bug#801621) + + [Pod::Man] Honor the environment variable POD_MAN_DATE and use its + contents, if set, as the value of the left-hand footer if the date + option is not set, overriding the timestamp of the input file. This + was an earlier version of SOURCE_DATE_EPOCH, but has been supported in + Debian for a while and doesn't serve exactly the same purpose, so both + continue to be supported. Thanks, Niko Tyni. + + [Pod::Man] The default left-hand footer date is now based on UTC + rather than the local time zone to make the output more reproducible. + Thanks, Chris Lamb. (Debian Bug#780259) + + [Pod::Man] Simplify the preamble code for handling the F register and + index entries, and add backslashes after the braces in the preamble + code for handling the F register to avoid introducing a spurious page + break before at the first page with AT&T *roff. Thanks, Carsten + Kunze and Daphne Pfister. (#92979) + + [Pod::Man] Support setting the left-hand footer to the empty string. + + Fix documentation of the utf8 option to Pod::Man and Pod::Text, and + the corresponding -u option to pod2man and pod2text, to reflect that + Pod::Simple now autodetects Latin-1 and UTF-8 but warns. + + More clearly document the options that set values in the .TH header in + the pod2man and Pod::Man documentation. Thanks, Guillem Jover. + (#103297) + + [Pod::Text] Fix encoding handling in documents that start without an + encoding declaration and then declare an encoding partway through. + Previously, this would result in attempts to print wide characters if + there were non-ASCII characters in the document. Thanks, Magnolia K. + (#101722) + + [Pod::Text] Change the documentation to not say Pod::Text only + generates ASCII text. (#89355) + + Switch the preferred module build system to Module::Build, but still + provide a Makefile.PL file for backward compatibility and for the use + of Perl core. (#108714) + + Installation of this package no longer tries to overwrite the Pod::Man + and Pod::Text modules that come with Perl core, and instead relies on + the normal precedence rules in Perl's module search path that prefer + locally-installed modules over core modules. + + Rename NEWS to Changes to match the normal Perl convention. + + Work around a bug in Term::Cap 1.16 that caused the test suite to fail + by forcing a setting of TERMPATH to a termcap file provided by the + test suite while running tests. (#98272) + +podlators 2.5.3 (2013-10-05) + + Fix documentation of the default for the errors constructor parameter. + + Skip the empty text and man page errors tests if Pod::Simple didn't + produce any errors, which happens with the version shipped with Perl + versions prior to 5.18. Catch warnings as well as exceptions in these + tests. + +podlators 2.5.2 (2013-09-22) + + The parse_lines and parse_string_document methods in Pod::Man and + Pod::Text now set a default output file handle of STDOUT if none was + set. + + Perform document initialization even if the document is contentless. + Documents with only errors are shown as contentless but then have a + POD ERRORS section, and previously this led to internal errors because + state variables weren't properly initialized. Thanks, Andreas Koenig. + (#88724) + + Apply various optimization improvements from Dagfinn Ilmari Mannsåker. + There should be no changes in the output. (#83253) + + Fix an erroneous output_fh reference in the Pod::Man documentation. + Thanks, Andreas Koenig. (#88723) + + Fix various comment typos. Thanks, David Steinbrunner. (#85683) + + In perlpodstyle, wrap verbatim license line in POD that was over 79 + characters after the man page indentation. Thanks, Brian Gottreu and + Steve Hay. (#87440) + +podlators 2.5.1 (2013-02-27) + + Adjust the tag width tests and the list handling tests to avoid + spurious warnings from Pod::Simple about mismatched =item types. + +podlators 2.5.0 (2013-01-02) + + Support a new errors option in Pod::Man and Pod::Text. Valid values + are die, stderr, pod, and none. Convert the stderr option to the + errors option with value stderr. Add the corresponding --errors + option to pod2man and pod2text. (#39007) + + Add a new nourls option to Pod::Man and Pod::Text to suppress the URL + from L<> formatting codes that contain anchor text, and add the + corresponding --nourls option to pod2man and pod2text. (#62210) + + [Pod::Man] Extend a small-caps section through the punctuation that + commonly appears in license disclaimers so that small caps isn't + turned on and off at the boundaries of every word, producing + unreadable *roff. + + [Pod::Man] Collapse consecutive whitespace and remove newlines in + index term text. Thanks, Kevin Ryde. (#82332) + +podlators 2.4.2 (2012-06-01) + + Remove the test of a POD document without an encoding. We previously + tested that this interpreted the document as ISO 8859-1, but + Pod::Simple behavior has changed so that the test started failing, + plus Pod::Simple now warns about a missing =encoding. (#77553) + +podlators 2.4.1 (2012-05-30) + + Fix detection of PerlIO UTF-8 handling by requesting details on PerlIO + layers to look for the UTF8 flag, which is not a layer in its own + right. Thanks, Leon Timmermans. (#76440) + + [Pod::Man] Fix handling of the F register when processing multiple + documents at once. .IX will now continue to be defined for documents + after the first, and the page number will not be reset at the start of + each document. Thanks to Nicholas Clark for the analysis. (perl + #103202) + + In the pod2man and pod2text driver scripts, report an error and remove + the empty output file if the input file had no content (if it did not + exist, for example). Exit with non-zero status if there were any + errors. Track contentless status inside Pod::Man and Pod::Text. + Thanks, Dmitry Smirnov. (#75099) + + Override parse_file in Pod::Man and Pod::Text to set output_fh to + STDOUT if it is not already set. (#77530) + + [Pod::Man] Format the URL text before comparing it to the anchor when + deciding whether to show separate anchor text. This avoids spurious + mismatches between the URL target and anchor text because the anchor + text was already formatted and has (for example) hyphens escaped. + (#76396) + + [Pod::Man] Define \*(C` and \*(C' to the empty string when processed + through troff to avoid groff warnings. Avoid warnings from checking + the F register (used to enable index output) when running under groff. + Patch from Bjarni Ingi Gislason. (#75434) + + [Pod::Man] Fix the ASCII fallback string for the AE ligature to use + the string that was actually defined. + + Stop removing pod2man and pod2text on make realclean, left over from + when they were generated from *.PL scripts. (#74848) + + Embed the PID in file names generated by the test suite to avoid + conflicts when running the test suite in parallel. (#62083) + +podlators 2.4.0 (2010-10-10) + + Switch UTF-8 output encoding to use Encode directly instead of adding + a PerlIO layer. Probe the PerlIO layers with protection for Perl + versions without PerlIO and set a flag indicating whether we also need + to encode, to avoid double-encoding when writing to a file handle that + is already doing UTF-8 encoding via PerlIO. + + [Pod::Man] Do not strip escaped trailing whitespace such as that + created by S<> at the end of a line, since the backslash is then taken + by *roff as escaping the newline. Thanks, Kevin Ryde. (#61781) + + Add perlpodstyle, a new style guide for POD documentation, split + mostly from the NOTES section of the pod2man man page. Remove the + NOTES section of pod2man's documentation. + + Convert pod2man and pod2text from scripts generated from *.PL files to + simple scripts, relying on ExtUtils::MakeMaker to handle replacing the + #! path during the package build. + +podlators 2.3.1 (2010-02-17) + + Increase $VERSION in Pod::Text::Color and Pod::Text::Termcap, missed + in the previous release. + +podlators 2.3.0 (2009-12-28) + + Support anchor text for L<> links of type URL by rendering the anchor + text and then the URL in angle brackets. Now requires Pod::Simple + 3.06 or later. + + [Pod::Text] When formatting item tags, use the width of the tag + without formatting codes. This fixes formatting issues with + Pod::Text::Color, Pod::Text::Termcap, and Pod::Text::Overstrike. + + [Pod::Man] Suppress all formatting in the NAME section to avoid + confusing lexgrog and fix mishandling of C<> markup in NAME. Clarify + in the pod2man documentation that no markup should be used in the NAME + section of a manual page. Thanks, Niko Tyni. + + [Pod::Man] Escape backslashes in the quoted text of .IX macros + generated from X<> formatting code. + + [Pod::Man] Avoid using POSIX::strftime because POSIX requires Fcntl, + which is an XS module, and hence can't build in miniperl. This allows + ExtUtils::MakeMaker to build as a normal module in Perl core. Thanks, + Michael G Schwern. + + [Pod::ParseLink] Allow anchor text for URLs. Fix the check of the + anchor text to not think no text was provided when the text was "0". + + Remove the temporary files created by the test suite in a loop to + ensure that all versions are deleted on VMS. Thanks, John + E. Malmberg. + + Convert the test suite to Test::More. + +podlators 2.2.2 (2009-01-17) + + [Pod::Text] Correctly handle indentation of verbatim paragraphs that + contain lines with only whitespace. Thanks, Renee Baecker. + +podlators 2.2.1 (2008-12-19) + + [Pod::Text] In the legacy pod2text method, properly initialize the + output file handle when called with only one argument. Thanks, + Michael G Schwern. + + Fix the t/text-encoding.t test on Windows by setting raw encoding on + the output file handle. Thanks, Steve Hay. + +podlators 2.2.0 (2008-10-05) + + [Pod::Text] Try to preserve the previous behavior of setting the + output encoding to match the input encoding if utf8 is not set, but + support forcing an output encoding of utf8 with the utf8 option. Add + a corresponding --utf8 option to pod2text. Document the PerlIO + limitations of the current utf8 support. + + Quote all module version numbers to preserve any trailing zeroes. + + Skip spelling tests unless RRA_MAINTAINER_TESTS is set in the + environment. Spelling dictionaries are too different between systems. + +podlators 2.1.4 (2008-09-21) + + Support aspell as a spell checker for spelling tests. + + Skip UTF-8 tests for versions of Perl prior to 5.8. + +podlators 2.1.3 (2008-09-14) + + Add a stderr option to Pod::Man and Pod::Text that sends POD errors to + standard error instead of adding a POD ERRORS section to the generated + documentation. Add a corresponding --stderr option to pod2man and + pod2text. + + [Pod::Man] Stop remapping the code point for non-breaking space. This + should not be necessary and was wrong when the string from Pod::Simple + was a character string and not a byte string. It was papering over a + bug in setting the encoding of an input POD file. + + In the test suite, properly set encoding on file descriptors so that + the UTF-8 tests are handled with the correct encoding. Test that + non-breaking spaces don't interfere with hyphen detection. + +podlators 2.1.2 (2008-07-20) + + [Pod::Man] Use .SS instead of a local .Sh macro for subheadings, and + stop defining .Sh. + + [Pod::Man] Remap ISO 8850-1 non-breaking spaces produced by + Pod::Simple to the corresponding UTF-8 code point for UTF-8 output. + + Add a test for spelling and fix multiple spelling and markup errors. + +podlators 2.1.1 (2008-07-03) + + [Pod::Man] Do not include the accent mark definitions in generated + *roff if the output is in UTF-8. + + Fix the test for S<> handling with all whitespace to not give a + spurious failure with Pod::Simple 3.06. + +podlators 2.1.0 (2008-06-01) + + Add a new utf8 option to Pod::Man. If set, do not convert non-ASCII + characters to *roff escapes or X, and instead output literal UTF-8 + characters. Add a new --utf8 option to pod2man. + + [Pod::Man] Match text between \f(CW and \fP or \fR in headings + non-greedily to get the fonts right with multiple C<> formatting + codes. + + [Pod::Man] Protect .Sh text against leading *roff control characters + since some *roff implementations apparently "look through" font + escapes at the beginning of lines. + + [Pod::Man] Escape backslashes separately from processing non-ASCII + characters and do that, dash escaping, and underscore adjustment + before processing non-ASCII characters. Otherwise, we escape the + hyphen in eth characters. + +podlators 2.0.6 (2007-11-28) + + [Pod::Man] Escape apostrophes and backquotes in verbatim and C<> text. + + [Pod::Man] Define the IX macro to empty rather than leaving it + undefined when indexing is not requested to eliminate warnings when + groff warnings are enabled. + + [Pod::Man] Simplify the logic to skip lib directories to avoid Perl + warnings and unnecessary checks. + +podlators 2.0.5 (2006-09-16) + + Accept and mostly ignore a hash of options as the first option to + parse_from_file. Support an option of -cutting and configure + Pod::Simple to assume the POD has already started. This is for + backward compatibility with Pod::Parser. + + [Pod::Man] Recognize more uses of hyphens in regular English text and + allow them to be regular hyphens. + + [Pod::Man] Turn off hyphenation and, for nroff, justification after + the .TH macro since that's where groff turns them on. + + [Pod::Man] Stop mapping vertical bar to \(bv, since it produces + Unicode characters where they aren't desirable. Remove the preamble + reference to the Tr string, which was never defined. + +podlators 2.0.4 (2006-02-19) + + [Pod::Man] Pod::Simple's source_filename method returns garbage if + we're parsing from a file handle, so use the current time if stating + the returned input file fails. + + Add parse_from_filehandle methods to Pod::Man and Pod::Text for + backward compatibility with the earlier versions based on Pod::Parser. + +podlators 2.0.3 (2006-01-28) + + In the test suite, pass in a file handle for Pod::Simple output and + then close it afterwards. This works around Pod::Simple leaving file + handles open and preventing removal of temporary files on Windows. + This is temporary until a new Pod::Simple release offers a better + approach. + +podlators 2.0.2 (2006-01-25) + + In the parse_from_file method, flush the output file handle rather + than closing it. Closing it is unexpected and could break callers. + + In Pod::Text::Termcap and Pod::Text::Color, Use additional temporary + variables to avoid ${char}{0,$width}, which only works in very recent + Perls. + + Fix man test that needs an ISO 8859-1 encoding. + +podlators 2.0.1 (2006-01-20) + + Call reinit before calling the Pod::Simple parse_from_file method to + preserve the previous capability of reusing the same Pod::Man object + for multiple documents. Close the output file handle after + Pod::Simple returns to force the output to flush. + + [Pod::Text] The legacy pod2text method was broken because + Pod::Simple's parse_file method only takes one argument. Pass the + second argument to output_fh instead. + + Fix portability issues with Perl 5.005. + + Use a single object for all conversions in pod2man and pod2text for a + minor speedup. + +podlators 2.00 (2005-11-28) + + Rewrite all modules and driver scripts to use Pod::Simple instead of + Pod::Parser. The output should be identical except that C<> with no + content outputs quotes for Pod::Text-based parsers, E<> handling is + improved, and various small bugs have been fixed. Thanks, Sean Burke. + + [pod2man] Create a new parser for each file since Pod::Simple parsers + are not reusable. + + [pod2text] Add support for multiple pairs of input and output files, + similar to pod2man. + + [Pod::Man] Strip vendor_perl as well as site_perl when determining the + man page title. Thanks, Alexey Tourbin. + + Fall back on fullstop_space_harden if preserve_whitespace is not + available, for compatibility with older Pod::Simple. + + Count text lengths correctly when wrapping in Pod::Text::Color and + Pod::Text::Termcap when there are multiple adjacent escape sequences. + Use a temporary variable to make the regex clearer. + + Change section ordering in some documentation following perl5-porters + discussion. + + Remove obsolete documentation caution against enclosing URLs in L<>. + + Force a particular terminal configuration to get reliable results in + the Pod::Text::Termcap test suite. + + Enhance the test suite substantially with additional tests from Sean + Burke. + +podlators 1.27 (2003-07-09) + + [Pod::Text::Termcap] Handle the case where the HOME environment + variable isn't set, mostly for Windows. + +podlators 1.26 (2003-03-30) + + [Pod::Man] Make sure the module returns 1 to keep Perl 5.8.0 happy. + +podlators 1.25 (2003-01-04) + + [Pod::Man] Track the type of items in an =over list and only map + asterisk to a real bullet if the item type is bullet. Fix a bug where + =item 0 was treated the same as =item with no tag. + +podlators 1.24 (2002-08-03) + + Support a margin option in Pod::Text and use it to set the initial + indentation level. Fix handling of the colon in the margin when the + alt format is enabled. Add a new -m option to pod2text to set the + margin. + +podlators 1.23 (2002-07-14) + + Clean up some old-style L<> links in pod2text that were workarounds + for fixed bugs in Pod::Man and Pod::Text. + + Add a pointer to the module web site in the documentation. + +podlators 1.22 (2002-06-23) + + Tweak the regex for matching numbers in C<> to not consider a single + period to be a number, which affects whether surrounding quotes are + added. + +podlators 1.21 (2002-02-16) + + [Pod::Text::Overstrike] Fix the regex for wrapping lines to use a + non-backtracking section for each character to avoid exponential + backtracking on lines with a lot of markup. + +podlators 1.20 (2002-01-27) + + [Pod::Text::Overstrike] Use [\b] instead of \cH in regexes to match + backspaces, for platforms that use EBCDIC where \b and \cH aren't the + same character. + +podlators 1.19 (2002-01-02) + + [Pod::Man] Do not apply guesswork to the text inside the NAME section, + since it may confuse programs like catman. Do not output .UC after + the .TH macro. catman doesn't like anything between the NAME section + and .TH, and .UC doesn't appear to actually do anything on any modern + platform. + + [Pod::Man] Correctly handle a verbatim paragraph right before a + heading. + + [Pod::Text] Fix error reporting for unknown sequences and unknown + commands to be more consistent and update the documentation to match. + + [Pod::Text::Termcap] Terminal speed should be a number, not a string. + Also fall back on a hard-coded terminal speed if getospeed doesn't + work. + +podlators 1.18 (2001-11-30) + + [Pod::Text::Termcap] Fall back on a hard-coded terminal speed if + POSIX::Termios doesn't work, such as on VMS. + + [Pod::ParseLink] Escape L<> in the NAME section of the documentation. + +podlators 1.17 (2001-11-27) + + [Pod::Man] Return references to arrays rather than references to + scalars for already-formatted text. There are too many odd bugs with + scalar references in older versions of Perl. No longer bless + references since the current Pod::Parser doesn't require it. Now + requires Pod::Parser 1.13 or later. + + Change all documentation references from interior sequences to + formatting codes to match the terminology of perlpodspec. + + [Pod::Text::Termcap] Fix an incorrect heading in the documentation. + +podlators 1.16 (2001-11-26) + + Use an @INC path of ../lib and a new function to find source files for + when the module test suite is being run as part of the Perl core + tests. + +podlators 1.15 (2001-11-26) + + [Pod::Text::Termcap] Wrap the call to Term::Cap with eval because it + throws exceptions if the terminal can't be found. Fall back on the + ANSI escape sequences rather than dying if the termcap entry is + incomplete. Note the fallback in the documentation. + + Delete the lax option in pod2man before calling Pod::Man and document + that it is obsolete and podchecker should be used instead. + + Improve the pod2man and Pod::Man documentation to refer to podchecker, + add discussion of guesswork and 8-bit character handling, and mention + the fragility of the heuristics. + +podlators 1.14 (2001-11-23) + + [Pod::Text::Overstrike] Interpolate before formatting to prevent the + formatting codes from ending up in the output, and strip any existing + formatting before applying new formatting. + + [Pod::Man] Use font escapes rather than .I to avoid strange problems + with quoting, at least for =head3. =head1 and =head2 likely still + have troubles with repeated double-quotes. Fix all fixed-width font + changes for nroff, not just the simple ones, and don't hard-code the + value of any fixed-width font. + + [Pod::Man] Improve and simplify the handling of indentation shifts. + + [Pod::Man] When intuiting the man page name for a module, also strip + $^O by itself as a directory component even when not preceeded or + followed by a dash and other text. + + [Pod::Text] Fix handling of =for or =begin/=end in =item paragraphs. + Default to a tag of "*" if none is given. Insert some whitespace for + empty item paragraphs to keep them from blending into subsequent text. + + [Pod::ParseLink] Fix a bug in the handling of link text that's + entirely in quotes. Double quotes are now only removed around + sections, not names. Text enclosed entirely in double quotes is + interpreted as a link to a section. + + Fix various -w warnings. + +podlators 1.13 (2001-11-15) + + Fix -w warnings with hyphen handling. + +podlators 1.12 (2001-11-15) + + Add a new module, Pod::ParseLink, to parse the contents of an L<> + sequence. Use it everywhere. Defer expansion of formatting escapes + inside L<> until after L<> is processed. Surround URLs with angle + brackets in the output. + + Remove the special handling of consecutive L</section> links. + + Support E<apos>, E<nbsp>, and E<shy>. + + [Pod::Man] Completely rewrite the name parsing code for modules to use + File::Spec. In the process, fix a bug in dealing with the new + three-component version number directories. Swap the order of date + and release in the .TH line to better comply with the man macro + documentation. + + [Pod::Man] Rewrite the handling of dashes and hyphens. Be much more + conservative about which hyphens are turned into dashes, and make all + hyphens non-breaking unless we can be fairly sure that they're inside + normal words. + + [Pod::Man] Handle indentation of =item-less =over/=back blocks. + + [Pod::Man] Include the version of Pod::Parser in the header. + + [Pod::Man] Only try to determine a module name from the path for the + man page name if the man page we're generating is in section 3. + + [Pod::Man] No longer insert a timestamp into the generated man page; + it just causes unnecessary differences and merge conflicts. + + [Pod::Text] Inside S<>, convert all whitespace to non-breaking spaces, + not just spaces. + + Add the --name option to pod2man and document the name option in + Pod::Man. + + [Pod::Man] Use L<> for all man page references in the documentation + that should be highlighted. Switch the rest to bold versions of the + program name. Change func(n) to func(3) in the example of things that + are automatically formatted so that it will be formatted. Remove from + BUGS the note that some of the path mangling assumes Unix directory + separators. Don't give anchor text for L<> links that no longer + require it. + + Update the documentation in Pod::Text and subclasses to use + now-allowable POD constructs like C<< >>. Don't escape angle brackets + that don't require escaping. Don't give anchor text for L<> links + that no longer require it. + +podlators 1.11 (2001-10-20) + + Add the code option to Pod::Text to include the non-POD text of the + input file and document it. Add the corresponding --code flag to + pod2text. + + Converted warnings for unknown escapes, unknown sequences, and + unmatched =back into warnings from carps and include the file and line + number of the POD data instead of the Perl code. + + [Pod::Text::Overstrike] Better handle the case where a highlighted + portion of text ends a line. + + Add --verbose flag to pod2man to print out each output file as it is + generated. + + [Pod::Man] Fix *roff syntax error from using .if with .el during quote + handling. + + [Pod::Man] Fix output for X<> sequences. + +podlators 1.10 (2001-07-10) + + Add heuristics to decide whether to quote the argument of C<>. + + [Pod::Man] Remove font changes for nroff with C<> to work around a bug + in the Solaris 2.6 version of nroff's handling of \fP in headings. No + longer add an extra level of quoting for =item; it isn't necessary. + + [Pod::Man] Remove the logic turning PI into a pretty pi character. It + produces too many false positives. + + [Pod::Man] Remove the definition .Ip from the preamble. Remove .bd B + 3 from the preamble; this isn't part of the accent mark definitions + but instead changes the way bolding is done, confusing some other + translators. Use .IP instead of .Ip everywhere. + + In the POD style section of pod2man, add a description of the + COPYRIGHT AND LICENSE section, add a mention of a mailing list in SEE + ALSO, and mention that large logs are better kept separate from + HISTORY in the description of a standard manual page. + + Standardize on COPYRIGHT AND LICENSE for licensing information across + all of the package documentation. + +podlators 1.09 (2001-04-09) + + [Pod::Man] Fine-tune formatting guesswork. Don't allow colons after + sequences to put in small caps since they're already handled by being + rolled into the sequence and were causing weird things to happen in + references to functions. Allow small caps before an open paren. + Teach the handling of functions and manual page references about small + caps escapes, and be pickier about what constitutes a manual page + reference. + + [Pod::Text] Fix again the incorrect mappings for E<Iacute> and + E<iacute>, and this time for E<Igrave> and E<igrave> too. Thanks, + Sean Burke. + +podlators 1.08 (2001-02-09) + + Output anything that looks like a URL verbatim rather than + interpreting it as a manual page reference. + +podlators 1.07 (2001-01-16) + + [Pod::Man] Remove newlines from heading contents. + + [Pod::Man] Quote the file name in the man page header if it contains + spaces. + +podlators 1.06 (2000-12-25) + + New Pod::Text::Overstrike contributed by Joe Smith. Add -o or + --overstrike to pod2text to use it for formatting. + + [Pod::Man] =item text requires another level of quoting of double + quotes, which was already present but not working for C<> text because + it was in the wrong order. Fix. + +podlators 1.05 (2000-11-18) + + Change the default quote character for C<> to be double quotes rather + than matched left/right single quotes. + + Add support for =head3 and =head4. + + Allow pod2man to take multiple pairs of input and output files on the + command line to decrease the time that it takes to process all of + Perl's documentation. + + [Pod::Man] Switch \*C` and \*C' sequences from C<> as well as literal + double-quotes if the quote character contains double quotes. Not + doing this was causing weird output on some systems in some + circumstances. Use a separate quote mapping function for text blocks + to work around a Solaris 2.6 nroff bug. + + [Pod::Man] Use \fP to switch back to the default font rather than + changing back to \fR so that font changes work correctly in headings + using a different font. Sprinkle \fP through all font changes so that + the default font is always the "previous" font so that the above + works. + +podlators 1.04 (2000-10-09) + + [Pod::Man] Output .PD 0 and .PD around repeated =item tags so that + they're formatted without intervening blank lines, improving + formatting of, e.g., perlfunc.pod. + + [Pod::Text] Fix incorrect mappings for E<Iacute> and E<iacute>. + Thanks, Sean Burke. + +podlators 1.03 (2000-09-03) + + Support configuration of what quote characters to use around C<> + text. Add a new --quotes option to pod2man and pod2text. + + Report nicer errors when encountering an unknown paragraph command. + + Add support for E<sol> and E<verbar>. + + [Pod::Man] Fix the regex for stripping bullets from index entries so + that it doesn't strip a leading "o". + + [Pod::Man] In the prelude, terminate the .IX definition with ".." + instead of ". ." for groff. + + [Pod::Text] The pod2text method, when given two arguments, was + incorrectly assigning to $_[0], causing other sane problems. Fix. + +podlators 1.02 (2000-04-25) + + [Pod::Man] Fix hyphens and underscores only in literal C<> content, + fixing mangling of hyphens and underscores that are the result of + other sequence processing. + +podlators 1.01 (2000-03-30) + + Install the modules in the Perl core area if the Perl version is 5.6.0 + or higher. + + [Pod::Man] Strip a leading lib/ from a file name for module man pages, + needed for ExtUtils::MakeMaker. + +podlators 1.00 (2000-03-16) + + This has now been incorporated into Perl core as pod2man and pod2text. + Rename pod2roff to pod2man accordingly. + + Hide "-" arguments to the driver scripts from Getopt::Long so that + Pod::Parser will interpret them as STDIN or STDOUT. + + [Pod::Man] Protect any line that starts with a backlash and leading + periods following font escapes. Replace embedded newlines in titles + with spaces. + + [Pod::Man] Use "perl v5.6.0" instead of "perl 5.6, patch 0" for the + default release string, handle both pre-5.6 and post-5.6 version + numbering schemes. Zero-pad the month and day in the modification + date. Avoid warnings when center, date, or release aren't set. + + [Pod::Man] Allow for two-character fonts. + + [Pod::Man] Work around a Perl 5.6 bug affecting L<> text generation. + Fix Z<> handling with current Perl. + + [Pod::Man] Make filename munging safe even when $* is set and the + filenames contain embedded newlines. + + [Pod::Man] Fix the regex to concatenate multiple L<> section links and + fix whitespace handling for it around "and". + + [Pod::Text] Add the remaining ISO 8859-1 HTML entities. Thanks, Tim + Jenness. + + [pod2man] Change Getopt::Long config from bundling to + bundling_override so that options like -center work for backwards + compatibility. + + [pod2text] Don't default to Pod::Text::Termcap even if STDOUT is a tty + until it works right on Windows, VMS, etc. + +podlators 0.08 (1999-10-07) + + Add support for numeric E<> escapes. + + [Pod::Man] Fix doubled quotes in links to sections. + + [Pod::Text] Export pod2text for backwards compatibility. + + [pod2roff] Fix argument passing to Pod::Parser to use an expanded hash + instead of a hash reference. + +podlators 0.07 (1999-09-25) + + [Pod::Man] Change the parsing model so that, rather than deferring E<> + escapes until just before output, *roff output is generated by the + interior sequence parsing and the result is passed up the parse trees + as Pod::Man::String objects instead of scalars to mark the output as + already processed. In the process, clean up what *roff escaping and + guesswork is applied where, and clean up the whole process of applying + guesswork. Improve the escaping of dashes and hyphens to use a single + pass. + + [Pod::Man] Improve the small caps guesswork to allow for more cases, + including several adjacent all caps words. + + [Pod::Man] Fix some bugs with the link text generation for man page + references. + + [Pod::Man] Improve the index generation slightly. + + [Pod::Man] Fix several places that were clobbering the caller's $_. + +podlators 0.06 (1999-09-20) + + Add pod2roff and Pod::Man, which convert POD to man pages. + + Rename pod2txt to pod2text and Pod::PlainText to Pod::Text. + + [Pod::Text] =begin text blocks are now output verbatim rather than + interpreted as POD. + + [Pod::Text] Document the oddity with Ctrl-As as a restriction. + + [Pod::Text] Always treat =for paragraphs as verbatim text. + + [Pod::Text::Color] Add a BUGS note that the implementation is rather + incomplete, and document the reliance on Term::ANSIColor. + + [pod2text] Add an explicit check for Term::ANSIColor if -c was given. + + [Pod::Man] Add a BUGS entry for index entries for stuff in NAME. + + [Pod::Text] Document two more diagnostics and a cross-reference to + pod2text. + + [pod2text] Add documentation of -h and expand the DIAGNOSTICS section + to include directly-generated error messages and the most common + Getopt::Long message. + +podlators 0.05 (1999-09-18) + + [Pod::Text::Color] Rename Pod::SimpleText to Pod::PlainText in one + more place in the documentation. + +podlators 0.04 (1999-08-30) + + Use File::Spec during the build to build file paths for portability, + and remove the dist setting since current Perls get this right. + + Fix the #! line in pod2txt during the build. + +podlators 0.03 (1999-08-30) + + Rename Pod::SimpleText to Pod::PlainText. + + [pod2txt] Document that Pod::Text::Termcap is used by default if + STDOUT is a tty. Clarify the documentation of --loose. + +podlators 0.02 (1999-07-29) + + Rename the package itself from Pod::SimpleText to podlators. + + [Pod::SimpleText] Add a pod2text function for backwards compatibility. + + [Pod::SimpleText] Properly wrap multiline =item tags. + + [Pod::SimpleText] Fix a spurious space with =for text commands. + + [Pod::SimpleText] Check the content of sequences against the empty + string specifically rather than testing truth so that it does the + right thing with 0. + + [Pod::SimpleText] Process sequences for =head headings. + +podlators 0.01 (1999-06-12) + + Initial release with pod2txt and Pod::SimpleText. diff --git a/cpan/podlators/Makefile.PL b/cpan/podlators/Makefile.PL new file mode 100644 index 0000000..5db6c15 --- /dev/null +++ b/cpan/podlators/Makefile.PL @@ -0,0 +1,13 @@ +use strict; +use warnings; + +use ExtUtils::MakeMaker; + +WriteMakefile( + NAME => 'Pod', + DISTNAME => 'podlators', + VERSION_FROM => 'lib/Pod/Man.pm', + EXE_FILES => [ 'bin/pod2man', 'bin/pod2text' ], + AUTHOR => 'Russ Allbery ([email protected])', + ABSTRACT => 'Convert POD data to various other formats' +); diff --git a/cpan/podlators/scripts/pod2man.PL b/cpan/podlators/bin/pod2man similarity index 76% rename from cpan/podlators/scripts/pod2man.PL rename to cpan/podlators/bin/pod2man index 6af3474..203e75f 100644 --- a/cpan/podlators/scripts/pod2man.PL +++ b/cpan/podlators/bin/pod2man @@ -1,49 +1,16 @@ #!perl -use Config; -use File::Basename qw(&basename &dirname); -use Cwd; - -# List explicitly here the variables you want Configure to -# generate. Metaconfig only looks for shell variables, so you -# have to mention them as if they were shell variables, not -# %Config entries. Thus you write -# $startperl -# to ensure Configure will look for $Config{startperl}. - -# This forces PL files to create target in same directory as PL file. -# This is so that make depend always knows where to find PL derivatives. -$origdir = cwd; -chdir dirname($0); -$file = basename($0, '.PL'); -$file .= '.com' if $^O eq 'VMS'; - -open OUT,">$file" or die "Can't create $file: $!"; - -print "Extracting $file (with variable substitutions)\n"; - -# In this section, perl variables will be expanded during extraction. -# You can use $Config{...} to use Configure variables. - -print OUT <<"!GROK!THIS!"; -$Config{startperl} - eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}' - if \$running_under_some_shell; -!GROK!THIS! - -# In the following, perl variables are not expanded during extraction. - -print OUT <<'!NO!SUBS!'; - # pod2man -- Convert POD data to formatted *roff input. # -# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013 -# Russ Allbery <[email protected]> +# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015 +# Russ Allbery <[email protected]> # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. -require 5.004; +use 5.006; +use strict; +use warnings; use Getopt::Long qw(GetOptions); use Pod::Man (); @@ -66,7 +33,7 @@ Getopt::Long::config ('bundling_override'); GetOptions (\%options, 'center|c=s', 'date|d=s', 'errors=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s', 'fixedbolditalic=s', 'help|h', 'lax|l', 'name|n=s', 'nourls', 'official|o', 'quotes|q=s', - 'release|r:s', 'section|s=s', 'stderr', 'verbose|v', 'utf8|u') + 'release|r=s', 'section|s=s', 'stderr', 'verbose|v', 'utf8|u') or exit 1; pod2usage (0) if $options{help}; @@ -124,7 +91,7 @@ pod2man - Convert POD data to formatted *roff input pod2man [B<--center>=I<string>] [B<--date>=I<string>] [B<--errors>=I<style>] [B<--fixed>=I<font>] [B<--fixedbold>=I<font>] [B<--fixeditalic>=I<font>] [B<--fixedbolditalic>=I<font>] [B<--name>=I<name>] [B<--nourls>] - [B<--official>] [B<--quotes>=I<quotes>] [B<--release>[=I<version>]] + [B<--official>] [B<--quotes>=I<quotes>] [B<--release>=I<version>] [B<--section>=I<manext>] [B<--stderr>] [B<--utf8>] [B<--verbose>] [I<input> [I<output>] ...] @@ -169,16 +136,18 @@ complete information. =item B<-c> I<string>, B<--center>=I<string> -Sets the centered page header to I<string>. The default is "User -Contributed Perl Documentation", but also see B<--official> below. +Sets the centered page header for the C<.TH> macro to I<string>. The +default is "User Contributed Perl Documentation", but also see +B<--official> below. =item B<-d> I<string>, B<--date>=I<string> -Set the left-hand footer string to this value. By default, the modification -date of the input file will be used, or the current date if input comes from -C<STDIN>. +Set the left-hand footer string for the C<.TH> macro to I<string>. By +default, the modification date of the input file will be used, or the +current date if input comes from C<STDIN>, and will be based on UTC (so +that the output will be reproducible regardless of local time zone). -=item B<-errors>=I<style> +=item B<--errors>=I<style> Set the error handling style. C<die> says to throw an exception on any POD formatting error. C<stderr> says to report errors on standard error, @@ -224,16 +193,23 @@ Accepted for backward compatibility; this option no longer does anything. =item B<-n> I<name>, B<--name>=I<name> -Set the name of the manual page to I<name>. Without this option, the manual -name is set to the uppercased base name of the file being converted unless -the manual section is 3, in which case the path is parsed to see if it is a -Perl module path. If it is, a path like C<.../lib/Pod/Man.pm> is converted -into a name like C<Pod::Man>. This option, if given, overrides any -automatic determination of the name. +Set the name of the manual page for the C<.TH> macro to I<name>. Without +this option, the manual name is set to the uppercased base name of the +file being converted unless the manual section is 3, in which case the +path is parsed to see if it is a Perl module path. If it is, a path like +C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>. This +option, if given, overrides any automatic determination of the name. + +Although one does not have to follow this convention, be aware that the +convention for UNIX man pages for commands is for the man page title to be +in all-uppercase, even if the command isn't. -Note that this option is probably not useful when converting multiple POD -files at once. The convention for Unix man pages for commands is for the -man page title to be in all-uppercase even if the command isn't. +This option is probably not useful when converting multiple POD files at +once. + +When converting POD source from standard input, this option is required, +since there's otherwise no way to know what to use as the name of the +manual page. =item B<--nourls> @@ -259,24 +235,27 @@ Perl release, if B<--center> is not also given. Sets the quote marks used to surround CE<lt>> text to I<quotes>. If I<quotes> is a single character, it is used as both the left and right -quote; if I<quotes> is two characters, the first character is used as the -left quote and the second as the right quoted; and if I<quotes> is four -characters, the first two are used as the left quote and the second two as -the right quote. +quote. Otherwise, it is split in half, and the first half of the string +is used as the left quote and the second is used as the right quote. I<quotes> may also be set to the special value C<none>, in which case no quote marks are added around CE<lt>> text (but the font is still changed for troff output). -=item B<-r>, B<--release> +=item B<-r> I<version>, B<--release>=I<version> + +Set the centered footer for the C<.TH> macro to I<version>. By default, +this is set to the version of Perl you run B<pod2man> under. Setting this +to the empty string will cause some *roff implementations to use the +system default value. -Set the centered footer. By default, this is the version of Perl you run -B<pod2man> under. Note that some system an macro sets assume that the -centered footer will be a modification date and will prepend something like -"Last modified: "; if this is the case, you may want to set B<--release> to -the last modified date and B<--date> to the version number. +Note that some system C<an> macro sets assume that the centered footer +will be a modification date and will prepend something like "Last +modified: ". If this is the case for your target system, you may want to +set B<--release> to the last modified date and B<--date> to the version +number. -=item B<-s>, B<--section> +=item B<-s> I<string>, B<--section>=I<string> Set the section for the C<.TH> macro. The standard section numbering convention is to use 1 for user commands, 2 for system calls, 3 for @@ -314,10 +293,11 @@ supported by many implementations and may even result in segfaults and other bad behavior. Be aware that, when using this option, the input encoding of your POD -source must be properly declared unless it is US-ASCII or Latin-1. POD -input without an C<=encoding> command will be assumed to be in Latin-1, -and if it's actually in UTF-8, the output will be double-encoded. See -L<perlpod(1)> for more information on the C<=encoding> command. +source should be properly declared unless it's US-ASCII. Pod::Simple will +attempt to guess the encoding and may be successful if it's Latin-1 or +UTF-8, but it will warn, which by default results in a B<pod2man> failure. +Use the C<=encoding> command to declare the encoding. See L<perlpod(1)> +for more information. =item B<-v>, B<--verbose> @@ -378,21 +358,15 @@ Perl core distribution as of 5.6.0. =head1 AUTHOR -Russ Allbery <[email protected]>, based I<very> heavily on the original +Russ Allbery <[email protected]>, based I<very> heavily on the original B<pod2man> by Larry Wall and Tom Christiansen. =head1 COPYRIGHT AND LICENSE -Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013 Russ -Allbery <[email protected]>. +Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, +2015 Russ Allbery <[email protected]>. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =cut -!NO!SUBS! - -close OUT or die "Can't close $file: $!"; -chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; -exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; -chdir $origdir; diff --git a/cpan/podlators/scripts/pod2text.PL b/cpan/podlators/bin/pod2text similarity index 83% rename from cpan/podlators/scripts/pod2text.PL rename to cpan/podlators/bin/pod2text index f1acdbe..9394f0f 100644 --- a/cpan/podlators/scripts/pod2text.PL +++ b/cpan/podlators/bin/pod2text @@ -1,44 +1,9 @@ #!perl -use Config; -use File::Basename qw(&basename &dirname); -use Cwd; - -# List explicitly here the variables you want Configure to -# generate. Metaconfig only looks for shell variables, so you -# have to mention them as if they were shell variables, not -# %Config entries. Thus you write -# $startperl -# to ensure Configure will look for $Config{startperl}. - -# This forces PL files to create target in same directory as PL file. -# This is so that make depend always knows where to find PL derivatives. -$origdir = cwd; -chdir dirname($0); -$file = basename($0, '.PL'); -$file .= '.com' if $^O eq 'VMS'; - -open OUT,">$file" or die "Can't create $file: $!"; - -print "Extracting $file (with variable substitutions)\n"; - -# In this section, perl variables will be expanded during extraction. -# You can use $Config{...} to use Configure variables. - -print OUT <<"!GROK!THIS!"; -$Config{startperl} - eval 'exec $Config{perlpath} -S \$0 \${1+"\$@"}' - if \$running_under_some_shell; -!GROK!THIS! - -# In the following, perl variables are not expanded during extraction. - -print OUT <<'!NO!SUBS!'; - # pod2text -- Convert POD data to formatted ASCII text. # -# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013 -# Russ Allbery <[email protected]> +# Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015 +# Russ Allbery <[email protected]> # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -46,14 +11,14 @@ print OUT <<'!NO!SUBS!'; # The driver script for Pod::Text, Pod::Text::Termcap, and Pod::Text::Color, # invoked by perldoc -t among other things. -require 5.004; +use 5.006; +use strict; +use warnings; use Getopt::Long qw(GetOptions); use Pod::Text (); use Pod::Usage qw(pod2usage); -use strict; - # Clean up $0 for error reporting. $0 =~ s%.*/%%; @@ -174,12 +139,7 @@ code left intact. Format the output with ANSI color escape sequences. Using this option requires that Term::ANSIColor be installed on your system. -=item B<-i> I<indent>, B<--indent=>I<indent> - -Set the number of spaces to indent regular text, and the default indentation -for C<=over> blocks. Defaults to 4 spaces if this option isn't given. - -=item B<-errors>=I<style> +=item B<--errors>=I<style> Set the error handling style. C<die> says to throw an exception on any POD formatting error. C<stderr> says to report errors on standard error, @@ -189,6 +149,11 @@ ignores POD errors entirely, as much as possible. The default is C<die>. +=item B<-i> I<indent>, B<--indent=>I<indent> + +Set the number of spaces to indent regular text, and the default indentation +for C<=over> blocks. Defaults to 4 spaces if this option isn't given. + =item B<-h>, B<--help> Print out usage information and exit. @@ -232,10 +197,8 @@ to convert this to bold or underlined text. Sets the quote marks used to surround CE<lt>> text to I<quotes>. If I<quotes> is a single character, it is used as both the left and right -quote; if I<quotes> is two characters, the first character is used as the -left quote and the second as the right quoted; and if I<quotes> is four -characters, the first two are used as the left quote and the second two as -the right quote. +quote. Otherwise, it is split in half, and the first half of the string +is used as the left quote and the second is used as the right quote. I<quotes> may also be set to the special value C<none>, in which case no quote marks are added around CE<lt>> text. @@ -271,10 +234,11 @@ encoding (to be backward-compatible with older versions). This option says to instead force the output encoding to UTF-8. Be aware that, when using this option, the input encoding of your POD -source must be properly declared unless it is US-ASCII or Latin-1. POD -input without an C<=encoding> command will be assumed to be in Latin-1, -and if it's actually in UTF-8, the output will be double-encoded. See -L<perlpod(1)> for more information on the C<=encoding> command. +source should be properly declared unless it's US-ASCII. Pod::Simple +will attempt to guess the encoding and may be successful if it's +Latin-1 or UTF-8, but it will warn, which by default results in a +B<pod2text> failure. Use the C<=encoding> command to declare the +encoding. See L<perlpod(1)> for more information. =item B<-w>, B<--width=>I<width>, B<->I<width> @@ -345,20 +309,14 @@ Perl core distribution as of 5.6.0. =head1 AUTHOR -Russ Allbery <[email protected]>. +Russ Allbery <[email protected]>. =head1 COPYRIGHT AND LICENSE -Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013 Russ -Allbery <[email protected]>. +Copyright 1999, 2000, 2001, 2004, 2006, 2008, 2010, 2012, 2013, 2014, 2015 +Russ Allbery <[email protected]> This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =cut -!NO!SUBS! - -close OUT or die "Can't close $file: $!"; -chmod 0755, $file or die "Can't reset permissions for $file: $!\n"; -exec("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; -chdir $origdir; diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm index 72ca9ff..0d2edd0 100644 --- a/cpan/podlators/lib/Pod/Man.pm +++ b/cpan/podlators/lib/Pod/Man.pm @@ -11,9 +11,10 @@ # me any patches at the address above in addition to sending them to the # standard Perl mailing lists. # -# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -# 2010, 2012, 2013 Russ Allbery <[email protected]> +# Written by Russ Allbery <[email protected]> # Substantial contributions by Sean Burke <[email protected]> +# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, +# 2010, 2012, 2013, 2014, 2015 Russ Allbery <[email protected]> # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -24,9 +25,10 @@ package Pod::Man; -require 5.005; - +use 5.006; use strict; +use warnings; + use subs qw(makespace); use vars qw(@ISA %ESCAPES $PREAMBLE $VERSION); @@ -36,7 +38,7 @@ use Pod::Simple (); @ISA = qw(Pod::Simple); -$VERSION = '2.28'; +$VERSION = '4.03'; # Set the debugging level. If someone has inserted a debug function into this # class already, use that. Otherwise, use any Pod::Simple debug function @@ -204,10 +206,10 @@ sub init_quotes { $$self{LQUOTE} = $$self{RQUOTE} = ''; } elsif (length ($$self{quotes}) == 1) { $$self{LQUOTE} = $$self{RQUOTE} = $$self{quotes}; - } elsif ($$self{quotes} =~ /^(.)(.)$/ - || $$self{quotes} =~ /^(..)(..)$/) { - $$self{LQUOTE} = $1; - $$self{RQUOTE} = $2; + } elsif (length ($$self{quotes}) % 2 == 0) { + my $length = length ($$self{quotes}) / 2; + $$self{LQUOTE} = substr ($$self{quotes}, 0, $length); + $$self{RQUOTE} = substr ($$self{quotes}, $length); } else { croak(qq(Invalid quote specification "$$self{quotes}")) } @@ -788,7 +790,7 @@ sub start_document { } else { ($name, $section) = $self->devise_title; } - my $date = $$self{date} || $self->devise_date; + my $date = defined($$self{date}) ? $$self{date} : $self->devise_date; $self->preamble ($name, $section, $date) unless $self->bare_output or DEBUG > 9; } @@ -828,6 +830,17 @@ sub devise_title { $section = 3 if (!$$self{section} && $name =~ /\.pm\z/i); $name =~ s/\.p(od|[lm])\z//i; + # If Pod::Parser gave us an IO::File reference as the source file name, + # convert that to the empty string as well. Then, if we don't have a + # valid name, emit a warning and convert it to STDIN. + if ($name =~ /^IO::File(?:=\w+)\(0x[\da-f]+\)$/i) { + $name = ''; + } + if ($name eq '') { + $self->whine (1, 'No name given for document'); + $name = 'STDIN'; + } + # If the section isn't 3, then the name defaults to just the basename of # the file. Otherwise, assume we're dealing with a module. We want to # figure out the full module name from the path to the file, but we don't @@ -876,25 +889,55 @@ sub devise_title { } # Determine the modification date and return that, properly formatted in ISO -# format. If we can't get the modification date of the input, instead use the -# current time. Pod::Simple returns a completely unuseful stringified file -# handle as the source_filename for input from a file handle, so we have to -# deal with that as well. +# format. +# +# If POD_MAN_DATE is set, that overrides anything else. This can be used for +# reproducible generation of the same file even if the input file timestamps +# are unpredictable or the POD coms from standard input. +# +# Otherwise, if SOURCE_DATE_EPOCH is set and can be parsed as seconds since +# the UNIX epoch, base the timestamp on that. See +# <https://reproducible-builds.org/specs/source-date-epoch/> +# +# Otherwise, use the modification date of the input if we can stat it. Be +# aware that Pod::Simple returns the stringification of the file handle as +# source_filename for input from a file handle, so we'll stat some random ref +# string in that case. If that fails, instead use the current time. +# +# $self - Pod::Man object, used to get the source file +# +# Returns: YYYY-MM-DD date suitable for the left-hand footer sub devise_date { my ($self) = @_; - my $input = $self->source_filename; + + # If POD_MAN_DATE is set, always use it. + if (defined($ENV{POD_MAN_DATE})) { + return $ENV{POD_MAN_DATE}; + } + + # If SOURCE_DATE_EPOCH is set and can be parsed, use that. my $time; - if ($input) { - $time = (stat $input)[9] || time; - } else { - $time = time; + if (defined($ENV{SOURCE_DATE_EPOCH}) && $ENV{SOURCE_DATE_EPOCH} !~ /\D/) { + $time = $ENV{SOURCE_DATE_EPOCH}; + } + + # Otherwise, get the input filename and try to stat it. If that fails, + # use the current time. + if (!defined $time) { + my $input = $self->source_filename; + if ($input) { + $time = (stat($input))[9] || time(); + } else { + $time = time(); + } } - # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker - # uses this and it has to work in the core which can't load dynamic - # libraries. - my ($year, $month, $day) = (localtime $time)[5,4,3]; - return sprintf ("%04d-%02d-%02d", $year + 1900, $month + 1, $day); + # Can't use POSIX::strftime(), which uses Fcntl, because MakeMaker uses + # this and it has to work in the core which can't load dynamic libraries. + # Use gmtime instead of localtime so that the generated man page does not + # depend on the local time zone setting and is more reproducible + my ($year, $month, $day) = (gmtime($time))[5,4,3]; + return sprintf("%04d-%02d-%02d", $year + 1900, $month + 1, $day); } # Print out the preamble and the title. The meaning of the arguments to .TH @@ -1461,7 +1504,7 @@ sub preamble_template { .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" -.\" If the F register is turned on, we'll generate index entries on stderr for +.\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. @@ -1469,20 +1512,16 @@ sub preamble_template { .\" Avoid warning from groff about undefined register 'F'. .de IX .. -.nr rF 0 -.if \n(.g .if rF .nr rF 1 -.if (\n(rF:(\n(.g==0)) \{ -. if \nF \{ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.if !\nF .nr F 0 +.if \nF>0 \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. -. if !\nF==2 \{ -. nr % 0 -. nr F 2 -. \} +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 . \} .\} -.rr rF ----END OF PREAMBLE---- #'# for cperl-mode @@ -1566,7 +1605,7 @@ __END__ =for stopwords en em ALLCAPS teeny fixedbold fixeditalic fixedbolditalic stderr utf8 UTF-8 Allbery Sean Burke Ossanna Solaris formatters troff uppercased -Christiansen nourls parsers +Christiansen nourls parsers Kernighan =head1 NAME @@ -1629,8 +1668,19 @@ argument. =item center -Sets the centered page header to use instead of "User Contributed Perl -Documentation". +Sets the centered page header for the C<.TH> macro. The default, if this +option is not specified, is "User Contributed Perl Documentation". + +=item date + +Sets the left-hand footer for the C<.TH> macro. If this option is not set, +the contents of the environment variable POD_MAN_DATE, if set, will be used. +Failing that, the value of SOURCE_DATE_EPOCH, the modification date of the +input file, or the current time if stat() can't find that file (which will be +the case if the input is from C<STDIN>) will be used. If obtained from the +file modification date or the current time, the date will be formatted as +C<YYYY-MM-DD> and will be based on UTC (so that the output will be +reproducible regardless of local time zone). =item errors @@ -1642,13 +1692,6 @@ POD errors entirely, as much as possible. The default is C<pod>. -=item date - -Sets the left-hand footer. By default, the modification date of the input -file will be used, or the current date if stat() can't find that file (the -case if the input is from C<STDIN>), and the date will be formatted as -C<YYYY-MM-DD>. - =item fixed The fixed-width font to use for verbatim text and code. Defaults to @@ -1675,12 +1718,16 @@ for B<troff> output. =item name -Set the name of the manual page. Without this option, the manual name is -set to the uppercased base name of the file being converted unless the -manual section is 3, in which case the path is parsed to see if it is a Perl -module path. If it is, a path like C<.../lib/Pod/Man.pm> is converted into -a name like C<Pod::Man>. This option, if given, overrides any automatic -determination of the name. +Set the name of the manual page for the C<.TH> macro. Without this +option, the manual name is set to the uppercased base name of the file +being converted unless the manual section is 3, in which case the path is +parsed to see if it is a Perl module path. If it is, a path like +C<.../lib/Pod/Man.pm> is converted into a name like C<Pod::Man>. This +option, if given, overrides any automatic determination of the name. + +If generating a manual page from standard input, this option is required, +since there's otherwise no way for Pod::Man to know what to use for the +manual page name. =item nourls @@ -1701,10 +1748,9 @@ important. =item quotes Sets the quote marks used to surround CE<lt>> text. If the value is a -single character, it is used as both the left and right quote; if it is two -characters, the first character is used as the left quote and the second as -the right quoted; and if it is four characters, the first two are used as -the left quote and the second two as the right quote. +single character, it is used as both the left and right quote. Otherwise, +it is split in half, and the first half of the string is used as the left +quote and the second is used as the right quote. This may also be set to the special value C<none>, in which case no quote marks are added around CE<lt>> text (but the font is still changed for troff @@ -1712,11 +1758,16 @@ output). =item release -Set the centered footer. By default, this is the version of Perl you run -Pod::Man under. Note that some system an macro sets assume that the -centered footer will be a modification date and will prepend something like -"Last modified: "; if this is the case, you may want to set C<release> to -the last modified date and C<date> to the version number. +Set the centered footer for the C<.TH> macro. By default, this is set to +the version of Perl you run Pod::Man under. Setting this to the empty +string will cause some *roff implementations to use the system default +value. + +Note that some system C<an> macro sets assume that the centered footer +will be a modification date and will prepend something like "Last +modified: ". If this is the case for your target system, you may want to +set C<release> to the last modified date and C<date> to the version +number. =item section @@ -1756,10 +1807,10 @@ by many implementations and may even result in segfaults and other bad behavior. Be aware that, when using this option, the input encoding of your POD -source must be properly declared unless it is US-ASCII or Latin-1. POD -input without an C<=encoding> command will be assumed to be in Latin-1, -and if it's actually in UTF-8, the output will be double-encoded. See -L<perlpod(1)> for more information on the C<=encoding> command. +source should be properly declared unless it's US-ASCII. Pod::Simple will +attempt to guess the encoding and may be successful if it's Latin-1 or +UTF-8, but it will produce warnings. Use the C<=encoding> command to +declare the encoding. See L<perlpod(1)> for more information. =back @@ -1800,8 +1851,8 @@ canonical versions of B<nroff> and B<troff> don't either). =item Invalid quote specification "%s" (F) The quote specification given (the C<quotes> option to the -constructor) was invalid. A quote specification must be one, two, or four -characters long. +constructor) was invalid. A quote specification must be either one +character long or an even number (greater than one) characters long. =item POD document had syntax errors @@ -1810,6 +1861,36 @@ option was set to C<die>. =back +=head1 ENVIRONMENT + +=over 4 + +=item POD_MAN_DATE + +If set, this will be used as the value of the left-hand footer unless the +C<date> option is explicitly set, overriding the timestamp of the input +file or the current time. This is primarily useful to ensure reproducible +builds of the same output file given the same source and Pod::Man version, +even when file timestamps may not be consistent. + +=item SOURCE_DATE_EPOCH + +If set, and POD_MAN_DATE and the C<date> options are not set, this will be +used as the modification time of the source file, overriding the timestamp of +the input file or the current time. It should be set to the desired time in +seconds since UNIX epoch. This is primarily useful to ensure reproducible +builds of the same output file given the same source and Pod::Man version, +even when file timestamps may not be consistent. See +L<https://reproducible-builds.org/specs/source-date-epoch/> for the full +specification. + +(Arguably, according to the specification, this variable should be used only +if the timestamp of the input file is not available and Pod::Man uses the +current time. However, for reproducible builds in Debian, results were more +reliable if this variable overrode the timestamp of the input file.) + +=back + =head1 BUGS Encoding handling assumes that PerlIO is available and does not work @@ -1860,7 +1941,7 @@ only matters for troff output. =head1 AUTHOR -Russ Allbery <[email protected]>, based I<very> heavily on the original +Russ Allbery <[email protected]>, based I<very> heavily on the original B<pod2man> by Tom Christiansen <[email protected]>. The modifications to work with Pod::Simple instead of Pod::Parser were originally contributed by Sean Burke (but I've since hacked them beyond recognition and all bugs are @@ -1869,7 +1950,7 @@ mine). =head1 COPYRIGHT AND LICENSE Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -2009, 2010, 2012, 2013 Russ Allbery <[email protected]>. +2009, 2010, 2012, 2013, 2014, 2015 Russ Allbery <[email protected]> This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. diff --git a/cpan/podlators/lib/Pod/ParseLink.pm b/cpan/podlators/lib/Pod/ParseLink.pm index 750fdfb..8d9d7ce 100644 --- a/cpan/podlators/lib/Pod/ParseLink.pm +++ b/cpan/podlators/lib/Pod/ParseLink.pm @@ -1,6 +1,6 @@ # Pod::ParseLink -- Parse an L<> formatting code in POD text. # -# Copyright 2001, 2008, 2009 by Russ Allbery <[email protected]> +# Copyright 2001, 2008, 2009, 2014 by Russ Allbery <[email protected]> # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -21,16 +21,17 @@ package Pod::ParseLink; -require 5.004; - +use 5.006; use strict; +use warnings; + use vars qw(@EXPORT @ISA $VERSION); use Exporter; @ISA = qw(Exporter); @EXPORT = qw(parselink); -$VERSION = '1.10'; +$VERSION = '4.03'; ############################################################################## # Implementation @@ -123,7 +124,8 @@ markup Allbery URL =head1 SYNOPSIS use Pod::ParseLink; - my ($text, $inferred, $name, $section, $type) = parselink ($link); + my $link = get_link(); + my ($text, $inferred, $name, $section, $type) = parselink($link); =head1 DESCRIPTION @@ -180,11 +182,11 @@ L<http://www.eyrie.org/~eagle/software/podlators/>. =head1 AUTHOR -Russ Allbery <[email protected]>. +Russ Allbery <[email protected]>. =head1 COPYRIGHT AND LICENSE -Copyright 2001, 2008, 2009 Russ Allbery <[email protected]>. +Copyright 2001, 2008, 2009 Russ Allbery <[email protected]>. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. diff --git a/cpan/podlators/lib/Pod/Text.pm b/cpan/podlators/lib/Pod/Text.pm index 87f9e81..f8033cc 100644 --- a/cpan/podlators/lib/Pod/Text.pm +++ b/cpan/podlators/lib/Pod/Text.pm @@ -1,4 +1,4 @@ -# Pod::Text -- Convert POD data to formatted ASCII text. +# Pod::Text -- Convert POD data to formatted text. # # This module converts POD to formatted text. It replaces the old Pod::Text # module that came with versions of Perl prior to 5.6.0 and attempts to match @@ -11,8 +11,8 @@ # me any patches at the address above in addition to sending them to the # standard Perl mailing lists. # -# Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013 -# Russ Allbery <[email protected]> +# Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2014, +# 2015 Russ Allbery <[email protected]> # # This program is free software; you may redistribute it and/or modify it # under the same terms as Perl itself. @@ -23,9 +23,10 @@ package Pod::Text; -require 5.004; - +use 5.006; use strict; +use warnings; + use vars qw(@ISA @EXPORT %ESCAPES $VERSION); use Carp qw(carp croak); @@ -38,7 +39,7 @@ use Pod::Simple (); # We have to export pod2text for backward compatibility. @EXPORT = qw(pod2text); -$VERSION = '3.18'; +$VERSION = '4.03'; ############################################################################## # Initialization @@ -126,10 +127,10 @@ sub new { $$self{LQUOTE} = $$self{RQUOTE} = ''; } elsif (length ($$self{opt_quotes}) == 1) { $$self{LQUOTE} = $$self{RQUOTE} = $$self{opt_quotes}; - } elsif ($$self{opt_quotes} =~ /^(.)(.)$/ - || $$self{opt_quotes} =~ /^(..)(..)$/) { - $$self{LQUOTE} = $1; - $$self{RQUOTE} = $2; + } elsif (length ($$self{opt_quotes}) % 2 == 0) { + my $length = length ($$self{opt_quotes}) / 2; + $$self{LQUOTE} = substr ($$self{opt_quotes}, 0, $length); + $$self{RQUOTE} = substr ($$self{opt_quotes}, $length); } else { croak qq(Invalid quote specification "$$self{opt_quotes}"); } @@ -273,12 +274,12 @@ sub output { my ($self, @text) = @_; my $text = join ('', @text); $text =~ tr/\240\255/ /d; - unless ($$self{opt_utf8} || $$self{CHECKED_ENCODING}) { + unless ($$self{opt_utf8}) { my $encoding = $$self{encoding} || ''; - if ($encoding) { + if ($encoding && $encoding ne $$self{ENCODING}) { + $$self{ENCODING} = $encoding; eval { binmode ($$self{output_fh}, ":encoding($encoding)") }; } - $$self{CHECKED_ENCODING} = 1; } if ($$self{ENCODE}) { print { $$self{output_fh} } encode ('UTF-8', $text); @@ -312,7 +313,7 @@ sub start_document { $$self{PENDING} = [[]]; # Pending output. # We have to redo encoding handling for each document. - delete $$self{CHECKED_ENCODING}; + $$self{ENCODING} = ''; # When UTF-8 output is set, check whether our output file handle already # has a PerlIO encoding layer set. If it does not, we'll need to encode @@ -326,6 +327,7 @@ sub start_document { my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1]; if ($flag & PerlIO::F_UTF8 ()) { $$self{ENCODE} = 0; + $$self{ENCODING} = 'UTF-8'; } }; } @@ -759,7 +761,7 @@ parsers =head1 NAME -Pod::Text - Convert POD data to formatted ASCII text +Pod::Text - Convert POD data to formatted text =head1 SYNOPSIS **** PATCH TRUNCATED AT 2000 LINES -- 4623 NOT SHOWN **** -- Perl5 Master Repository
