In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/516cc7b3d537f089e725ceeb304dfb07583e516e?hp=6d23a90bab36d94ba76f50b6c16e948fd4cdf686>
- Log ----------------------------------------------------------------- commit 516cc7b3d537f089e725ceeb304dfb07583e516e Author: Chris 'BinGOs' Williams <[email protected]> Date: Tue Sep 27 13:43:59 2016 +0100 Update podlators to CPAN version 4.08 [DELTA] podlators 4.08 (2016-09-24) [Pod::Man] Partially revert change in 4.00 to require the name option (--name to pod2man) when generating man pages from standard input. Historically, pod2man silently tolerated this, and there turned out to be a lot of software that depended on this, making the change too disruptive. Instead, silently set the man page title to STDIN in this case, but warn about it in the documentation. (#117990) [Pod::Man] Fix rendering bug for "TRUE (1)", which was recognized as needing small caps and then erroneously as a man page reference, resulting in escaped nroff. (Found by Dan Jacobson with the XML::LibXML::Element man page.) (Debian Bug#836831) [Pod::Man] Fix rendering bug causing "\s0(1)" to be mistakenly marked as a man page reference, later confusing backslash escaping. [Pod::Man] Add new lquote and rquote options (and corresponding --lquote and --rquote flags to pod2man) to set the left and right quotes for C<> text independently. (#103298) Remove test for nested L<> markup, since an upcoming version of Pod::Simple will drop support for this. (#114075) M MANIFEST M Porting/Maintainers.pl M cpan/podlators/lib/Pod/Man.pm M cpan/podlators/lib/Pod/ParseLink.pm M cpan/podlators/lib/Pod/Text.pm M cpan/podlators/lib/Pod/Text/Color.pm M cpan/podlators/lib/Pod/Text/Overstrike.pm M cpan/podlators/lib/Pod/Text/Termcap.pm M cpan/podlators/scripts/pod2man.PL M cpan/podlators/t/data/basic.cap M cpan/podlators/t/data/basic.clr M cpan/podlators/t/data/basic.man M cpan/podlators/t/data/basic.ovr M cpan/podlators/t/data/basic.pod M cpan/podlators/t/data/basic.txt A cpan/podlators/t/data/snippets/man/bullet-after-nonbullet A cpan/podlators/t/data/snippets/man/error-die A cpan/podlators/t/data/snippets/man/error-none A cpan/podlators/t/data/snippets/man/error-normal A cpan/podlators/t/data/snippets/man/error-pod A cpan/podlators/t/data/snippets/man/error-stderr A cpan/podlators/t/data/snippets/man/error-stderr-opt A cpan/podlators/t/data/snippets/man/fixed-font A cpan/podlators/t/data/snippets/man/long-quote A cpan/podlators/t/data/snippets/man/lquote-and-quote A cpan/podlators/t/data/snippets/man/lquote-rquote A cpan/podlators/t/data/snippets/man/nourls A cpan/podlators/t/data/snippets/man/rquote-none M cpan/podlators/t/lib/Test/Podlators.pm M cpan/podlators/t/lib/Test/RRA.pm M cpan/podlators/t/lib/Test/RRA/Config.pm M cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm M cpan/podlators/t/man/basic.t M cpan/podlators/t/man/devise-title.t M cpan/podlators/t/man/options.t commit 70108630a68560322b86b582f1bd1ad71a93ea38 Author: Chris 'BinGOs' Williams <[email protected]> Date: Tue Sep 27 13:38:24 2016 +0100 Update HTTP-Tiny to CPAN version 0.068 [DELTA] 0.068 2016-09-23 16:10:03-04:00 America/New_York - No changes from 0.067-TRIAL. 0.067 2016-09-14 11:43:14-04:00 America/New_York (TRIAL RELEASE) [FIXED] - Includes redirect history when issuing a 599 internal error. 0.065 2016-09-09 22:42:43-04:00 America/New_York (TRIAL RELEASE) [TESTS] - Try harder to clean up environment in t/140_proxy.t (needed for VMS) M Porting/Maintainers.pl M cpan/HTTP-Tiny/lib/HTTP/Tiny.pm ----------------------------------------------------------------------- Summary of changes: MANIFEST | 13 + Porting/Maintainers.pl | 4 +- cpan/HTTP-Tiny/lib/HTTP/Tiny.pm | 14 +- cpan/podlators/lib/Pod/Man.pm | 58 ++++- cpan/podlators/lib/Pod/ParseLink.pm | 2 +- cpan/podlators/lib/Pod/Text.pm | 2 +- cpan/podlators/lib/Pod/Text/Color.pm | 2 +- cpan/podlators/lib/Pod/Text/Overstrike.pm | 2 +- cpan/podlators/lib/Pod/Text/Termcap.pm | 2 +- cpan/podlators/scripts/pod2man.PL | 37 ++- cpan/podlators/t/data/basic.cap | 2 - cpan/podlators/t/data/basic.clr | 2 - cpan/podlators/t/data/basic.man | 2 - cpan/podlators/t/data/basic.ovr | 2 - cpan/podlators/t/data/basic.pod | 2 - cpan/podlators/t/data/basic.txt | 2 - .../t/data/snippets/man/bullet-after-nonbullet | 25 ++ cpan/podlators/t/data/snippets/man/error-die | 27 +++ cpan/podlators/t/data/snippets/man/error-none | 21 ++ cpan/podlators/t/data/snippets/man/error-normal | 24 ++ cpan/podlators/t/data/snippets/man/error-pod | 27 +++ cpan/podlators/t/data/snippets/man/error-stderr | 24 ++ .../podlators/t/data/snippets/man/error-stderr-opt | 24 ++ cpan/podlators/t/data/snippets/man/fixed-font | 18 ++ cpan/podlators/t/data/snippets/man/long-quote | 16 ++ .../podlators/t/data/snippets/man/lquote-and-quote | 17 ++ cpan/podlators/t/data/snippets/man/lquote-rquote | 17 ++ cpan/podlators/t/data/snippets/man/nourls | 15 ++ cpan/podlators/t/data/snippets/man/rquote-none | 16 ++ cpan/podlators/t/lib/Test/Podlators.pm | 2 +- cpan/podlators/t/lib/Test/RRA.pm | 2 +- cpan/podlators/t/lib/Test/RRA/Config.pm | 26 +- cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm | 2 +- cpan/podlators/t/man/basic.t | 25 +- cpan/podlators/t/man/devise-title.t | 6 +- cpan/podlators/t/man/options.t | 268 ++------------------- 36 files changed, 433 insertions(+), 317 deletions(-) create mode 100644 cpan/podlators/t/data/snippets/man/bullet-after-nonbullet create mode 100644 cpan/podlators/t/data/snippets/man/error-die create mode 100644 cpan/podlators/t/data/snippets/man/error-none create mode 100644 cpan/podlators/t/data/snippets/man/error-normal create mode 100644 cpan/podlators/t/data/snippets/man/error-pod create mode 100644 cpan/podlators/t/data/snippets/man/error-stderr create mode 100644 cpan/podlators/t/data/snippets/man/error-stderr-opt create mode 100644 cpan/podlators/t/data/snippets/man/fixed-font create mode 100644 cpan/podlators/t/data/snippets/man/long-quote create mode 100644 cpan/podlators/t/data/snippets/man/lquote-and-quote create mode 100644 cpan/podlators/t/data/snippets/man/lquote-rquote create mode 100644 cpan/podlators/t/data/snippets/man/nourls create mode 100644 cpan/podlators/t/data/snippets/man/rquote-none diff --git a/MANIFEST b/MANIFEST index 7dbb1a3..065ca84 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2220,7 +2220,20 @@ 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/bullet-after-nonbullet cpan/podlators/t/data/snippets/man/cpp podlators test +cpan/podlators/t/data/snippets/man/error-die +cpan/podlators/t/data/snippets/man/error-none +cpan/podlators/t/data/snippets/man/error-normal +cpan/podlators/t/data/snippets/man/error-pod +cpan/podlators/t/data/snippets/man/error-stderr +cpan/podlators/t/data/snippets/man/error-stderr-opt +cpan/podlators/t/data/snippets/man/fixed-font +cpan/podlators/t/data/snippets/man/long-quote +cpan/podlators/t/data/snippets/man/lquote-and-quote +cpan/podlators/t/data/snippets/man/lquote-rquote +cpan/podlators/t/data/snippets/man/nourls +cpan/podlators/t/data/snippets/man/rquote-none 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 diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 945adc5..82fce35 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -591,7 +591,7 @@ use File::Glob qw(:case); }, 'HTTP::Tiny' => { - 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.064.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/HTTP-Tiny-0.068.tar.gz', 'FILES' => q[cpan/HTTP-Tiny], 'EXCLUDED' => [ 't/00-report-prereqs.t', @@ -978,7 +978,7 @@ use File::Glob qw(:case); }, 'podlators' => { - 'DISTRIBUTION' => 'RRA/podlators-4.07.tar.gz', + 'DISTRIBUTION' => 'RRA/podlators-4.08.tar.gz', 'FILES' => q[cpan/podlators pod/perlpodstyle.pod], 'MAP' => { diff --git a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm index de07e2a..6c529bb 100644 --- a/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm +++ b/cpan/HTTP-Tiny/lib/HTTP/Tiny.pm @@ -4,7 +4,7 @@ use strict; use warnings; # ABSTRACT: A small, simple, correct HTTP/1.1 client -our $VERSION = '0.064'; +our $VERSION = '0.068'; use Carp (); @@ -431,6 +431,7 @@ sub request { if (my $e = $@) { # maybe we got a response hash thrown from somewhere deep if ( ref $e eq 'HASH' && exists $e->{status} ) { + $e->{redirects} = delete $args->{_redirects} if @{ $args->{_redirects} || []}; return $e; } @@ -445,7 +446,8 @@ sub request { headers => { 'content-type' => 'text/plain', 'content-length' => length $e, - } + }, + ( @{$args->{_redirects} || []} ? (redirects => delete $args->{_redirects}) : () ), }; } return $response; @@ -1656,7 +1658,7 @@ HTTP::Tiny - A small, simple, correct HTTP/1.1 client =head1 VERSION -version 0.064 +version 0.068 =head1 SYNOPSIS @@ -2279,7 +2281,7 @@ David Golden <[email protected]> =head1 CONTRIBUTORS -=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley David Golden Dean Pearce Edward Zborowski James Raspass Je ... [241 chars truncated] +=for stopwords Alan Gardner Alessandro Ghedini A. Sinan Unur Brad Gilbert brian m. carlson Chris Nehren Weyl Claes Jakobsson Clinton Gormley Craig Berry David Golden Dean Pearce Edward Zborowski Jame ... [253 chars truncated] =over 4 @@ -2321,6 +2323,10 @@ Clinton Gormley <[email protected]> =item * +Craig A. Berry <[email protected]> + +=item * + David Golden <[email protected]> =item * diff --git a/cpan/podlators/lib/Pod/Man.pm b/cpan/podlators/lib/Pod/Man.pm index b739559..a0872b4 100644 --- a/cpan/podlators/lib/Pod/Man.pm +++ b/cpan/podlators/lib/Pod/Man.pm @@ -43,7 +43,7 @@ BEGIN { @ISA = qw(Pod::Simple); -$VERSION = '4.07'; +$VERSION = '4.08'; # Set the debugging level. If someone has inserted a debug function into this # class already, use that. Otherwise, use any Pod::Simple debug function @@ -216,12 +216,13 @@ sub init_fonts { } # Initialize the quotes that we'll be using for C<> text. This requires some -# special handling, both to parse the user parameter if given and to make sure -# that the quotes will be safe against *roff. Sets the internal hash keys -# LQUOTE and RQUOTE. +# special handling, both to parse the user parameters if given and to make +# sure that the quotes will be safe against *roff. Sets the internal hash +# keys LQUOTE and RQUOTE. sub init_quotes { my ($self) = (@_); + # Handle the quotes option first, which sets both quotes at once. $$self{quotes} ||= '"'; if ($$self{quotes} eq 'none') { $$self{LQUOTE} = $$self{RQUOTE} = ''; @@ -235,6 +236,14 @@ sub init_quotes { croak(qq(Invalid quote specification "$$self{quotes}")) } + # Now handle the lquote and rquote options. + if (defined $$self{lquote}) { + $$self{LQUOTE} = $$self{lquote} eq 'none' ? q{} : $$self{lquote}; + } + if (defined $$self{rquote}) { + $$self{RQUOTE} = $$self{rquote} eq 'none' ? q{} : $$self{rquote}; + } + # Double the first quote; note that this should not be s///g as two double # quotes is represented in *roff as three double quotes, not four. Weird, # I know. @@ -514,9 +523,9 @@ sub guesswork { # entire warranty disclaimers in man page output into small caps. if ($$self{MAGIC_SMALLCAPS}) { s{ - ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1) - ( [A-Z] [A-Z] (?: [/A-Z+:\d_\$&] | \\- | [.,\"\s] )* ) # (2) - (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3) + ( ^ | [\s\(\"\'\`\[\{<>] | \\[ ] ) # (1) + ( [A-Z] [A-Z] (?: \s? [/A-Z+:\d_\$&] | \\- | \s? [.,\"] )* ) # (2) + (?= [\s>\}\]\(\)\'\".?!,;] | \\*\(-- | \\[ ] | $ ) # (3) } { $1 . '\s-1' . $2 . '\s0' }egx; @@ -549,6 +558,7 @@ sub guesswork { if ($$self{MAGIC_MANREF}) { s{ ( \b | \\s-1 ) + (?<! \\ ) # rule out \s0(1) ( [A-Za-z_] (?:[.:\w] | \\- | \\s-?[01])+ ) ( \( \d [a-z]* \) ) } { @@ -854,12 +864,16 @@ sub devise_title { # 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. + # valid name, convert it to STDIN. + # + # In podlators 4.00 through 4.07, this also produced a warning, but that + # was surprising to a lot of programs that had expected to be able to pipe + # POD through pod2man without specifying the name. In the name of + # backward compatibility, just quietly set STDIN as the page title. if ($name =~ /^IO::File(?:=\w+)\(0x[\da-f]+\)$/i) { $name = ''; } if ($name eq '') { - $self->whine (1, 'No name given for document'); $name = 'STDIN'; } @@ -1632,7 +1646,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 Kernighan +Christiansen nourls parsers Kernighan lquote rquote =head1 NAME @@ -1743,6 +1757,20 @@ Pod::Man doesn't assume you have this, and defaults to C<CB>. Some systems (such as Solaris) have this font available as C<CX>. Only matters for B<troff> output. +=item lquote + +=item rquote + +Sets the quote marks used to surround CE<lt>> text. C<lquote> sets the +left quote mark and C<rquote> sets the right quote mark. Either may also +be set to the special value C<none>, in which case no quote mark is added +on that side of CE<lt>> text (but the font is still changed for troff +output). + +Also see the C<quotes> option, which can be used to set both quotes at once. +If both C<quotes> and one of the other options is set, C<lquote> or C<rquote> +overrides C<quotes>. + =item name Set the name of the manual page for the C<.TH> macro. Without this @@ -1752,9 +1780,9 @@ 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. +If generating a manual page from standard input, the name will be set to +C<STDIN> if this option is not provided. Providing this option is strongly +recommended to set a meaningful manual page name. =item nourls @@ -1783,6 +1811,10 @@ 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 output). +Also see the C<lquote> and C<rquote> options, which can be used to set the +left and right quotes independently. If both C<quotes> and one of the other +options is set, C<lquote> or C<rquote> overrides C<quotes>. + =item release Set the centered footer for the C<.TH> macro. By default, this is set to diff --git a/cpan/podlators/lib/Pod/ParseLink.pm b/cpan/podlators/lib/Pod/ParseLink.pm index a9e6b34..c9b964b 100644 --- a/cpan/podlators/lib/Pod/ParseLink.pm +++ b/cpan/podlators/lib/Pod/ParseLink.pm @@ -31,7 +31,7 @@ use Exporter; @ISA = qw(Exporter); @EXPORT = qw(parselink); -$VERSION = '4.07'; +$VERSION = '4.08'; ############################################################################## # Implementation diff --git a/cpan/podlators/lib/Pod/Text.pm b/cpan/podlators/lib/Pod/Text.pm index e141da2..240e8a9 100644 --- a/cpan/podlators/lib/Pod/Text.pm +++ b/cpan/podlators/lib/Pod/Text.pm @@ -39,7 +39,7 @@ use Pod::Simple (); # We have to export pod2text for backward compatibility. @EXPORT = qw(pod2text); -$VERSION = '4.07'; +$VERSION = '4.08'; ############################################################################## # Initialization diff --git a/cpan/podlators/lib/Pod/Text/Color.pm b/cpan/podlators/lib/Pod/Text/Color.pm index b67742e..ccd46c6 100644 --- a/cpan/podlators/lib/Pod/Text/Color.pm +++ b/cpan/podlators/lib/Pod/Text/Color.pm @@ -27,7 +27,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = '4.07'; +$VERSION = '4.08'; ############################################################################## # Overrides diff --git a/cpan/podlators/lib/Pod/Text/Overstrike.pm b/cpan/podlators/lib/Pod/Text/Overstrike.pm index 1592026..a2ba5bb 100644 --- a/cpan/podlators/lib/Pod/Text/Overstrike.pm +++ b/cpan/podlators/lib/Pod/Text/Overstrike.pm @@ -35,7 +35,7 @@ use Pod::Text (); @ISA = qw(Pod::Text); -$VERSION = '4.07'; +$VERSION = '4.08'; ############################################################################## # Overrides diff --git a/cpan/podlators/lib/Pod/Text/Termcap.pm b/cpan/podlators/lib/Pod/Text/Termcap.pm index d533e76..b0823e0 100644 --- a/cpan/podlators/lib/Pod/Text/Termcap.pm +++ b/cpan/podlators/lib/Pod/Text/Termcap.pm @@ -28,7 +28,7 @@ use vars qw(@ISA $VERSION); @ISA = qw(Pod::Text); -$VERSION = '4.07'; +$VERSION = '4.08'; ############################################################################## # Overrides diff --git a/cpan/podlators/scripts/pod2man.PL b/cpan/podlators/scripts/pod2man.PL index f40c126..b70057b 100644 --- a/cpan/podlators/scripts/pod2man.PL +++ b/cpan/podlators/scripts/pod2man.PL @@ -76,8 +76,9 @@ my %options; 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') + 'lax|l', 'lquote=s', 'name|n=s', 'nourls', 'official|o', + 'quotes|q=s', 'release|r=s', 'rquote=s', 'section|s=s', 'stderr', + 'verbose|v', 'utf8|u') or exit 1; pod2usage (0) if $options{help}; @@ -125,7 +126,7 @@ __END__ =for stopwords en em --stderr stderr --utf8 UTF-8 overdo markup MT-LEVEL Allbery Solaris URL troff troff-specific formatters uppercased Christiansen --nourls UTC -prepend +prepend lquote rquote =head1 NAME @@ -136,9 +137,9 @@ 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<--section>=I<manext>] [B<--stderr>] [B<--utf8>] [B<--verbose>] - [I<input> [I<output>] ...] + [B<--official>] [B<--release>=I<version>] [B<--section>=I<manext>] + [B<--quotes>=I<quotes>] [B<--lquote>=I<quote>] [B<--rquote>=I<quote>] + [B<--stderr>] [B<--utf8>] [B<--verbose>] [I<input> [I<output>] ...] pod2man B<--help> @@ -236,6 +237,20 @@ No longer used. B<pod2man> used to check its input for validity as a manual page, but this should now be done by L<podchecker(1)> instead. Accepted for backward compatibility; this option no longer does anything. +=item B<--lquote>=I<quote> + +=item B<--rquote>=I<quote> + +Sets the quote marks used to surround CE<lt>> text. B<--lquote> sets the +left quote mark and B<--rquote> sets the right quote mark. Either may also +be set to the special value C<none>, in which case no quote mark is added +on that side of CE<lt>> text (but the font is still changed for troff +output). + +Also see the B<--quotes> option, which can be used to set both quotes at once. +If both B<--quotes> and one of the other options is set, B<--lquote> or +B<--rquote> overrides B<--quotes>. + =item B<-n> I<name>, B<--name>=I<name> Set the name of the manual page for the C<.TH> macro to I<name>. Without @@ -252,9 +267,9 @@ 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. +When converting POD source from standard input, the name will be set to +C<STDIN> if this option is not provided. Providing this option is strongly +recommended to set a meaningful manual page name. =item B<--nourls> @@ -287,6 +302,10 @@ 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). +Also see the B<--lquote> and B<--rquote> options, which can be used to set the +left and right quotes independently. If both B<--quotes> and one of the other +options is set, B<--lquote> or B<--rquote> overrides B<--quotes>. + =item B<-r> I<version>, B<--release>=I<version> Set the centered footer for the C<.TH> macro to I<version>. By default, diff --git a/cpan/podlators/t/data/basic.cap b/cpan/podlators/t/data/basic.cap index 20fc1e5..a595343 100644 --- a/cpan/podlators/t/data/basic.cap +++ b/cpan/podlators/t/data/basic.cap @@ -80,8 +80,6 @@ "Section "with" [4m[1mother[m markup[m" in foo|bar - Nested <http://www.perl.org/> - [1mOVER AND ITEMS[m Taken from Pod::Parser tests, this is a test to ensure that multiline =item paragraphs get indented appropriately. diff --git a/cpan/podlators/t/data/basic.clr b/cpan/podlators/t/data/basic.clr index f988571..da6acf2 100644 --- a/cpan/podlators/t/data/basic.clr +++ b/cpan/podlators/t/data/basic.clr @@ -80,8 +80,6 @@ "Section "with" [33m[1mother[0m markup[0m" in foo|bar - Nested <http://www.perl.org/> - [1mOVER AND ITEMS[0m Taken from Pod::Parser tests, this is a test to ensure that multiline =item paragraphs get indented appropriately. diff --git a/cpan/podlators/t/data/basic.man b/cpan/podlators/t/data/basic.man index 43874b6..e11546f 100644 --- a/cpan/podlators/t/data/basic.man +++ b/cpan/podlators/t/data/basic.man @@ -90,8 +90,6 @@ Testing \fIitalics\fR "\fIItalic\fR text" in foo .PP "Section \f(CW\*(C`with\*(C'\fR \fI\f(BIother\fI markup\fR" in foo|bar -.PP -Nested <http://www.perl.org/> .SH "OVER AND ITEMS" .IX Header "OVER AND ITEMS" Taken from Pod::Parser tests, this is a test to ensure that multiline diff --git a/cpan/podlators/t/data/basic.ovr b/cpan/podlators/t/data/basic.ovr index bb124a0..726a16a 100644 --- a/cpan/podlators/t/data/basic.ovr +++ b/cpan/podlators/t/data/basic.ovr @@ -80,8 +80,6 @@ LLIINNKKSS "Section "with" _o_t_h_e_r_ _m_a_r_k_u_p" in foo|bar - Nested <http://www.perl.org/> - OOVVEERR AANNDD IITTEEMMSS Taken from Pod::Parser tests, this is a test to ensure that multiline =item paragraphs get indented appropriately. diff --git a/cpan/podlators/t/data/basic.pod b/cpan/podlators/t/data/basic.pod index 949b3a8..3c7fd59 100644 --- a/cpan/podlators/t/data/basic.pod +++ b/cpan/podlators/t/data/basic.pod @@ -93,8 +93,6 @@ L<foo/I<Italic> text> L<fooE<verbar>barZ<>/Section C<with> I<B<other> markup>> -L<Nested L<http://www.perl.org/>|fooE<sol>bar> - =head1 OVER AND ITEMS Taken from Pod::Parser tests, this is a test to ensure that multiline diff --git a/cpan/podlators/t/data/basic.txt b/cpan/podlators/t/data/basic.txt index 986e98a..5eee3c9 100644 --- a/cpan/podlators/t/data/basic.txt +++ b/cpan/podlators/t/data/basic.txt @@ -80,8 +80,6 @@ LINKS "Section "with" *other markup*" in foo|bar - Nested <http://www.perl.org/> - OVER AND ITEMS Taken from Pod::Parser tests, this is a test to ensure that multiline =item paragraphs get indented appropriately. diff --git a/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet b/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet new file mode 100644 index 0000000..f98302a --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/bullet-after-nonbullet @@ -0,0 +1,25 @@ +[name] +Handling of bullet after non-bullet + +[options] +errors none + +[input] +=over 4 + +=item foo + +Not a bullet. + +=item * + +Also not a bullet. + +=back + +[output] +.IP "foo" 4 +.IX Item "foo" +Not a bullet. +.IP "*" 4 +Also not a bullet. diff --git a/cpan/podlators/t/data/snippets/man/error-die b/cpan/podlators/t/data/snippets/man/error-die new file mode 100644 index 0000000..48b9cac --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/error-die @@ -0,0 +1,27 @@ +[name] +Errors throw exceptions + +[options] +errors die + +[input] +=over 4 + +=item Foo + +Bar. + +=head1 NEXT + +[output] +.IP "Foo" 4 +.IX Item "Foo" +Bar. +.SH "NEXT" +.IX Header "NEXT" + +[errors] +Pod input around line 7: You forgot a '=back' before '=head1' + +[exception] +POD document had syntax errors diff --git a/cpan/podlators/t/data/snippets/man/error-none b/cpan/podlators/t/data/snippets/man/error-none new file mode 100644 index 0000000..676fc40 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/error-none @@ -0,0 +1,21 @@ +[name] +Suppress errors + +[options] +errors none + +[input] +=over 4 + +=item Foo + +Bar. + +=head1 NEXT + +[output] +.IP "Foo" 4 +.IX Item "Foo" +Bar. +.SH "NEXT" +.IX Header "NEXT" diff --git a/cpan/podlators/t/data/snippets/man/error-normal b/cpan/podlators/t/data/snippets/man/error-normal new file mode 100644 index 0000000..cdd5d40 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/error-normal @@ -0,0 +1,24 @@ +[name] +Normal error handling + +[input] +=over 4 + +=item Foo + +Bar. + +=head1 NEXT + +[output] +.IP "Foo" 4 +.IX Item "Foo" +Bar. +.SH "NEXT" +.IX Header "NEXT" +.SH "POD ERRORS" +.IX Header "POD ERRORS" +Hey! \fBThe above document had some coding errors, which are explained below:\fR +.IP "Around line 7:" 4 +.IX Item "Around line 7:" +You forgot a '=back' before '=head1' diff --git a/cpan/podlators/t/data/snippets/man/error-pod b/cpan/podlators/t/data/snippets/man/error-pod new file mode 100644 index 0000000..4405653 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/error-pod @@ -0,0 +1,27 @@ +[name] +Errors to POD source + +[options] +errors pod + +[input] +=over 4 + +=item Foo + +Bar. + +=head1 NEXT + +[output] +.IP "Foo" 4 +.IX Item "Foo" +Bar. +.SH "NEXT" +.IX Header "NEXT" +.SH "POD ERRORS" +.IX Header "POD ERRORS" +Hey! \fBThe above document had some coding errors, which are explained below:\fR +.IP "Around line 7:" 4 +.IX Item "Around line 7:" +You forgot a '=back' before '=head1' diff --git a/cpan/podlators/t/data/snippets/man/error-stderr b/cpan/podlators/t/data/snippets/man/error-stderr new file mode 100644 index 0000000..bcaef66 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/error-stderr @@ -0,0 +1,24 @@ +[name] +Errors to stadard error + +[options] +errors stderr + +[input] +=over 4 + +=item Foo + +Bar. + +=head1 NEXT + +[output] +.IP "Foo" 4 +.IX Item "Foo" +Bar. +.SH "NEXT" +.IX Header "NEXT" + +[errors] +Pod input around line 7: You forgot a '=back' before '=head1' diff --git a/cpan/podlators/t/data/snippets/man/error-stderr-opt b/cpan/podlators/t/data/snippets/man/error-stderr-opt new file mode 100644 index 0000000..e4e0cf8 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/error-stderr-opt @@ -0,0 +1,24 @@ +[name] +Errors to standard error with stderr option + +[options] +stderr 1 + +[input] +=over 4 + +=item Foo + +Bar. + +=head1 NEXT + +[output] +.IP "Foo" 4 +.IX Item "Foo" +Bar. +.SH "NEXT" +.IX Header "NEXT" + +[errors] +Pod input around line 7: You forgot a '=back' before '=head1' diff --git a/cpan/podlators/t/data/snippets/man/fixed-font b/cpan/podlators/t/data/snippets/man/fixed-font new file mode 100644 index 0000000..f0b8524 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/fixed-font @@ -0,0 +1,18 @@ +[name] +Options to set fixed fonts + +[options] +fixed CR +fixedbold CY +fixeditalic CW +fixedbolditalic CX + +[input] +=head1 FIXED FONTS + +C<foo B<bar I<baz>> I<bay>> + +[output] +.SH "FIXED FONTS" +.IX Header "FIXED FONTS" +\&\f(CR\*(C`foo \f(CYbar \f(CXbaz\f(CY\f(CR \f(CWbay\f(CR\*(C'\fR diff --git a/cpan/podlators/t/data/snippets/man/long-quote b/cpan/podlators/t/data/snippets/man/long-quote new file mode 100644 index 0000000..589dcb9 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/long-quote @@ -0,0 +1,16 @@ +[name] +Long quotes option + +[options] +quotes \(lq"\(rq" + +[input] +=head1 FOO C<BAR> BAZ + +Foo C<bar> baz. + +[output] +.ie n .SH "FOO \(lq""BAR\(rq"" BAZ" +.el .SH "FOO \f(CWBAR\fP BAZ" +.IX Header "FOO BAR BAZ" +Foo \f(CW\*(C`bar\*(C'\fR baz. diff --git a/cpan/podlators/t/data/snippets/man/lquote-and-quote b/cpan/podlators/t/data/snippets/man/lquote-and-quote new file mode 100644 index 0000000..def8fe3 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/lquote-and-quote @@ -0,0 +1,17 @@ +[name] +lquote and quotes both used + +[options] +lquote `` +quotes " + +[input] +=head1 FOO C<BAR> BAZ + +Foo C<bar> baz. + +[output] +.ie n .SH "FOO ``BAR"" BAZ" +.el .SH "FOO \f(CWBAR\fP BAZ" +.IX Header "FOO BAR BAZ" +Foo \f(CW\*(C`bar\*(C'\fR baz. diff --git a/cpan/podlators/t/data/snippets/man/lquote-rquote b/cpan/podlators/t/data/snippets/man/lquote-rquote new file mode 100644 index 0000000..481e545 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/lquote-rquote @@ -0,0 +1,17 @@ +[name] +Set separate left and right quotes + +[options] +lquote `` +rquote " + +[input] +=head1 FOO C<BAR> BAZ + +Foo C<bar> baz. + +[output] +.ie n .SH "FOO ``BAR"" BAZ" +.el .SH "FOO \f(CWBAR\fP BAZ" +.IX Header "FOO BAR BAZ" +Foo \f(CW\*(C`bar\*(C'\fR baz. diff --git a/cpan/podlators/t/data/snippets/man/nourls b/cpan/podlators/t/data/snippets/man/nourls new file mode 100644 index 0000000..ddbdc4b --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/nourls @@ -0,0 +1,15 @@ +[name] +nourls option + +[options] +nourls 1 + +[input] +=head1 URL suppression + +L<anchor|http://www.example.com/> + +[output] +.SH "URL suppression" +.IX Header "URL suppression" +anchor diff --git a/cpan/podlators/t/data/snippets/man/rquote-none b/cpan/podlators/t/data/snippets/man/rquote-none new file mode 100644 index 0000000..3de3829 --- /dev/null +++ b/cpan/podlators/t/data/snippets/man/rquote-none @@ -0,0 +1,16 @@ +[name] +rquote set to none + +[options] +rquote none + +[input] +=head1 FOO C<BAR> BAZ + +Foo C<bar> baz. + +[output] +.ie n .SH "FOO ""BAR BAZ" +.el .SH "FOO \f(CWBAR\fP BAZ" +.IX Header "FOO BAR BAZ" +Foo \f(CW\*(C`bar\*(C'\fR baz. diff --git a/cpan/podlators/t/lib/Test/Podlators.pm b/cpan/podlators/t/lib/Test/Podlators.pm index 3111d40..d0a8ffa 100644 --- a/cpan/podlators/t/lib/Test/Podlators.pm +++ b/cpan/podlators/t/lib/Test/Podlators.pm @@ -278,7 +278,7 @@ sub test_snippet { } if ($data_ref->{exception} || $exception) { if ($exception) { - $exception =~ s{ [ ] at [ ] .* }{}xms; + $exception =~ s{ [ ] at [ ] .* }{\n}xms; } is($exception, $data_ref->{exception}, "$data_ref->{name}: exception"); } diff --git a/cpan/podlators/t/lib/Test/RRA.pm b/cpan/podlators/t/lib/Test/RRA.pm index 7e79515..fe95cd2 100644 --- a/cpan/podlators/t/lib/Test/RRA.pm +++ b/cpan/podlators/t/lib/Test/RRA.pm @@ -31,7 +31,7 @@ BEGIN { # This version should match the corresponding rra-c-util release, but with # two digits for the minor version, including a leading zero if necessary, # so that it will sort properly. - $VERSION = '5.09'; + $VERSION = '6.01'; } # Skip this test unless author tests are requested. Takes a short description diff --git a/cpan/podlators/t/lib/Test/RRA/Config.pm b/cpan/podlators/t/lib/Test/RRA/Config.pm index ffdfc08..727927d 100644 --- a/cpan/podlators/t/lib/Test/RRA/Config.pm +++ b/cpan/podlators/t/lib/Test/RRA/Config.pm @@ -34,16 +34,16 @@ BEGIN { # This version should match the corresponding rra-c-util release, but with # two digits for the minor version, including a leading zero if necessary, # so that it will sort properly. - $VERSION = '5.09'; + $VERSION = '6.01'; } -# If BUILD or SOURCE are set in the environment, look for data/perl.conf under -# those paths for a C Automake package. Otherwise, look in t/data/perl.conf -# for a standalone Perl module or tests/data/perl.conf for Perl tests embedded -# in a larger distribution. Don't use Test::RRA::Automake since it may not -# exist. +# If C_TAP_BUILD or C_TAP_SOURCE are set in the environment, look for +# data/perl.conf under those paths for a C Automake package. Otherwise, look +# in t/data/perl.conf for a standalone Perl module or tests/data/perl.conf for +# Perl tests embedded in a larger distribution. Don't use Test::RRA::Automake +# since it may not exist. our $PATH; -for my $base ($ENV{BUILD}, $ENV{SOURCE}, 't', 'tests') { +for my $base ($ENV{C_TAP_BUILD}, $ENV{C_TAP_SOURCE}, './t', './tests') { next if !defined($base); my $path = "$base/data/perl.conf"; if (-r $path) { @@ -70,7 +70,7 @@ our @STRICT_PREREQ; # Load the configuration. if (!do($PATH)) { my $error = $@ || $! || 'loading file did not return true'; - BAIL_OUT("cannot load data/perl.conf: $error"); + BAIL_OUT("cannot load $PATH: $error"); } 1; @@ -98,10 +98,10 @@ for both C Automake packages and stand-alone Perl modules. Test::RRA::Config looks for a file named F<data/perl.conf> relative to the root of the test directory. That root is taken from the environment variables -BUILD or SOURCE (in that order) if set, which will be the case for C Automake -packages using C TAP Harness. If neither is set, it expects the root of the -test directory to be a directory named F<t> relative to the current directory, -which will be the case for stand-alone Perl modules. +C_TAP_BUILD or C_TAP_SOURCE (in that order) if set, which will be the case for +C Automake packages using C TAP Harness. If neither is set, it expects the +root of the test directory to be a directory named F<t> relative to the +current directory, which will be the case for stand-alone Perl modules. The following variables are supported: @@ -185,6 +185,8 @@ Russ Allbery <[email protected]> =head1 COPYRIGHT AND LICENSE +Copyright 2015, 2016 Russ Allbery <[email protected]> + Copyright 2013, 2014 The Board of Trustees of the Leland Stanford Junior University diff --git a/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm b/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm index 2d77984..202d1b8 100644 --- a/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm +++ b/cpan/podlators/t/lib/Test/RRA/ModuleVersion.pm @@ -31,7 +31,7 @@ BEGIN { # This version should match the corresponding rra-c-util release, but with # two digits for the minor version, including a leading zero if necessary, # so that it will sort properly. - $VERSION = '5.09'; + $VERSION = '6.01'; } # A regular expression matching the version string for a module using the diff --git a/cpan/podlators/t/man/basic.t b/cpan/podlators/t/man/basic.t index 5ad84b5..7133946 100644 --- a/cpan/podlators/t/man/basic.t +++ b/cpan/podlators/t/man/basic.t @@ -19,7 +19,7 @@ BEGIN { use strict; -use Test::More tests => 35; +use Test::More tests => 37; BEGIN { use_ok ('Pod::Man') } # Test whether we can use binmode to set encoding. @@ -592,3 +592,26 @@ earlier, italic was terminated with \ef(\s-1CW,\s0 which didn't properly stop it .el .IP "\f(CWtar \f(CIletter\f(CW... [\f(CIargument\f(CW]... [\f(CIoption\f(CW]... [\f(CIname\f(CW]...\fR" 2 .IX Item "tar letter... [argument]... [option]... [name]..." ### + +### +=head1 TRUE (1) + +podlators prior to 4.08 misrendered TRUE (1) and FALSE (0) with escaped nroff +in the output because it tried to apply both small caps and man page reference +code and got it wrong. +### +.SH "TRUE (1)" +.IX Header "TRUE (1)" +podlators prior to 4.08 misrendered \s-1TRUE\s0 (1) and \s-1FALSE\s0 (0) with escaped nroff +in the output because it tried to apply both small caps and man page reference +code and got it wrong. +### + +### +=pod + +Not a man page reference: \s0(1) +### +.PP +Not a man page reference: \es0(1) +### diff --git a/cpan/podlators/t/man/devise-title.t b/cpan/podlators/t/man/devise-title.t index afdd550..45f3fca 100644 --- a/cpan/podlators/t/man/devise-title.t +++ b/cpan/podlators/t/man/devise-title.t @@ -30,11 +30,11 @@ my $output; $parser->output_string(\$output); $parser->parse_file($handle); -# Check the results of devise_title for this. We should get back STDIN, and -# we should have reported an error. +# Check the results of devise_title for this. We should get back STDIN and +# not report an error. my ($name, $section) = $parser->devise_title; is($name, 'STDIN', 'devise_title uses STDIN for file handle input'); -ok($parser->errors_seen, '...and errors were seen'); +ok(!$parser->errors_seen, '...and no errors were seen'); # Now check handling of a simple file name with no parent directory, which # simulates a POD file at the top of a distribution. In podlators 4.06, this diff --git a/cpan/podlators/t/man/options.t b/cpan/podlators/t/man/options.t index 7d48b5a..20af5de 100644 --- a/cpan/podlators/t/man/options.t +++ b/cpan/podlators/t/man/options.t @@ -1,8 +1,8 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl # -# Additional tests for Pod::Man options. +# Test Pod::Man behavior with various options # -# Copyright 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2015 +# Copyright 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2015, 2016 # Russ Allbery <[email protected]> # # This program is free software; you may redistribute it and/or modify it @@ -15,259 +15,21 @@ use warnings; use lib 't/lib'; use Test::More tests => 31; -use Test::Podlators qw(read_test_data slurp); +use Test::Podlators qw(test_snippet); +# Load the module. BEGIN { - use_ok ('Pod::Man'); + use_ok('Pod::Man'); } -# Redirect stderr to a file. Return the name of the file that stores standard -# error. -sub stderr_save { - open(OLDERR, '>&STDERR') or die "Can't dup STDERR: $!\n"; - open(STDERR, "> out$$.err") or die "Can't redirect STDERR: $!\n"; - return "out$$.err"; -} - -# Restore stderr. -sub stderr_restore { - close(STDERR); - open(STDERR, '>&OLDERR') or die "Can't dup STDERR: $!\n"; - close(OLDERR); -} - -# Loop through all the test data, generate output, and compare it to the -# desired output data. -my %options = (options => 1, errors => 1); -my $n = 1; -while (defined(my $data_ref = read_test_data(\*DATA, \%options))) { - my $parser = Pod::Man->new(%{ $data_ref->{options} }, name => 'TEST'); - isa_ok($parser, 'Pod::Man', 'Parser object'); - - # Save stderr to a temporary file and then run the parser, storing the - # output into a Perl variable. - my $errors = stderr_save(); - my $got; - $parser->output_string(\$got); - eval { $parser->parse_string_document($data_ref->{input}) }; - my $exception = $@; - stderr_restore(); - - # Strip off everything prior to .nh from the output so that we aren't - # testing the generated header, and then check the output. - $got =~ s{ \A .* \n [.]nh \n }{}xms; - is($got, $data_ref->{output}, "Output for test $n"); +# List of snippets run by this test. +my @snippets = qw( + bullet-after-nonbullet error-die error-none error-normal + error-pod error-stderr error-stderr-opt fixed-font long-quote + lquote-and-quote lquote-rquote nourls rquote-none +); - # Collect the errors and add any exception, marking it with EXCEPTION. - # Then, compare that to the expected errors. The "1 while" construct is - # for VMS, in case there are multiple versions of the file. - my $got_errors = slurp($errors); - 1 while unlink($errors); - if ($exception) { - $exception =~ s{ [ ] at [ ] .* }{}xms; - $got_errors .= "EXCEPTION: $exception\n"; - } - is($got_errors, $data_ref->{errors}, "Errors for test $n"); - $n++; +# Run all the tests. +for my $snippet (@snippets) { + test_snippet('Pod::Man', "man/$snippet"); } - -# Below the marker are bits of POD and corresponding expected text output and -# error output. The options, input, output, and errors are separated by lines -# containing only ###. - -__DATA__ - -### -fixed CR -fixedbold CY -fixeditalic CW -fixedbolditalic CX -### -=head1 FIXED FONTS - -C<foo B<bar I<baz>> I<bay>> -### -.SH "FIXED FONTS" -.IX Header "FIXED FONTS" -\&\f(CR\*(C`foo \f(CYbar \f(CXbaz\f(CY\f(CR \f(CWbay\f(CR\*(C'\fR -### -### - -### -### -=over 4 - -=item Foo - -Bar. - -=head1 NEXT -### -.IP "Foo" 4 -.IX Item "Foo" -Bar. -.SH "NEXT" -.IX Header "NEXT" -.SH "POD ERRORS" -.IX Header "POD ERRORS" -Hey! \fBThe above document had some coding errors, which are explained below:\fR -.IP "Around line 7:" 4 -.IX Item "Around line 7:" -You forgot a '=back' before '=head1' -### -### - -### -stderr 1 -### -=over 4 - -=item Foo - -Bar. - -=head1 NEXT -### -.IP "Foo" 4 -.IX Item "Foo" -Bar. -.SH "NEXT" -.IX Header "NEXT" -### -Pod input around line 7: You forgot a '=back' before '=head1' -### - -### -nourls 1 -### -=head1 URL suppression - -L<anchor|http://www.example.com/> -### -.SH "URL suppression" -.IX Header "URL suppression" -anchor -### -### - -### -errors stderr -### -=over 4 - -=item Foo - -Bar. - -=head1 NEXT -### -.IP "Foo" 4 -.IX Item "Foo" -Bar. -.SH "NEXT" -.IX Header "NEXT" -### -Pod input around line 7: You forgot a '=back' before '=head1' -### - -### -errors die -### -=over 4 - -=item Foo - -Bar. - -=head1 NEXT -### -.IP "Foo" 4 -.IX Item "Foo" -Bar. -.SH "NEXT" -.IX Header "NEXT" -### -Pod input around line 7: You forgot a '=back' before '=head1' -EXCEPTION: POD document had syntax errors -### - -### -errors pod -### -=over 4 - -=item Foo - -Bar. - -=head1 NEXT -### -.IP "Foo" 4 -.IX Item "Foo" -Bar. -.SH "NEXT" -.IX Header "NEXT" -.SH "POD ERRORS" -.IX Header "POD ERRORS" -Hey! \fBThe above document had some coding errors, which are explained below:\fR -.IP "Around line 7:" 4 -.IX Item "Around line 7:" -You forgot a '=back' before '=head1' -### -### - -### -errors none -### -=over 4 - -=item Foo - -Bar. - -=head1 NEXT -### -.IP "Foo" 4 -.IX Item "Foo" -Bar. -.SH "NEXT" -.IX Header "NEXT" -### -### - -### -errors none -### -=over 4 - -=item foo - -Not a bullet. - -=item * - -Also not a bullet. - -=back -### -.IP "foo" 4 -.IX Item "foo" -Not a bullet. -.IP "*" 4 -Also not a bullet. -### -### - -### -quotes \(lq"\(rq" -### -=head1 FOO C<BAR> BAZ - -Foo C<bar> baz. -### -.ie n .SH "FOO \(lq""BAR\(rq"" BAZ" -.el .SH "FOO \f(CWBAR\fP BAZ" -.IX Header "FOO BAR BAZ" -Foo \f(CW\*(C`bar\*(C'\fR baz. -### -### -- Perl5 Master Repository
