X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Ftextutils.py;h=03df5d8590657c9273b5eb1e7fac05db2a0ce19c;hb=dd80b169287a128cd9e3b833852fbf68106385b5;hp=97d09c41ca957f62eadc5015faf9ee922b13829e;hpb=10fc3b5f4ce1f302ec86e8a2c1584fc9f7bb5f04;p=dak.git diff --git a/daklib/textutils.py b/daklib/textutils.py old mode 100755 new mode 100644 index 97d09c41..03df5d85 --- a/daklib/textutils.py +++ b/daklib/textutils.py @@ -22,7 +22,6 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -import codecs import email.Header from dak_exceptions import * @@ -47,18 +46,15 @@ def rfc2047_encode(s): Encodes a (header) string per RFC2047 if necessary. If the string is neither ASCII nor UTF-8, it's assumed to be ISO-8859-1. """ - try: - codecs.lookup('ascii')[1](s) - return s - except UnicodeError: - pass - try: - codecs.lookup('utf-8')[1](s) - h = email.Header.Header(s, 'utf-8', 998) - return str(h) - except UnicodeError: - h = email.Header.Header(s, 'iso-8859-1', 998) - return str(h) + for enc in ['ascii', 'utf-8', 'iso-8859-1']: + try: + h = email.Header.Header(s, enc, 998) + return str(h) + except UnicodeError: + pass + + # If we get here, we're boned beyond belief + return '' ################################################################################ @@ -92,7 +88,7 @@ def fix_maintainer(maintainer): else: m = re_parse_maintainer.match(maintainer) if not m: - raise ParseMaintError, "Doesn't parse as a valid Maintainer field." + raise ParseMaintError("Doesn't parse as a valid Maintainer field.") name = m.group(1) email = m.group(2) @@ -110,7 +106,7 @@ def fix_maintainer(maintainer): rfc2047_maint = "%s <%s>" % (rfc2047_name, email) if email.find("@") == -1 and email.find("buildd_") != 0: - raise ParseMaintError, "No @ found in email address part." + raise ParseMaintError("No @ found in email address part.") return (rfc822_maint, rfc2047_maint, name, email)