blob: 34e3ac6c8a6aa48489a29232bf59fb5c10c23922 (
plain)
The CGI tries to decide whether an user is trying to edit a new file or not with the following test:
$form->field(name => "newfile",
value => ! -e "$config{srcdir}/$file",
force => 1);
Assume the script is called like this http://example.com/ikiwiki.cgi?page=discussion&from=some-page&do=create . The if (exists $pagesources{$page}) { test determines whether there's a file called $config{srcdir}/discussion . Most installs won't have a $config{srcdir}/discussion page, so this test will fail causing the else clause to be executed. In this case, the else clause results in $file being set to discussion.mdwn . Thus, on typical installs value => ! -e "$config{srcdir}/$file", always succeeds, which results in the expected behaviour, albeit for the wrong reasons. Similarly, the $form->field(name => "rcsinfo", value => rcs_prepedit($file) line is also meaningless because $file isn't what we think it is.
(To confirm that this wasn't just a result of my imagination, I created [[/discussion]] on this site; feel free to delete it now.)
I've fixed it to only look for an existing page if it's not creating a new page, so [[bugs/done]] --[[Joey]]
|