diff options
-rw-r--r-- | IkiWiki/CGI.pm | 13 | ||||
-rw-r--r-- | IkiWiki/Rcs/Stub.pm | 2 |
2 files changed, 9 insertions, 6 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 31b1f748a..07319ad22 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -497,9 +497,11 @@ sub cgi_editpage ($$) { #{{{ else { # save page check_canedit($page, $q, $session); - if (! -e "$config{srcdir}/$file" && - ! -e "$config{underlaydir}/$file" && - $form->field("do") ne "create") { + + my $exists=-e "$config{srcdir}/$file"; + + if ($form->field("do") ne "create" && + ! $exists && ! -e "$config{underlaydir}/$file") { $form->tmpl_param("page_gone", 1); $form->field(name => "do", value => "create", force => 1); $form->tmpl_param("page_select", 0); @@ -510,8 +512,7 @@ sub cgi_editpage ($$) { #{{{ print misctemplate($form->title, $form->render(submit => \@buttons)); return; } - elsif (-e "$config{srcdir}/$file" && - $form->field("do") eq "create") { + elsif ($form->field("do") eq "create" && $exists) { $form->tmpl_param("creation_conflict", 1); $form->field(name => "do", value => "edit", force => 1); $form->tmpl_param("page_select", 0); @@ -558,7 +559,7 @@ sub cgi_editpage ($$) { #{{{ $message=$form->field('comments'); } - if (! -e "$config{srcdir}/$file") { + if (! $exists) { rcs_add($file); } diff --git a/IkiWiki/Rcs/Stub.pm b/IkiWiki/Rcs/Stub.pm index 03757758a..19ecfa88d 100644 --- a/IkiWiki/Rcs/Stub.pm +++ b/IkiWiki/Rcs/Stub.pm @@ -29,6 +29,8 @@ sub rcs_commit ($$$;$$) { sub rcs_add ($) { # Add a file. The filename is relative to the root of the srcdir. + # Note that this should not check the new file in, it should only + # prepare for it to be checked in when rcs_commit is called. } sub rcs_recentchanges ($) { |