summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-03-14 06:19:16 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-03-14 06:19:16 +0000
commitb26de7676bf5d787172e97842e264ad5b1748bad (patch)
tree86c1df869191f5638e7b7a938183008795ab954e
parent7f8efe4524fb8cc2066e07c4f9fbad3b14fbccfb (diff)
fix two bugs in page location in new page creation
-rwxr-xr-xikiwiki9
1 files changed, 7 insertions, 2 deletions
diff --git a/ikiwiki b/ikiwiki
index 53a86c1ed..1c16b6725 100755
--- a/ikiwiki
+++ b/ikiwiki
@@ -1020,26 +1020,31 @@ sub cgi_editpage ($$) { #{{{
}
my @page_locs;
+ my $best_loc;
my ($from)=$form->param('from')=~/$config{wiki_file_regexp}/;
if (! defined $from || ! length $from ||
$from ne $form->param('from') ||
$from=~/$config{wiki_file_prune_regexp}/ || $from=~/^\//) {
- @page_locs=$page;
+ @page_locs=$best_loc=$page;
}
else {
my $dir=$from."/";
$dir=~s![^/]+/$!!;
push @page_locs, $dir.$page;
push @page_locs, "$from/$page";
+ $best_loc="$from/$page";
while (length $dir) {
$dir=~s![^/]+/$!!;
push @page_locs, $dir.$page;
}
+
+ @page_locs = grep { ! exists
+ $pagesources{lc($_)} } @page_locs;
}
$form->tmpl_param("page_select", 1);
$form->field(name => "page", type => 'select',
- options => \@page_locs);
+ options => \@page_locs, value => $best_loc);
$form->title("creating $page");
}
elsif ($form->field("do") eq "edit") {