gitweb: Whitespace cleanup - tabs are for indent, spaces are for align
[gitweb.git] / gitweb / gitweb.perl
index b8e266e0d9b49e834a4f35d25a407ecb03aa6026..ddf593a5bfa4a1afbc6bca8145427470cbc7d1ba 100755 (executable)
 }
 
 our $project = ($cgi->param('p') || $ENV{'PATH_INFO'});
-$project =~ s|^/||; $project =~ s|/$||;
+if (defined $project) {
+       $project =~ s|^/||;
+       $project =~ s|/$||;
+}
 if (defined $project && $project) {
        if (!validate_input($project)) {
                die_error(undef, "Invalid project parameter");
@@ -874,11 +877,15 @@ sub git_header_html {
 <title>$title</title>
 <link rel="stylesheet" type="text/css" href="$stylesheet"/>
 EOF
-       print "<link rel=\"alternate\" title=\"" . esc_param($project) . " log\" href=\"" .
-             "$my_uri?" . esc_param("p=$project;a=rss") . "\" type=\"application/rss+xml\"/>\n" .
-             "</head>\n";
+       if (defined $project) {
+               printf('<link rel="alternate" title="%s log" '.
+                      'href="%s" type="application/rss+xml"/>'."\n",
+                      esc_param($project),
+                      esc_param("$my_uri?p=$project;a=rss"));
+       }
 
-       print "<body>\n" .
+       print "</head>\n" .
+             "<body>\n" .
              "<div class=\"page_header\">\n" .
              "<a href=\"http://www.kernel.org/pub/software/scm/git/docs/\" title=\"git documentation\">" .
              "<img src=\"$logo\" width=\"72\" height=\"27\" alt=\"git\" style=\"float:right; border-width:0px;\"/>" .
@@ -996,7 +1003,7 @@ sub git_get_paging_nav {
        if ($page > 0) {
                $paging_nav .= " &sdot; " .
                        $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=$action;h=$hash;pg=" . ($page-1)),
-                                                        -accesskey => "p", -title => "Alt-p"}, "prev");
+                                -accesskey => "p", -title => "Alt-p"}, "prev");
        } else {
                $paging_nav .= " &sdot; prev";
        }
@@ -1004,7 +1011,7 @@ sub git_get_paging_nav {
        if ($nrevs >= (100 * ($page+1)-1)) {
                $paging_nav .= " &sdot; " .
                        $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=$action;h=$hash;pg=" . ($page+1)),
-                                                        -accesskey => "n", -title => "Alt-n"}, "next");
+                                -accesskey => "n", -title => "Alt-n"}, "next");
        } else {
                $paging_nav .= " &sdot; next";
        }
@@ -1058,7 +1065,6 @@ sub git_shortlog_body {
                #my $ref = defined $refs ? git_get_referencing($refs, $commit) : '';
                my $ref = git_get_referencing($refs, $commit);
                my %co = git_read_commit($commit);
-               my %ad = date_str($co{'author_epoch'});
                if ($alternate) {
                        print "<tr class=\"dark\">\n";
                } else {
@@ -1631,7 +1637,6 @@ sub git_heads {
        git_header_div('summary', $project);
 
        my $taglist = git_read_refs("refs/heads");
-       my $alternate = 0;
        if (defined @$taglist) {
                git_heads_body($taglist, $head);
        }
@@ -1839,9 +1844,9 @@ sub git_log {
                next if !%co;
                my %ad = date_str($co{'author_epoch'});
                git_header_div('commit',
-                                                                        "<span class=\"age\">$co{'age_string'}</span>" .
-                                                                        esc_html($co{'title'}) . $ref,
-                                                                        $commit);
+                              "<span class=\"age\">$co{'age_string'}</span>" .
+                              esc_html($co{'title'}) . $ref,
+                              $commit);
                print "<div class=\"title_text\">\n" .
                      "<div class=\"log_link\">\n" .
                      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit")}, "commit") .
@@ -1906,8 +1911,8 @@ sub git_commit {
        }
        git_header_html(undef, $expires);
        git_page_nav('commit', defined $co{'parent'} ? '' : 'commitdiff',
-                                                        $hash, $co{'tree'}, $hash,
-                                                        $formats_nav);
+                    $hash, $co{'tree'}, $hash,
+                    $formats_nav);
 
        if (defined $co{'parent'}) {
                git_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
@@ -2193,6 +2198,13 @@ sub git_commitdiff {
 
 sub git_commitdiff_plain {
        mkdir($git_temp, 0700);
+       my %co = git_read_commit($hash);
+       if (!%co) {
+               die_error(undef, "Unknown commit object");
+       }
+       if (!defined $hash_parent) {
+               $hash_parent = $co{'parent'} || '--root';
+       }
        open my $fd, "-|", $GIT, "diff-tree", '-r', $hash_parent, $hash
                or die_error(undef, "Open git-diff-tree failed");
        my @difftree = map { chomp; $_ } <$fd>;
@@ -2214,7 +2226,6 @@ sub git_commitdiff_plain {
        }
 
        print $cgi->header(-type => "text/plain", -charset => 'utf-8', '-content-disposition' => "inline; filename=\"git-$hash.patch\"");
-       my %co = git_read_commit($hash);
        my %ad = date_str($co{'author_epoch'}, $co{'author_tz'});
        my $comment = $co{'comment'};
        print "From: $co{'author'}\n" .