about summary refs log tree commit homepage
path: root/lib/PublicInbox/MsgIter.pm
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-05-07 21:05:45 +0000
committerEric Wong <e@yhbt.net>2020-05-09 08:59:10 +0000
commit453dee4881a9c764b09d33f3a827879f2cd3669d (patch)
treee1c5d2fcb1b5e4a7571e9eaf59d6ce6660f3e200 /lib/PublicInbox/MsgIter.pm
parent8d1b87f498ea47bb752ea24900372df192d322fb (diff)
downloadpublic-inbox-453dee4881a9c764b09d33f3a827879f2cd3669d.tar.gz
This doesn't make any difference for most multipart
messages (or any single part messages).  However,
this starts having space savings when parts start
nesting.

It also slightly simplifies callers.
Diffstat (limited to 'lib/PublicInbox/MsgIter.pm')
-rw-r--r--lib/PublicInbox/MsgIter.pm6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/PublicInbox/MsgIter.pm b/lib/PublicInbox/MsgIter.pm
index cd5a5d99..7c28d019 100644
--- a/lib/PublicInbox/MsgIter.pm
+++ b/lib/PublicInbox/MsgIter.pm
@@ -20,12 +20,14 @@ sub em_each_part ($$;$$) {
                 my $i = 0;
                 @parts = map { [ $_, 1, ++$i ] } @parts;
                 while (my $p = shift @parts) {
-                        my ($part, $depth, @idx) = @$p;
+                        my ($part, $depth, $idx) = @$p;
                         my @sub = $part->subparts;
                         if (@sub) {
                                 $depth++;
                                 $i = 0;
-                                @sub = map { [ $_, $depth, @idx, ++$i ] } @sub;
+                                @sub = map {
+                                        [ $_, $depth, "$idx.".(++$i) ]
+                                } @sub;
                                 @parts = (@sub, @parts);
                         } else {
                                 $cb->($p, $cb_arg);