summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@iki.fi>2006-08-12 13:50:31 +0300
committerLars Wirzenius <liw@iki.fi>2006-08-12 13:50:31 +0300
commitd7274d7ec9adf3186386a740572615660016f2ea (patch)
tree53170db8662f7cc5e55818c75a89cddc5cfc081d
parent1de6bf1f6fcbfd8a355d688c9ab64fafcd19b13f (diff)
downloadeoc-d7274d7ec9adf3186386a740572615660016f2ea.tar.gz
Avoid uncaught exceptions when mime encoding headers.
-rw-r--r--eoc.py46
1 files changed, 25 insertions, 21 deletions
diff --git a/eoc.py b/eoc.py
index c7fb0c1..16dae19 100644
--- a/eoc.py
+++ b/eoc.py
@@ -491,28 +491,32 @@ class MailingList:
return True
def mime_encode_headers(self, text):
- headers, body = text.split("\n\n", 1)
-
- list = []
- for line in headers.split("\n"):
- if line[0].isspace():
- list[-1] += line
- else:
- list.append(line)
-
- headers = []
- for header in list:
- if self.nice_7bit(header):
- headers.append(header)
- else:
- if ": " in header:
- name, content = header.split(": ", 1)
+ try:
+ headers, body = text.split("\n\n", 1)
+
+ list = []
+ for line in headers.split("\n"):
+ if line[0].isspace():
+ list[-1] += line
else:
- name, content = header.split(":", 1)
- hdr = email.Header.Header(content, "utf-8")
- headers.append(name + ": " + hdr.encode())
-
- return "\n".join(headers) + "\n\n" + body
+ list.append(line)
+
+ headers = []
+ for header in list:
+ if self.nice_7bit(header):
+ headers.append(header)
+ else:
+ if ": " in header:
+ name, content = header.split(": ", 1)
+ else:
+ name, content = header.split(":", 1)
+ hdr = email.Header.Header(content, "utf-8")
+ headers.append(name + ": " + hdr.encode())
+
+ return "\n".join(headers) + "\n\n" + body
+ except:
+ error("Cannot MIME encode header, using original ones, sorry")
+ return text
def template(self, template_name, dict):
lang = self.cp.get("list", "language")