$params{content} =~ s{(?<!\\)$link_regexp}{
my $linktext=$2;
my $link=$linktext;
- if (bestlink($page, $2) eq $old) {
+ if (bestlink($page, IkiWiki::linkpage($linktext)) eq $old) {
$link=IkiWiki::pagetitle($new, 1);
+ $link=~s/ /_/g;
if ($linktext =~ m/.*\/*?[A-Z]/) {
# preserve leading cap of last component
my @bits=split("/", $link);
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 20;
+use Test::More tests => 21;
use Encode;
BEGIN { use_ok("IkiWiki"); }
is(try("bugs", "bugs/foo" => "wishlist/bar", "[[foo]]"), "[[wishlist/bar]]"); # subpage link
is(try("z", "foo_bar" => "bar", "[[foo_bar]]"), "[[bar]]"); # old link with underscore
is(try("z", "foo" => "bar_foo", "[[foo]]"), "[[bar_foo]]"); # new link with underscore
+is(try("z", "foo_bar" => "bar_foo", "[[foo_bar]]"), "[[bar_foo]]"); # both with underscore
is(try("z", "foo" => "bar__".ord("(")."__", "[[foo]]"), "[[bar(]]"); # new link with escaped chars
-is(try("z", "foo__".ord("(")."__" => "bar", "[[foo(]]"), "[[bar(]]"); # old link with escaped chars
+is(try("z", "foo__".ord("(")."__" => "bar(", "[[foo(]]"), "[[bar(]]"); # old link with escaped chars
is(try("z", "foo__".ord("(")."__" => "bar__".ord(")")."__", "[[foo(]]"), "[[bar)]]"); # both with escaped chars