X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/c39d459fa4114fe3f7d861b3e7a441084a1cccaa41d79168de75e96987370c99..5389af3745819e46fd9318799dd52e7c988ec75593810dc5e24f3cf0d73d4cf7:/gitweb.perl
diff --git a/gitweb.perl b/gitweb.perl
index 0fac8e2..eb04ebb 100755
--- a/gitweb.perl
+++ b/gitweb.perl
@@ -121,7 +121,7 @@ our %feature = (
# To disable system wide have in $GITWEB_CONFIG
# $feature{'snapshot'}{'default'} = [undef];
# To have project specific config enable override in $GITWEB_CONFIG
- # $feature{'blame'}{'override'} = 1;
+ # $feature{'snapshot'}{'override'} = 1;
# and in project config gitweb.snapshot = none|gzip|bzip2;
'snapshot' => {
'sub' => \&feature_snapshot,
@@ -1295,8 +1295,9 @@ sub parse_commit {
$co{'author'} = $1;
$co{'author_epoch'} = $2;
$co{'author_tz'} = $3;
- if ($co{'author'} =~ m/^([^<]+) ) {
- $co{'author_name'} = $1;
+ if ($co{'author'} =~ m/^([^<]+) <([^>]*)>/) {
+ $co{'author_name'} = $1;
+ $co{'author_email'} = $2;
} else {
$co{'author_name'} = $co{'author'};
}
@@ -1305,7 +1306,12 @@ sub parse_commit {
$co{'committer_epoch'} = $2;
$co{'committer_tz'} = $3;
$co{'committer_name'} = $co{'committer'};
- $co{'committer_name'} =~ s/ <.*//;
+ if ($co{'committer'} =~ m/^([^<]+) <([^>]*)>/) {
+ $co{'committer_name'} = $1;
+ $co{'committer_email'} = $2;
+ } else {
+ $co{'committer_name'} = $co{'committer'};
+ }
}
}
if (!defined $co{'tree'}) {
@@ -2436,6 +2442,7 @@ sub git_project_list_body {
($pr->{'age'}, $pr->{'age_string'}) = @aa;
if (!defined $pr->{'descr'}) {
my $descr = git_get_project_description($pr->{'path'}) || "";
+ $pr->{'descr_long'} = to_utf8($descr);
$pr->{'descr'} = chop_str($descr, 25, 5);
}
if (!defined $pr->{'owner'}) {
@@ -2471,7 +2478,7 @@ sub git_project_list_body {
} else {
print "
\n";
- my $nr;
- while (my $line = <$fd>) {
- chomp $line;
- $nr++;
- $line = untabify($line);
- printf "
\n",
- $nr, $nr, $nr, esc_html($line, -nbsp=>1);
+ if ($mimetype =~ m!^text/!) {
+ my $nr;
+ while (my $line = <$fd>) {
+ chomp $line;
+ $nr++;
+ $line = untabify($line);
+ printf "
\n",
+ $nr, $nr, $nr, esc_html($line, -nbsp=>1);
+ }
+ } elsif ($mimetype =~ m!^image/!) {
+ print qq!

$hash,
+ hash_base=>$hash_base, file_name=>$file_name) .
+ qq!" />\n!;
}
close $fd
or print "Reading blob failed.\n";
@@ -3392,8 +3415,7 @@ sub git_snapshot {
my $filename = basename($project) . "-$hash.tar.$suffix";
print $cgi->header(
- -type => 'application/x-tar',
- -content_encoding => $ctype,
+ -type => "application/$ctype",
-content_disposition => 'inline; filename="' . "$filename" . '"',
-status => '200 OK');
@@ -4196,7 +4218,7 @@ sub git_feed {
}
if (defined($revlist[0])) {
%latest_commit = parse_commit($revlist[0]);
- %latest_date = parse_date($latest_commit{'committer_epoch'});
+ %latest_date = parse_date($latest_commit{'author_epoch'});
print $cgi->header(
-type => $content_type,
-charset => 'utf-8',
@@ -4274,7 +4296,7 @@ XML
}
if (defined $logo_url) {
# not twice as wide as tall: 72 x 27 pixels
- print "
" . esc_url($logo_url) . "\n";
+ print "
" . esc_url($logo) . "\n";
}
if (! %latest_date) {
# dummy date to keep the feed valid until commits trickle in:
@@ -4289,10 +4311,10 @@ XML
my $commit = $revlist[$i];
my %co = parse_commit($commit);
# we read 150, we always show 30 and the ones more recent than 48 hours
- if (($i >= 20) && ((time - $co{'committer_epoch'}) > 48*60*60)) {
+ if (($i >= 20) && ((time - $co{'author_epoch'}) > 48*60*60)) {
last;
}
- my %cd = parse_date($co{'committer_epoch'});
+ my %cd = parse_date($co{'author_epoch'});
# get list of changed files
open $fd, "-|", git_cmd(), "diff-tree", '-r', @diff_opts,
@@ -4318,9 +4340,19 @@ XML
print "
\n" .
"" . esc_html($co{'title'}) . "\n" .
"$cd{'iso-8601'}\n" .
- "" . esc_html($co{'author_name'}) . "\n" .
+ "\n" .
+ " " . esc_html($co{'author_name'}) . "\n";
+ if ($co{'author_email'}) {
+ print " " . esc_html($co{'author_email'}) . "\n";
+ }
+ print "\n" .
# use committer for contributor
- "" . esc_html($co{'committer_name'}) . "\n" .
+ "\n" .
+ " " . esc_html($co{'committer_name'}) . "\n";
+ if ($co{'committer_email'}) {
+ print " " . esc_html($co{'committer_email'}) . "\n";
+ }
+ print "\n" .
"$cd{'iso-8601'}\n" .
"\n" .
"$co_url\n" .