From: Toshi MARUYAMA Date: Tue, 6 Jun 2017 01:34:52 +0000 (+0000) Subject: allow unicode whitespace after mail handler body delimiters (#17718) X-Git-Tag: 3.4.0~79 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8c03f2a6db22600ea650a516a047a3902917dc01;p=redmine.git allow unicode whitespace after mail handler body delimiters (#17718) Contributed by Holger Just and Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@16609 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb old mode 100644 new mode 100755 index 86ad4eb27..579731943 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -578,7 +578,7 @@ class MailHandler < ActionMailer::Base end unless delimiters.empty? - regex = Regexp.new("^[> ]*(#{ Regexp.union(delimiters) })\s*[\r\n].*", Regexp::MULTILINE) + regex = Regexp.new("^[> ]*(#{ Regexp.union(delimiters) })[[:blank:]]*[\r\n].*", Regexp::MULTILINE) body = body.gsub(regex, '') end body.strip diff --git a/test/fixtures/mail_handler/ticket_on_given_project.eml b/test/fixtures/mail_handler/ticket_on_given_project.eml index 7c0fe3208..e311dfbb7 100644 --- a/test/fixtures/mail_handler/ticket_on_given_project.eml +++ b/test/fixtures/mail_handler/ticket_on_given_project.eml @@ -10,9 +10,9 @@ Date: Sun, 22 Jun 2008 12:28:07 +0200 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; - charset="iso-8859-1"; + charset="utf-8"; reply-type=original -Content-Transfer-Encoding: 7bit +Content-Transfer-Encoding: quoted-printable X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2869 @@ -47,7 +47,7 @@ BREAK This paragraph is between delimiters. ---- +---=C2=A0 This paragraph is after the delimiter so it shouldn't appear. diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index cbfcfa7ad..d5ca795ef 100644 --- a/test/unit/mail_handler_test.rb +++ b/test/unit/mail_handler_test.rb @@ -963,7 +963,7 @@ class MailHandlerTest < ActiveSupport::TestCase assert_issue_created(issue) assert issue.description.include?('This paragraph is before delimiters') assert issue.description.include?('--- This line starts with a delimiter') - assert !issue.description.match(/^---$/) + assert !issue.description.match(/^---#{"\u00A0"}$/) assert !issue.description.include?('This paragraph is after the delimiter') end end