-@@ -550,11 +550,11 @@
- $content =~ s{(\\?)$config{wiki_link_regexp}}{
- defined $2
- ? ( $1
-- ? "[[$2|$3".(length $4 ? "#$4" : "")."]]"
-+ ? "[[$2|$3".($4 ? "#$4" : "")."]]"
- : htmllink($lpage, $page, linkpage($3),
- anchor => $4, linktext => pagetitle($2)))
- : ( $1
-- ? "[[$3".(length $4 ? "#$4" : "")."]]"
-+ ? "[[$3".($4 ? "#$4" : "")."]]"
- : htmllink($lpage, $page, linkpage($3),
- anchor => $4))
- }eg;
-@@ -628,6 +628,14 @@
+@@ -469,6 +469,10 @@
+ my $page=shift; # the page that will contain the link (different for inline)
+ my $link=shift;
+ my %opts=@_;
++ # we are processing $lpage and so we need to format things in accordance
++ # with the formatting language of $lpage. inline generates HTML so links
++ # will be escaped seperately.
++ my $type=pagetype($pagesources{$lpage});
+
+ my $bestlink;
+ if (! $opts{forcesubpage}) {
+@@ -494,12 +498,17 @@
+ }
+ if (! grep { $_ eq $bestlink } map { @{$_} } values %renderedfiles) {
+ return $linktext unless length $config{cgiurl};
+- return "<span><a href=\"".
+- cgiurl(
+- do => "create",
+- page => pagetitle(lc($link), 1),
+- from => $lpage
+- ).
++ my $url = cgiurl(
++ do => "create",
++ page => pagetitle(lc($link), 1),
++ from => $lpage
++ );
++
++ if ($hooks{htmlescapelink}{$type} && ! $opts{genhtml}){
++ return $hooks{htmlescapelink}{$type}{call}->($url, $linktext,
++ broken => 1);
++ }
++ return "<span><a href=\"". $url.
+ "\">?</a>$linktext</span>"
+ }
+
+@@ -514,6 +523,9 @@
+ $bestlink.="#".$opts{anchor};
+ }
+
++ if ($hooks{htmlescapelink}{$type} && !$opts{genhtml}) {
++ return $hooks{htmlescapelink}{$type}{call}->($bestlink, $linktext);
++ }
+ return "<a href=\"$bestlink\">$linktext</a>";
+ } #}}}
+
+@@ -628,6 +640,14 @@