Hi! On Friday 11 May 2018 18:52:13 Eric Wong wrote: > Hello, I noticed a behavior change somewhere in the Email::MIME > stack when header_str_set is passed a string with a single-quote > (') character in it.
So you mean that input header "Quoted N'Ame" <f...@example.com> is changed to "Quoted N\'Ame" <f...@example.com> right? > On my Debian stable (stretch) machine the behavior is to > leave the single quote alone. On Debian unstable/sid, > a backslash is added before the single-quote. > > Changes from stretch to current sid are as follows: > > perl (including Encode.pm) 5.24.1-3+deb9u3 -> 5.26.2-3 > libemail-mime-perl 1.937-1 -> 1.946-1 > > unchanged: > > libemail-mime-encodings-perl 1.315-1 -> 1.315-2 > (only Debian-specific packaging changes, I suspect) > > > I think the old behavior (not adding backslash) is correct, but > I'm not sure. Both "Quoted N'Ame" <f...@example.com> "Quoted N\'Ame" <f...@example.com> are syntactically and semantically valid and correct. And represent exactly same phrase. Just first one is shorter as an apostrophe character is not needed to escape. (But you can). Escaping ' character is done by Email::Address::XS module which Email::MIME uses. So it is not Email::MIME (related) code. > I can work around the problem with "header_set" > instead. > > use strict; > use warnings; > use Email::MIME; > my $mime = Email::MIME->create; > my $h = 'From'; > my $n = q("Quoted N'Ame" <f...@example.com>); > $mime->header_str_set($h, $n); > print $mime->header($h), "\n"; # adds backslash to ' > > Konstantin hit this with public-inbox on CentOS but using newer > modules from CPAN and older Perl: > https://public-inbox.org/meta/2a2bf0e1-fd1f-f8bf-95bc-dac47906e...@linuxfoundation.org/ Ok, I will change Email::Address::XS module to not escape ' character when it is not needed. I found another similar problems in Email::Address::XS. I will try to fix them in next Email::Address::XS version. And once it will be fixed you would just need to update to new Email::Address::XS version. Nothing to do in Email::MIME. If you know more similar problems, please let me know. Thanks for report! > # cpanm --info Email::MIME > RJBS/Email-MIME-1.946.tar.gz > # cpanm --info Email::MIME::Encodings > RJBS/Email-MIME-Encodings-1.315.tar.gz > # cpanm --info Email::Simple > RJBS/Email-Simple-2.214.tar.gz > # perl --version > > This is perl 5, version 16, subversion 3 (v5.16.3) built for > x86_64-linux-thread-multi > (with 33 registered patches, see perl -V for more detail)