diff options
Diffstat (limited to 'Mailman')
-rw-r--r-- | Mailman/Handlers/CookHeaders.py | 11 | ||||
-rw-r--r-- | Mailman/Queue/NewsRunner.py | 11 |
2 files changed, 18 insertions, 4 deletions
diff --git a/Mailman/Handlers/CookHeaders.py b/Mailman/Handlers/CookHeaders.py index c76fe498..fce88c44 100644 --- a/Mailman/Handlers/CookHeaders.py +++ b/Mailman/Handlers/CookHeaders.py @@ -300,8 +300,16 @@ def prefix_subject(mlist, msg, msgdata): h = h.encode('us-ascii') else: h = unicode(h, 'us-ascii').encode('us-ascii') + h = uheader(mlist, h, 'Subject', continuation_ws=ws) del msg['subject'] msg['Subject'] = h + ss = ' '.join([recolon, subject]) + if _isunicode(ss): + ss = ss.encode('us-ascii') + else: + ss = unicode(ss, 'us-ascii').encode('us-ascii') + ss = uheader(mlist, ss, 'Subject', continuation_ws=ws) + msgdata['stripped_subject'] = ss return except UnicodeError: pass @@ -324,6 +332,9 @@ def prefix_subject(mlist, msg, msgdata): h.append(subject, cset) del msg['subject'] msg['Subject'] = h + ss = uheader(mlist, recolon, 'Subject', continuation_ws=ws) + ss.append(subject, cset) + msgdata['stripped_subject'] = ss def ch_oneline(s): diff --git a/Mailman/Queue/NewsRunner.py b/Mailman/Queue/NewsRunner.py index 2b40a3ca..be1dd93d 100644 --- a/Mailman/Queue/NewsRunner.py +++ b/Mailman/Queue/NewsRunner.py @@ -102,11 +102,14 @@ def prepare_message(mlist, msg, msgdata): del msg['approved'] msg['Approved'] = mlist.GetListEmail() # Should we restore the original, non-prefixed subject for gatewayed - # messages? - origsubj = msgdata.get('origsubj') - if not mlist.news_prefix_subject_too and origsubj is not None: + # messages? TK: We use stripped_subject (prefix stripped) which was + # crafted in CookHeaders.py to ensure prefix was stripped from the subject + # came from mailing list user. + stripped_subject = msgdata.get('stripped_subject') \ + or msgdaga.get('origsubj') + if not mlist.news_prefix_subject_too and stripped_subject is not None: del msg['subject'] - msg['subject'] = origsubj + msg['subject'] = stripped_subject # Add the appropriate Newsgroups: header ngheader = msg['newsgroups'] if ngheader is not None: |