"$ts $zone";
}
-sub extract_cmt_info ($) {
- my ($mime) = @_;
+sub extract_cmt_info ($;$) {
+ my ($mime, $smsg) = @_;
my $sender = '';
my $from = $mime->header('From');
utf8::encode($subject);
my $at = git_timestamp(my @at = msg_datestamp($hdr));
my $ct = git_timestamp(my @ct = msg_timestamp($hdr));
+ if ($smsg) {
+ $smsg->{ds} = $at[0];
+ $smsg->{ts} = $ct[0];
+ }
($name, $email, $at, $ct, $subject);
}
# returns undef on duplicate
# returns the :MARK of the most recent commit
sub add {
- my ($self, $mime, $check_cb) = @_; # mime = Email::MIME
+ my ($self, $mime, $check_cb, $smsg) = @_; # mime = Email::MIME
- my ($name, $email, $at, $ct, $subject) = extract_cmt_info($mime);
+ my ($name, $email, $at, $ct, $subject) = extract_cmt_info($mime, $smsg);
my $path_type = $self->{path_type};
my $path;
if ($path_type eq '2/38') {
print $w $raw_email, "\n" or wfail;
# v2: we need this for Xapian
- if ($self->{want_object_info}) {
- my $oid = $self->get_mark(":$blob");
- $self->{last_object} = [ $oid, $n, \$raw_email ];
+ if ($smsg) {
+ $smsg->{blob} = $self->get_mark(":$blob");
+ $smsg->{bytes} = $n;
+ $smsg->{-raw_email} = \$raw_email;
}
my $ref = $self->{ref};
my $commit = $self->{mark}++;