X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/00d761ab53976e8aa53a7e988b74e2681c8accb6..89697f2c7a9cebc9e0c33ca1d056388b9e827eb8:/IkiWiki/Rcs/git.pm?ds=inline diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 5de4d9cc0..6cbcfd14e 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -1,12 +1,10 @@ #!/usr/bin/perl -# Git backend for IkiWiki. -# Copyright 2006 Recai Oktaş -# -# Licensed under the same terms as IkiWiki. use warnings; use strict; use IkiWiki; +use Encode; +use open qw{:utf8 :std}; package IkiWiki; @@ -161,7 +159,7 @@ sub _parse_diff_tree (@) { #{{{ my %ci; # Header line. HEADER: while (my $line = shift @{ $dt_ref }) { - return if $line !~ m/^diff-tree ($sha1_pattern)/; + return if $line !~ m/^(.+) ($sha1_pattern)/; my $sha1 = $1; $ci{'sha1'} = $sha1; @@ -232,7 +230,7 @@ sub _parse_diff_tree (@) { #{{{ } if (length $file) { push @{ $ci{'details'} }, { - 'file' => $file, + 'file' => decode_utf8($file), 'sha1_from' => $sha1_from, 'sha1_to' => $sha1_to, }; @@ -264,6 +262,8 @@ sub git_commit_info (;$$) { #{{{ push @ci, $parsed; } + warn "Cannot parse commit info for '$sha1' commit" if !@ci; + return wantarray ? @ci : $ci[0]; } #}}} @@ -368,7 +368,7 @@ sub rcs_recentchanges ($) { #{{{ $diffurl =~ s/\[\[sha1_to\]\]/$bit->{'sha1_to'}/go; push @pages, { - link => htmllink("", pagename($file), 1), + link => htmllink("", "", pagename($file), 1), diffurl => $diffurl, }, } @@ -386,7 +386,7 @@ sub rcs_recentchanges ($) { #{{{ push @rets, { rev => $sha1, - user => htmllink("", $user, 1), + user => htmllink("", "", $user, 1), committype => $type, when => $when, message => [@message], @@ -420,10 +420,7 @@ sub rcs_notify () { #{{{ my $sha1 = 'HEAD'; # the commit which triggers this action my $ci = git_commit_info($sha1); - if (!defined $ci) { - warn "Cannot parse info for '$sha1' commit"; - return; - } + return if !defined $ci; my @changed_pages = map { $_->{'file'} } @{ $ci->{'details'} }; @@ -454,9 +451,7 @@ sub rcs_notify () { #{{{ } $subject .= " by $user"; - my $template = HTML::Template->new( - filename => "$config{templatedir}/notifymail.tmpl" - ); + my $template = template("notifymail.tmpl"); $template->param( wikiname => $config{wikiname}, diff => $diff,