Instead of counts starting at 0, we start the single-part
message at 1 like we do with subparts of a multipart message.
This will make it easier to map offsets for "BODY[$SECTION]"
when using IMAP FETCH, since $SECTION must contain non-zero
numbers according to RFC 3501.

This doesn't make any difference for WWW URLs, since single part
messages cannot have downloadable attachments.
---
 lib/PublicInbox/Eml.pm     | 2 +-
 lib/PublicInbox/MsgIter.pm | 2 +-
 t/eml.t                    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/PublicInbox/Eml.pm b/lib/PublicInbox/Eml.pm
index d2bd3915545..ec682b919ea 100644
--- a/lib/PublicInbox/Eml.pm
+++ b/lib/PublicInbox/Eml.pm
@@ -237,7 +237,7 @@ sub mp_descend ($$) {
 sub each_part {
        my ($self, $cb, $arg, $once, $all) = @_;
        my $p = mp_descend($self, $once // 0) or
-                                       return $cb->([$self, 0, 0], $arg);
+                                       return $cb->([$self, 0, 1], $arg);
 
        $cb->([$self, 0, 0], $arg) if ($all || $self->{-call_cb}); # rare
 
diff --git a/lib/PublicInbox/MsgIter.pm b/lib/PublicInbox/MsgIter.pm
index 5ec2a4d9c7f..bb1dfeadc29 100644
--- a/lib/PublicInbox/MsgIter.pm
+++ b/lib/PublicInbox/MsgIter.pm
@@ -34,7 +34,7 @@ sub em_each_part ($$;$$) {
                        }
                }
        } else {
-               $cb->([$mime, 0, 0], $cb_arg);
+               $cb->([$mime, 0, 1], $cb_arg);
        }
 }
 
diff --git a/t/eml.t b/t/eml.t
index a2479f6f068..8d131b1418e 100644
--- a/t/eml.t
+++ b/t/eml.t
@@ -169,7 +169,7 @@ EOF
        is(scalar(@tmp), 1, 'got one part even w/o boundary');
        is($tmp[0]->[0]->[0]->body, "hello world\n", 'body preserved');
        is($tmp[0]->[0]->[1], 0, '$depth is zero');
-       is($tmp[0]->[0]->[2], 0, '@idx is zero');
+       is($tmp[0]->[0]->[2], 1, '@idx is one');
 }
 
 # I guess the following only worked in PI::M because of a happy accident
--
unsubscribe: one-click, see List-Unsubscribe header
archive: https://public-inbox.org/meta/

Reply via email to