X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/d0fac462fec818fd477199b6a2ef1fa9b49f58cc98c82502ff5fb5f2b0b786c3..ce7f4e754228707e32e07e75722cdb2dadba5cdeb4656d3d49051bb207149f36:/gitweb.perl?ds=sidebyside diff --git a/gitweb.perl b/gitweb.perl index c8d8c75..a0b1681 100755 --- a/gitweb.perl +++ b/gitweb.perl @@ -2902,6 +2902,11 @@ sub git_header_html { $title EOF +# the stylesheet, favicon etc urls won't work correctly with path_info unless we +# set the appropriate base URL + if ($ENV{'PATH_INFO'}) { + print '\n'; + } # print out each stylesheet that exist if (defined $stylesheet) { #provides backwards capability for those people who define style sheet in a config file @@ -6016,7 +6021,25 @@ sub git_feed { } if (defined($commitlist[0])) { %latest_commit = %{$commitlist[0]}; - %latest_date = parse_date($latest_commit{'author_epoch'}); + my $latest_epoch = $latest_commit{'committer_epoch'}; + %latest_date = parse_date($latest_epoch); + my $if_modified = $cgi->http('IF_MODIFIED_SINCE'); + if (defined $if_modified) { + my $since; + if (eval { require HTTP::Date; 1; }) { + $since = HTTP::Date::str2time($if_modified); + } elsif (eval { require Time::ParseDate; 1; }) { + $since = Time::ParseDate::parsedate($if_modified, GMT => 1); + } + if (defined $since && $latest_epoch <= $since) { + print $cgi->header( + -type => $content_type, + -charset => 'utf-8', + -last_modified => $latest_date{'rfc2822'}, + -status => '304 Not Modified'); + return; + } + } print $cgi->header( -type => $content_type, -charset => 'utf-8', @@ -6088,6 +6111,10 @@ XML "$alt_url\n" . "\n"; } + if (%latest_date) { + print "$latest_date{'rfc2822'}\n"; + print "$latest_date{'rfc2822'}\n"; + } print "gitweb v.$version/$git_version\n"; } elsif ($format eq 'atom') { print <