X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/6b6fd778c7b35961736e9087f56e3872f6d9bdc9..b7c86dda2f900dc991d1f6becda56ba3300cccce:/ikiwiki?ds=inline diff --git a/ikiwiki b/ikiwiki index 14c50a9af..167b9d43a 100755 --- a/ikiwiki +++ b/ikiwiki @@ -324,9 +324,10 @@ sub indexlink () { #{{{ return "$config{wikiname}"; } #}}} -sub finalize ($$) { #{{{ +sub finalize ($$$) { #{{{ my $content=shift; my $page=shift; + my $mtime=shift; my $title=basename($page); $title=~s/_/ /g; @@ -354,6 +355,7 @@ sub finalize ($$) { #{{{ content => $content, backlinks => [backlinks($page)], discussionlink => htmllink($page, "Discussion", 1, 1), + mtime => scalar(gmtime($mtime)), ); return $template->output; @@ -385,7 +387,8 @@ sub render ($) { #{{{ $content=linkify($content, $page); $content=htmlize($type, $content); - $content=finalize($content, $page); + $content=finalize($content, $page, + mtime("$config{srcdir}/$file")); check_overwrite("$config{destdir}/".htmlpage($page), $page); writefile("$config{destdir}/".htmlpage($page), $content); @@ -489,7 +492,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 +504,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 +570,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; } @@ -1089,6 +1092,8 @@ sub cgi_editpage ($$) { #{{{ cols => 80); $form->tmpl_param("can_commit", $config{svn}); $form->tmpl_param("indexlink", indexlink()); + $form->tmpl_param("helponformattinglink", + htmllink("", "HelpOnFormatting", 1)); if (! $form->submitted) { $form->field(name => "rcsinfo", value => rcs_prepedit($file), force => 1); @@ -1129,9 +1134,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; @@ -1279,8 +1291,8 @@ sub setup () { # {{{ } #}}} # main {{{ -lockwiki(); setup() if $config{setup}; +lockwiki(); if ($config{wrapper}) { gen_wrapper(%config); exit;