X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FSearchMsg.pm;h=c7787ea1003db61221c6c2aa0d84ab41f60fd59d;hb=0ef5872cee83f07c9ae7afceb2e92257507dc3ca;hp=d43853a0ac6a5c5515a27950051ed02a1af3f65b;hpb=dc03db7f4b5822b5763f0c078e6e9b8102cc5e17;p=public-inbox.git diff --git a/lib/PublicInbox/SearchMsg.pm b/lib/PublicInbox/SearchMsg.pm index d43853a0..c7787ea1 100644 --- a/lib/PublicInbox/SearchMsg.pm +++ b/lib/PublicInbox/SearchMsg.pm @@ -9,6 +9,7 @@ use warnings; use PublicInbox::MID qw/mid_clean mid_mime/; use PublicInbox::Address; use PublicInbox::MsgTime qw(msg_timestamp msg_datestamp); +use Time::Local qw(timegm); sub new { my ($class, $mime) = @_; @@ -44,13 +45,11 @@ sub to_doc_data { $self->cc, $oid, $mid0, - $self->ds, - $self->{bytes}, - $self->{lines} + $self->{bytes} || '', + $self->{lines} || '' ); } - sub load_from_data ($$) { my ($self) = $_[0]; # data = $_[1] ( @@ -65,7 +64,6 @@ sub load_from_data ($$) { $self->{blob}, $self->{mid}, - $self->{ds}, $self->{bytes}, $self->{lines} ) = split(/\n/, $_[1]); @@ -75,7 +73,10 @@ sub load_expand { my ($self) = @_; my $doc = $self->{doc}; my $data = $doc->get_data or return; - $self->{ts} = get_val($doc, &PublicInbox::Search::TS); + $self->{ts} = get_val($doc, PublicInbox::Search::TS()); + my $dt = get_val($doc, PublicInbox::Search::DT()); + my ($yyyy, $mon, $dd, $hh, $mm, $ss) = unpack('A4A2A2A2A2A2', $dt); + $self->{ds} = timegm($ss, $mm, $hh, $dd, $mon - 1, $yyyy); utf8::decode($data); load_from_data($self, $data); $self; @@ -90,7 +91,6 @@ sub load_doc { # :bytes and :lines metadata in RFC 3977 sub bytes ($) { $_[0]->{bytes} } sub lines ($) { $_[0]->{lines} } -sub num ($) { $_[0]->{num} ||= _get_term_val($_[0], 'XNUM', qr/\AXNUM/) } sub __hdr ($$) { my ($self, $field) = @_; @@ -100,7 +100,7 @@ sub __hdr ($$) { my $mime = $self->{mime} or return; $val = $mime->header($field); $val = '' unless defined $val; - $val =~ tr/\n/ /; + $val =~ tr/\t\n/ /; $val =~ tr/\r//d; $self->{$field} = $val; }