"$ts $zone";
}
-sub extract_cmt_info ($) {
- my ($mime) = @_;
+sub extract_cmt_info ($;$) {
+ my ($mime, $v2w) = @_;
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 ($v2w) { # set fallbacks in case message had no date
+ $v2w->{autime} = $at[0];
+ $v2w->{cotime} = $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, $v2w) = @_; # mime = Email::MIME
- my ($name, $email, $at, $ct, $subject) = extract_cmt_info($mime);
+ my ($name, $email, $at, $ct, $subject) = extract_cmt_info($mime, $v2w);
my $path_type = $self->{path_type};
my $path;
if ($path_type eq '2/38') {
defined $num or return; # duplicate
defined $mid0 or die "BUG: $mid0 undefined\n";
my $im = $self->importer;
- my $cmt = $im->add($mime);
+ my $cmt = $im->add($mime, undef, $self); # sets $self->{(au|co)time}
$cmt = $im->get_mark($cmt);
$self->{last_commit}->[$self->{epoch_max}] = $cmt;