From eb2e33ce449f7c720802edc7cfaac4090e4b693e Mon Sep 17 00:00:00 2001 From: Yannik Enss Date: Tue, 7 Dec 2021 16:20:23 +0100 Subject: [PATCH] better header decoding --- generate.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/generate.py b/generate.py index 7595b87..e3c4f5c 100755 --- a/generate.py +++ b/generate.py @@ -29,11 +29,15 @@ IMPORT_RE = re.compile(r"@import\((.*)\)") FILE_RE = re.compile(r"@file\((.*)\)") def decode_header(header): - decoded_header = email.header.decode_header(header)[0] - encoding = decoded_header[1] or "ascii" - if encoding == "unknown-8bit": - encoding = "ascii" - return decoded_header[0].decode(encoding, errors="replace") if isinstance(decoded_header[0], bytes) else decoded_header[0] + decoded_headers = email.header.decode_header(header) + header_strs = [] + for dheader in decoded_headers: + encoding = dheader[1] or "ascii" + if encoding == "unknown-8bit": + encoding = "ascii" + result = dheader[0].decode(encoding, errors="replace") if isinstance(dheader[0], bytes) else dheader[0] + header_strs.append(result) + return "".join(header_strs) def get_body_text(msg): # from https://stackoverflow.com/a/1463144