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"; }