lib/PublicInbox/Feed.pm | 14 ++++++++++---- diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 646c85c9977480498d592401d45327aa60643863..1f1c0d6bd98fe5e63be21ca764e5be35cd14acd8 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -77,15 +77,21 @@ '' . '' . PRE_WRAP; - # sort by date, most recent at top + # sort child messages in chronological order $th->order(sub { sort { - $b->topmost->message->header('X-PI-Date') <=> - $a->topmost->message->header('X-PI-Date') + $a->topmost->message->header('X-PI-Date') <=> + $b->topmost->message->header('X-PI-Date') } @_; }); + my %seen; - dump_msg($_, 0, \$html, time, \%seen) for $th->rootset; + # except we sort top-level messages reverse chronologically + for (sort { (eval { $b->message->header('X-PI-Date') } || 0) <=> + (eval { $a->message->header('X-PI-Date') } || 0) + } $th->rootset) { + dump_msg($_, 0, \$html, time, \%seen); + } Email::Address->purge_cache;