X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FPod%2FParseLink.pm;h=183255914fd764e048ded74251576f0639a11f33;hb=b616daaf74025a012dfecb9d6242c4d7d4ea2c3b;hp=cced9759a599f5c26c85c575c62e15a5da7a01d3;hpb=91826056ab7442c93de1e63ab5fb15dce5c51d50;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/Pod/ParseLink.pm b/lib/Pod/ParseLink.pm index cced975..1832559 100644 --- a/lib/Pod/ParseLink.pm +++ b/lib/Pod/ParseLink.pm @@ -1,5 +1,5 @@ # Pod::ParseLink -- Parse an L<> formatting code in POD text. -# $Id: ParseLink.pm,v 1.1 2001/11/15 07:58:57 eagle Exp $ +# $Id: ParseLink.pm,v 1.4 2001/11/23 06:19:00 eagle Exp $ # # Copyright 2001 by Russ Allbery # @@ -34,7 +34,7 @@ use Exporter; # Don't use the CVS revision as the version, since this module is also in Perl # core and too many things could munge CVS magic revision strings. This # number should ideally be the same as the CVS revision in podlators, however. -$VERSION = 1.01; +$VERSION = 1.04; ############################################################################## @@ -49,7 +49,7 @@ sub _parse_section { # If the whole link is enclosed in quotes, interpret it all as a section # even if it contains a slash. - return (undef, $1) if (/^"\s*(.*?)\s*"$/); + return (undef, $1) if ($link =~ /^"\s*(.*?)\s*"$/); # Split into page and section on slash, and then clean up quoting in the # section. If there is no section and the name contains spaces, also @@ -95,7 +95,7 @@ sub parselink { } my ($name, $section) = _parse_section ($link); my $inferred = $text || _infer_text ($name, $section); - my $type = ($name =~ /\(\S*\)/) ? 'man' : 'pod'; + my $type = ($name && $name =~ /\(\S*\)/) ? 'man' : 'pod'; return ($text, $inferred, $name, $section, $type); } } @@ -140,12 +140,28 @@ The inferred anchor text is implemented per L: The name may contain embedded EEE and ZEE formatting codes, and the section, anchor text, and inferred anchor text may contain any -formatting codes. Any double quotes around the name or section are removed -as part of the parsing, as are any leading or trailing whitespace. - -No attempt is made to resolve formatting codes. The caller must be prepared -to do that either before or after calling parselink(). (This is because -interpretation of EEE formatting codes may vary by formatter.) +formatting codes. Any double quotes around the section are removed as part +of the parsing, as is any leading or trailing whitespace. + +If the text of the LEE escape is entirely enclosed in double quotes, +it's interpreted as a link to a section for backwards compatibility. + +No attempt is made to resolve formatting codes. This must be done after +calling parselink (since EEE formatting codes can be used to escape +characters that would otherwise be significant to the parser and resolving +them before parsing would result in an incorrect parse of a formatting code +like: + + LbarEslash> + +which should be interpreted as a link to the C POD page +and not as a link to the C section of the C POD page with an +anchor text of C. Note that not only the anchor text will need to +have formatting codes expanded, but so will the target of the link (to deal +with EEE and ZEE formatting codes), and special handling of +the section may be necessary depending on whether the translator wants to +consider markup in sections to be significant when resolving links. See +L for more information. =head1 AUTHOR