From d17a1a084eca29dbb9ff284daa3a31858292bfcc Mon Sep 17 00:00:00 2001 From: Oskar Eichler Date: Fri, 28 Aug 2026 01:04:34 +0300 Subject: [PATCH] Wrap multibyte split results without removed String extensions --- CHANGELOG.rdoc | 2 ++ lib/mail/multibyte/chars.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc index 4727518dd..ab36dffe4 100644 --- a/CHANGELOG.rdoc +++ b/CHANGELOG.rdoc @@ -22,6 +22,8 @@ Code Improvements: Bug Fixes: +* Wrap multibyte split results without removed String extensions @OskarEichler + * Regression: Preserve message-level charset when adding parts (related to Rails ActionMailer) @shields * Regression: Adding a part should not reset the mail's charset to nil @railsbob diff --git a/lib/mail/multibyte/chars.rb b/lib/mail/multibyte/chars.rb index 6afa41e77..17e1aa921 100644 --- a/lib/mail/multibyte/chars.rb +++ b/lib/mail/multibyte/chars.rb @@ -89,7 +89,7 @@ def =~(other) # Example: # Mail::Multibyte.mb_chars('Café périferôl').split(/é/).map { |part| part.upcase.to_s } # => ["CAF", " P", "RIFERÔL"] def split(*args) - @wrapped_string.split(*args).map { |i| i.mb_chars } + @wrapped_string.split(*args).map { |i| chars(i) } end # Like String#[]=, except instead of byte offsets you specify character offsets.