about summary refs log tree commit homepage
path: root/lib/PublicInbox/Feed.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Feed.pm')
-rw-r--r--lib/PublicInbox/Feed.pm32
1 files changed, 11 insertions, 21 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm
index c2f7f448..8d5648ed 100644
--- a/lib/PublicInbox/Feed.pm
+++ b/lib/PublicInbox/Feed.pm
@@ -62,7 +62,7 @@ sub generate_html_index {
 
         my @messages;
         my $git = try_git_pm($args->{git_dir});
-        my ($first, $last) = each_recent_blob($args, sub {
+        my $last = each_recent_blob($args, sub {
                 my $mime = do_cat_mail($git, $_[0])
                         or return 0;
                 if ($top && ($mime->header('In-Reply-To') ||
@@ -96,7 +96,7 @@ sub generate_html_index {
         });
         dump_html_line($_, 0, \@out) for $th->rootset;
 
-        my $footer = nav_footer($args->{cgi}, $first, $last);
+        my $footer = nav_footer($args->{cgi}, $last);
         $footer = "<hr /><pre>$footer</pre>" if $footer;
         $out[0] . "</pre>$footer</html>";
 }
@@ -104,21 +104,21 @@ sub generate_html_index {
 # private subs
 
 sub nav_footer {
-        my ($cgi, $first, $last) = @_;
+        my ($cgi, $last) = @_;
         $cgi or return '';
         my $old_r = $cgi->param('r');
-        my $prev = '    ';
+        my $head = '    ';
         my $next = '    ';
 
         if ($last) {
                 $next = $cgi->path_info . "?r=$last";
                 $next = qq!<a href="$next">next</a>!;
         }
-        if ($first && $old_r) {
-                $prev = $cgi->path_info . "?r=$first..";
-                $prev = qq!<a href="$prev">prev</a>!;
+        if ($old_r) {
+                $head = $cgi->path_info;
+                $head = qq!<a href="$head">head</a>!;
         }
-        "$prev $next";
+        "$head $next";
 }
 
 sub each_recent_blob {
@@ -131,25 +131,17 @@ sub each_recent_blob {
         my $cgi = $args->{cgi};
 
         # revision ranges may be specified
-        my $reverse;
         my $range = 'HEAD';
         my $r = $cgi->param('r') if $cgi;
-        if ($r) {
-                if ($r =~ /\A(?:$refhex\.\.)?$refhex\z/o) {
-                        $range = $r;
-                } elsif ($r =~ /\A(?:$refhex\.\.)\z/o) {
-                        $reverse = 1;
-                        $range = $r;
-                }
+        if ($r && ($r =~ /\A(?:$refhex\.\.)?$refhex\z/o)) {
+                $range = $r;
         }
 
         # get recent messages
         # we could use git log -z, but, we already know ssoma will not
         # leave us with filenames with spaces in them..
         my @cmd = qw/git log --no-notes --no-color --raw -r/;
-        push @cmd, '--reverse' if $reverse;
         push @cmd, $range;
-        my $first;
 
         my $pid = open(my $log, '-|', @cmd) or
                 die('open `'.join(' ', @cmd) . " pipe failed: $!\n");
@@ -180,15 +172,13 @@ sub each_recent_blob {
                                 last;
                         }
                 }
-        } elsif ($reverse) {
-                unshift @commits, undef
         } else {
                 push @commits, undef;
         }
 
         close $log; # we may EPIPE here
         # for pagination
-        $reverse ? ($commits[-1],$commits[0]) : ($commits[0],$commits[-1]);
+        $commits[-1];
 }
 
 # private functions below