package PublicInbox::Inbox;
use strict;
use warnings;
-use Scalar::Util qw(weaken);
+use Scalar::Util qw(weaken isweak);
use PublicInbox::Git;
use PublicInbox::MID qw(mid2path);
sub weaken_all {
my ($self) = @_;
- weaken($self->{$_}) foreach qw(git mm search);
+ foreach my $f (qw(git mm search)) {
+ isweak($self->{$f}) or weaken($self->{$f});
+ }
}
sub git {
sub msg_by_path ($$;$) {
my ($self, $path, $ref) = @_;
# TODO: allow other refs:
- git($self)->cat_file('HEAD:'.$path, $ref);
+ my $str = git($self)->cat_file('HEAD:'.$path, $ref);
+ $$str =~ s/\A[\r\n]*From [^\r\n]*\r?\n//s if $str;
+ $str;
}
sub msg_by_mid ($$;$) {