}
unshift (@INC, '../blib/lib');
$| = 1;
- print "1..2\n";
+ print "1..7\n";
}
END {
use Pod::Man;
+# Redirect stderr to a file.
+sub stderr_save {
+ open (OLDERR, '>&STDERR') or die "Can't dup STDERR: $!\n";
+ open (STDERR, '> out.err') or die "Can't redirect STDERR: $!\n";
+}
+
+# Restore stderr.
+sub stderr_restore {
+ close STDERR;
+ open (STDERR, '>&OLDERR') or die "Can't dup STDERR: $!\n";
+ close OLDERR;
+}
+
$loaded = 1;
print "ok 1\n";
close TMP;
my $parser = Pod::Man->new (%options) or die "Cannot create parser\n";
open (OUT, '> out.tmp') or die "Cannot create out.tmp: $!\n";
+ stderr_save;
$parser->parse_from_file ('tmp.pod', \*OUT);
+ stderr_restore;
close OUT;
+ my $accents = 0;
open (TMP, 'out.tmp') or die "Cannot open out.tmp: $!\n";
- while (<TMP>) { last if /^\.nh/ }
+ while (<TMP>) {
+ last if /^\.nh/;
+ }
my $output;
{
local $/;
print "Expected\n========\n$expected\nOutput\n======\n$output\n";
}
$n++;
+ open (ERR, 'out.err') or die "Cannot open out.err: $!\n";
+ my $errors;
+ {
+ local $/;
+ $errors = <ERR>;
+ }
+ close ERR;
+ unlink ('out.err');
+ $expected = '';
+ while (<DATA>) {
+ last if $_ eq "###\n";
+ $expected .= $_;
+ }
+ if ($errors eq $expected) {
+ print "ok $n\n";
+ } else {
+ print "not ok $n\n";
+ print "Expected errors:\n ${expected}Errors:\n $errors";
+ }
+ $n++;
}
# Below the marker are bits of POD and corresponding expected text output.
__DATA__
###
-utf8 1
+fixed CR
+fixedbold CY
+fixeditalic CW
+fixedbolditalic CX
###
-=head1 BEYONCÉ
+=head1 FIXED FONTS
-Beyoncé! Beyoncé! Beyoncé!!
+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
+###
+###
- Beyoncé! Beyoncé!
- Beyoncé! Beyoncé!
- Beyoncé! Beyoncé!
+###
+###
+=over 4
-Older versions did not convert Beyoncé in verbatim.
+=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"
###
-.SH "BEYONCÉ"
-.IX Header "BEYONCÉ"
-Beyoncé! Beyoncé! Beyoncé!!
-.PP
-.Vb 3
-\& Beyoncé! Beyoncé!
-\& Beyoncé! Beyoncé!
-\& Beyoncé! Beyoncé!
-.Ve
-.PP
-Older versions did not convert Beyoncé in verbatim.
+tmp.pod around line 7: You forgot a '=back' before '=head1'
###