about summary refs log tree commit homepage
path: root/lib/PublicInbox/V2Writable.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/V2Writable.pm')
-rw-r--r--lib/PublicInbox/V2Writable.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/PublicInbox/V2Writable.pm b/lib/PublicInbox/V2Writable.pm
index 07319646..93babed5 100644
--- a/lib/PublicInbox/V2Writable.pm
+++ b/lib/PublicInbox/V2Writable.pm
@@ -163,6 +163,19 @@ sub num_for {
                         return if $existing;
                 }
 
+                # AltId may pre-populate article numbers (e.g. X-Mail-Count
+                # or NNTP article number), use that article number if it's
+                # not in Over.
+                my $altid = $self->{-inbox}->{altid};
+                if ($altid && grep(/:file=msgmap\.sqlite3\z/, @$altid)) {
+                        my $num = $self->{mm}->num_for($mid);
+
+                        if (defined $num && !$self->{over}->get_art($num)) {
+                                $$mid0 = $mid;
+                                return $num;
+                        }
+                }
+
                 # very unlikely:
                 warn "<$mid> reused for mismatched content\n";