[prev in list] [next in list] [prev in thread] [next in thread]
List: mailman-cvs
Subject: [Mailman-checkins] [Branch ~mailman-coders/mailman/2.1] Rev 1328:
From: noreply () launchpad ! net
Date: 2011-11-17 21:05:20
Message-ID: 20111117210520.19486.36777.launchpad () ackee ! canonical ! com
[Download RAW message or body]
------------------------------------------------------------
revno: 1328
committer: Mark Sapiro <msapiro@value.net>
branch nick: 2.1
timestamp: Thu 2011-11-17 12:55:13 -0800
message:
Fixed a problem where topics regexps would not match RFC 2047 encoded
Keywords: and/or Subject: headers. Bug #891676.
modified:
Mailman/Handlers/Tagger.py
NEWS
--
lp:mailman/2.1
https://code.launchpad.net/~mailman-coders/mailman/2.1
Your team Mailman Checkins is subscribed to branch lp:mailman/2.1.
To unsubscribe from this branch go to https://code.launchpad.net/~mailman-c=
oders/mailman/2.1/+edit-subscription
["revision-diff.txt" (revision-diff.txt)]
=== modified file 'Mailman/Handlers/Tagger.py'
--- Mailman/Handlers/Tagger.py 2008-12-01 04:30:43 +0000
+++ Mailman/Handlers/Tagger.py 2011-11-17 20:55:13 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2008 by the Free Software Foundation, Inc.
+# Copyright (C) 2001-2011 by the Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -23,6 +23,9 @@
import email.Iterators
import email.Parser
+from email.Header import decode_header
+
+from Mailman import Utils
from Mailman.Logging.Syslog import syslog
CRNL = '\r\n'
@@ -34,10 +37,16 @@
def process(mlist, msg, msgdata):
if not mlist.topics_enabled:
return
+ # Helper function. Return RFC 2047 decoded header as a string in the
+ # charset of the list's preferred language.
+ def _decode(h):
+ if not h:
+ return h
+ return Utils.oneline(h, Utils.GetCharSet(mlist.preferred_language))
# Extract the Subject:, Keywords:, and possibly body text
matchlines = []
- matchlines.append(msg.get('subject', None))
- matchlines.append(msg.get('keywords', None))
+ matchlines.append(_decode(msg.get('subject', None)))
+ matchlines.append(_decode(msg.get('keywords', None)))
if mlist.topics_bodylines_limit == 0:
# Don't scan any body lines
pass
@@ -84,7 +93,7 @@
# the first numlines of body text.
lines = []
lineno = 0
- reader = list(email.Iterators.body_line_iterator(msg))
+ reader = list(email.Iterators.body_line_iterator(msg, decode=True))
while numlines is None or lineno < numlines:
try:
line = reader.pop(0)
=== modified file 'NEWS'
--- NEWS 2011-11-14 00:47:19 +0000
+++ NEWS 2011-11-17 20:55:13 +0000
@@ -71,6 +71,9 @@
Bug Fixes and other patches
+ - Fixed a problem where topics regexps would not match RFC 2047 encoded
+ Keywords: and/or Subject: headers. Bug #891676.
+
- Fixed misleading response to an email approval of a held message.
Bug #889968.
_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: http://mail.python.org/mailman/options/mailman-checkins/mailman-cvs%40progressive-comp.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic