X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/2b8098141f784afb2695045b1f02ef2f84329bbd6fb8c8769822f74716d4e3e0..3d2d863f75be984b8d788025d50f5d36fe89bc63c3799291af41f625f2a3b1ac:/gitweb.perl
diff --git a/gitweb.perl b/gitweb.perl
index 578ea50..daab942 100755
--- a/gitweb.perl
+++ b/gitweb.perl
@@ -48,6 +48,8 @@ our $home_text = "++GITWEB_HOMETEXT++";
our $stylesheet = "++GITWEB_CSS++";
# URI of GIT logo
our $logo = "++GITWEB_LOGO++";
+# URI of GIT favicon, assumed to be image/png type
+our $favicon = "++GITWEB_FAVICON++";
# source of projects list
our $projects_list = "++GITWEB_LIST++";
@@ -1222,6 +1224,9 @@ EOF
'href="%s" type="application/rss+xml"/>'."\n",
esc_param($project), href(action=>"rss"));
}
+ if (defined $favicon) {
+ print qq(\n);
+ }
print "\n" .
"
\n" .
@@ -1400,19 +1405,32 @@ sub git_print_page_path {
if (!defined $name) {
print "/
\n";
- } elsif (defined $type && $type eq 'blob') {
+ } else {
+ my @dirname = split '/', $name;
+ my $basename = pop @dirname;
+ my $fullname = '';
+
print "";
- if (defined $hb) {
+ foreach my $dir (@dirname) {
+ $fullname .= $dir . '/';
+ print $cgi->a({-href => href(action=>"tree", file_name=>$fullname,
+ hash_base=>$hb),
+ -title => $fullname}, esc_html($dir));
+ print "/";
+ }
+ if (defined $type && $type eq 'blob') {
print $cgi->a({-href => href(action=>"blob_plain", file_name=>$file_name,
- hash_base=>$hb)},
- esc_html($name));
+ hash_base=>$hb),
+ -title => $name}, esc_html($basename));
+ } elsif (defined $type && $type eq 'tree') {
+ print $cgi->a({-href => href(action=>"tree", file_name=>$file_name,
+ hash_base=>$hb),
+ -title => $name}, esc_html($basename));
+ print "/";
} else {
- print $cgi->a({-href => href(action=>"blob_plain", file_name=>$file_name)},
- esc_html($name));
+ print esc_html($basename);
}
print "
\n";
- } else {
- print "" . esc_html($name) . "
\n";
}
}
@@ -1587,7 +1605,7 @@ sub git_difftree_body {
$cgi->a({-href => href(action=>"blob", hash=>$diff{'to_id'},
hash_base=>$hash, file_name=>$diff{'file'})},
"blob");
- if ($action == "commitdiff") {
+ if ($action eq 'commitdiff') {
# link to patch
$patchno++;
print " | " .
@@ -1608,7 +1626,7 @@ sub git_difftree_body {
hash_base=>$parent, file_name=>$diff{'file'})},
"blob") .
" | ";
- if ($action == "commitdiff") {
+ if ($action eq 'commitdiff') {
# link to patch
$patchno++;
print " | " .
@@ -1654,7 +1672,7 @@ sub git_difftree_body {
hash_base=>$hash, file_name=>$diff{'file'})},
"blob");
if ($diff{'to_id'} ne $diff{'from_id'}) { # modified
- if ($action == "commitdiff") {
+ if ($action eq 'commitdiff') {
# link to patch
$patchno++;
print " | " .
@@ -1696,7 +1714,7 @@ sub git_difftree_body {
hash=>$diff{'to_id'}, file_name=>$diff{'to_file'})},
"blob");
if ($diff{'to_id'} ne $diff{'from_id'}) {
- if ($action == "commitdiff") {
+ if ($action eq 'commitdiff') {
# link to patch
$patchno++;
print " | " .
@@ -2251,7 +2269,8 @@ sub git_blame2 {
my $fd;
my $ftype;
- if (!gitweb_check_feature('blame')) {
+ my ($have_blame) = gitweb_check_feature('blame');
+ if (!$have_blame) {
die_error('403 Permission denied', "Permission denied");
}
die_error('404 Not Found', "File name not defined") if (!$file_name);
@@ -2320,7 +2339,8 @@ HTML
sub git_blame {
my $fd;
- if (!gitweb_check_feature('blame')) {
+ my ($have_blame) = gitweb_check_feature('blame');
+ if (!$have_blame) {
die_error('403 Permission denied', "Permission denied");
}
die_error('404 Not Found', "File name not defined") if (!$file_name);
@@ -2494,7 +2514,7 @@ sub git_blob {
die_error(undef, "No file name defined");
}
}
- my $have_blame = gitweb_check_feature('blame');
+ my ($have_blame) = gitweb_check_feature('blame');
open my $fd, "-|", git_cmd(), "cat-file", "blob", $hash
or die_error(undef, "Couldn't cat $file_name, $hash");
my $mimetype = blob_mimetype($fd, $file_name);
@@ -2570,7 +2590,7 @@ sub git_tree {
my $ref = format_ref_marker($refs, $hash_base);
git_header_html();
my $base = "";
- my $have_blame = gitweb_check_feature('blame');
+ my ($have_blame) = gitweb_check_feature('blame');
if (defined $hash_base && (my %co = parse_commit($hash_base))) {
git_print_page_nav('tree','', $hash_base);
git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
@@ -2779,7 +2799,7 @@ sub git_commit {
"" .
$cgi->a({-href => href(action=>"commit", hash=>$par)}, "commit") .
" | " .
- $cgi->a({-href => href(action=>"commitdiff", hash=>$hash, hash_parent=>$par)}, "commitdiff") .
+ $cgi->a({-href => href(action=>"commitdiff", hash=>$hash, hash_parent=>$par)}, "diff") .
" | " .
"\n";
}