-# Copyright (C) 2015, all contributors <meta@public-inbox.org>
+# Copyright (C) 2015 all contributors <meta@public-inbox.org>
# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
package PublicInbox::MID;
use strict;
use warnings;
use base qw/Exporter/;
-our @EXPORT_OK = qw/mid_clean mid_compressed mid2path/;
+our @EXPORT_OK = qw/mid_clean mid_compress mid2path/;
use Digest::SHA qw/sha1_hex/;
use constant MID_MAX => 40; # SHA-1 hex length
my ($mid) = @_;
defined($mid) or die "no Message-ID";
# MDA->precheck did more checking for us
- $mid =~ s/\A\s*<?//;
- $mid =~ s/>?\s*\z//;
+ if ($mid =~ /<([^>]+)>/) {
+ $mid = $1;
+ }
$mid;
}
# this is idempotent
-sub mid_compressed {
+sub mid_compress {
my ($mid, $force) = @_;
# XXX dirty hack! FIXME!
unless (defined $x38) {
# compatibility with old links (or short Message-IDs :)
- $mid = sha1_hex($mid);
+ $mid = sha1_hex(mid_clean($mid));
($x2, $x38) = ($mid =~ /\A([a-f0-9]{2})([a-f0-9]{38})\z/);
}
"$x2/$x38";