From a80fd0c8e19464f95dec5a5c2d128a1614f51ee5 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 6 Oct 2021 11:19:36 +0000 Subject: msg_iter: split_quotes adds trailing "\n" The regexp in split_quotes relies on the presence of a final "\n", so add it wherever we need to instead of making it the responsibility of every caller. This probably doesn't matter in practice since every email seems to have a "\n" as the final byte (due to the way SMTP works), but maybe there's some odd ones that'll get imported via lei. --- lib/PublicInbox/MsgIter.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox/MsgIter.pm') diff --git a/lib/PublicInbox/MsgIter.pm b/lib/PublicInbox/MsgIter.pm index 9c6581cc..dd28417b 100644 --- a/lib/PublicInbox/MsgIter.pm +++ b/lib/PublicInbox/MsgIter.pm @@ -98,12 +98,16 @@ sub msg_part_text ($$) { # returns an array of quoted or unquoted sections sub split_quotes { + # some editors don't put trailing newlines at the end, + # make sure split_quotes can work: + $_[0] .= "\n" if substr($_[0], -1) ne "\n"; + # Quiet "Complex regular subexpression recursion limit" warning # in case an inconsiderate sender quotes 32K of text at once. # The warning from Perl is harmless for us since our callers can # tolerate less-than-ideal matches which work within Perl limits. no warnings 'regexp'; - split(/((?:^>[^\n]*\n)+)/sm, shift); + split(/((?:^>[^\n]*\n)+)/sm, $_[0]); } 1; -- cgit v1.2.3-24-ge0c7