X-Git-Url: http://git.tremily.us/?p=ikiwiki.git;a=blobdiff_plain;f=ikiwiki;h=d1a31eb551fe2afdab4c7ccbd9388190097f3200;hp=9c59c5c3a4aa7f646a48c75bf771ed642b4011ec;hb=1dac1cfc01d097711206320b7910cb296ae8c246;hpb=317c0275d81b7aa4f3f0848cd98ea86a2a975fdd diff --git a/ikiwiki b/ikiwiki index 9c59c5c3a..d1a31eb55 100755 --- a/ikiwiki +++ b/ikiwiki @@ -489,7 +489,7 @@ sub rcs_commit ($$$) { #{{{ # 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 @@ -501,7 +501,7 @@ sub rcs_commit ($$$) { #{{{ 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"); @@ -567,7 +567,7 @@ sub rcs_recentchanges ($) { #{{{ $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; } @@ -1131,9 +1131,16 @@ sub cgi_editpage ($$) { #{{{ 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; @@ -1281,8 +1288,8 @@ sub setup () { # {{{ } #}}} # main {{{ -lockwiki(); setup() if $config{setup}; +lockwiki(); if ($config{wrapper}) { gen_wrapper(%config); exit;