diff options
Diffstat (limited to 'rt/lib/RT/I18N.pm')
-rw-r--r-- | rt/lib/RT/I18N.pm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/rt/lib/RT/I18N.pm b/rt/lib/RT/I18N.pm index e45faf3af..448f4a28e 100644 --- a/rt/lib/RT/I18N.pm +++ b/rt/lib/RT/I18N.pm @@ -289,11 +289,13 @@ sub DecodeMIMEWordsToEncoding { my $str = shift; my $enc = shift; - - @_ = $str =~ m/([^=]*)=\?([^?]+)\?([QqBb])\?([^?]+)\?=([^=]*)/g; - + @_ = $str =~ m/(.*?)=\?([^?]+)\?([QqBb])\?([^?]+)\?=([^=]*)/gc; return ($str) unless (@_); + # add everything that hasn't matched to the end of the latest + # string in array this happen when we have 'key="=?encoded?="; key="plain"' + $_[-1] .= substr($str, pos $str); + $str = ""; while (@_) { my ($prefix, $charset, $encoding, $enc_str, $trailing) = |