# else since rcs_prepedit was called.
my ($oldrev)=$rcstoken=~/^([0-9]+)$/; # untaint
my $rev=svn_info("Revision", "$config{srcdir}/$file");
- if ($rev != $oldrev) {
+ if (defined $rev && defined $oldrev && $rev != $oldrev) {
# Merge their changes into the file that we've
# changed.
chdir($config{srcdir}); # svn merge wants to be here
if (system("svn", "commit", "--quiet", "-m",
possibly_foolish_untaint($message),
- "$config{srcdir}/$file") != 0) {
+ "$config{srcdir}") != 0) {
my $conflict=readfile("$config{srcdir}/$file");
if (system("svn", "revert", "--quiet", "$config{srcdir}/$file") != 0) {
warn("svn revert failed\n");
$user=$2;
$when=concise(ago(time - str2time($3)));
}
- elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/(.+)$/) {
+ elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/([^ ]+)(?:$|\s)/) {
push @pages, { link => htmllink("", pagename($1), 1) }
if length $1;
}
$form->tmpl_param("can_commit", $config{svn});
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
- htmllink("HelpOnFormatting", pagename($1), 1));
+ htmllink("", "HelpOnFormatting", 1));
if (! $form->submitted) {
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
force => 1);
else {
my $dir=$from."/";
$dir=~s![^/]+/$!!;
+
+ if ($page eq 'discussion') {
+ $best_loc="$from/$page";
+ }
+ else {
+ $best_loc=$dir.$page;
+ }
+
push @page_locs, $dir.$page;
push @page_locs, "$from/$page";
- $best_loc="$from/$page";
while (length $dir) {
$dir=~s![^/]+/$!!;
push @page_locs, $dir.$page;
} #}}}
# main {{{
-lockwiki();
setup() if $config{setup};
+lockwiki();
if ($config{wrapper}) {
gen_wrapper(%config);
exit;