1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#$Revision: 1.5 $
package Test_LinkParser;
use Pod::ParseUtils;
use strict;
use vars '@ISA', '$VERSION';
@ISA = 'Pod::Hyperlink';
$VERSION = ('$Revision: 1.5 $' =~ /([\d\.]+)/)[0];
# Override Pod::Hyperlink for the unit tests since different versions behave
# differently WRT decorating links (e.g. '... elsewhere in this document')
TRACE("\$Pod::ParseUtils::VERSION: " . $Pod::ParseUtils::VERSION);
if (1) { # Set to '0' to test against Pod::Hyperlink
*markup = *markup = \&_markup;
*text = *text = \&_text;
}
sub _markup {
my $self = shift;
my $page = $self->page;
my $node = $self->node;
my $type = $self->type;
$self->SUPER::markup(@_);
my $text = $self->text(@_);
DUMP($self);
return $type eq 'hyperlink' ? $text
: $self->alttext ? "Q<" . $self->alttext . ">"
: $page && $node ? "Q<$node> in P<$page>"
: !$page ? "Q<$node>"
: $page && ! $node ?
$page =~ /^(\w+)\((\d)\)/ ? "P<$1>($2)" # manpages
: "P<$page>"
: 'XXX';
}
sub _text {
my $self = shift;
my $page = $self->page;
my $node = $self->node;
my $type = $self->type;
my $text = $self->SUPER::text(@_);
DUMP($self);
return $type eq 'hyperlink' ? $text
: $self->alttext ? $self->alttext
: $page && $node ? "$node in $page"
: !$page ? "$node"
: $page && ! $node ? $page
: 'XXX';
}
sub TRACE {}
sub DUMP {}
|