]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/MsgTime.pm
triewyde: ficks soem speling errrors
[public-inbox.git] / lib / PublicInbox / MsgTime.pm
index 8eee9a7586922c0fb302421c4c195b4540793fd2..920e8f8a4e7d81f9aec43b0177f39652854f0b60 100644 (file)
@@ -95,7 +95,7 @@ sub str2date_zone ($) {
                $sign = '+' if $off == 0;
                $zone = sprintf('%s%02d%02d', $sign, $tz_hh, $tz_mm);
 
-       # Time::Zone and Date::Parse are part of the same distibution,
+       # Time::Zone and Date::Parse are part of the same distribution,
        # and we need Time::Zone to deal with tz names like "EDT"
        } elsif (eval { require Date::Parse }) {
                $ts = Date::Parse::str2time($date);
@@ -104,7 +104,8 @@ sub str2date_zone ($) {
                # off is the time zone offset in seconds from GMT
                my ($ss,$mm,$hh,$day,$month,$year,$off) =
                                        Date::Parse::strptime($date);
-               return undef unless(defined $off);
+               return unless defined($year);
+               $off //= 0;
 
                # Compute the time zone from offset
                my $sign = ($off < 0) ? '-' : '+';
@@ -166,21 +167,21 @@ sub msg_date_only ($) {
 }
 
 # Favors Received header for sorting globally
-sub msg_timestamp ($) {
-       my ($hdr) = @_; # Email::MIME::Header
+sub msg_timestamp ($;$) {
+       my ($hdr, $fallback) = @_; # Email::MIME::Header
        my $ret;
        $ret = msg_received_at($hdr) and return time_response($ret);
        $ret = msg_date_only($hdr) and return time_response($ret);
-       wantarray ? (time, '+0000') : time;
+       time_response([ $fallback // time, '+0000' ]);
 }
 
 # Favors the Date: header for display and sorting within a thread
-sub msg_datestamp ($) {
-       my ($hdr) = @_; # Email::MIME::Header
+sub msg_datestamp ($;$) {
+       my ($hdr, $fallback) = @_; # Email::MIME::Header
        my $ret;
        $ret = msg_date_only($hdr) and return time_response($ret);
        $ret = msg_received_at($hdr) and return time_response($ret);
-       wantarray ? (time, '+0000') : time;
+       time_response([ $fallback // time, '+0000' ]);
 }
 
 1;