sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 5035dd9a0b5825f1bc1181bd512637cd656e5f80
parent 0b5bccf9b8f3373f4db80b00830de475c6c32931
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date:   Mon,  7 Jun 2010 08:54:34 -0700

Merge branch 'master' into next

Diffstat:
M lib/sup/message.rb | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/sup/message.rb b/lib/sup/message.rb
@@ -428,8 +428,21 @@ private
 
       chunks
     elsif m.header.content_type && m.header.content_type.downcase == "message/rfc822"
+      encoding = m.header["Content-Transfer-Encoding"]
       if m.body
-        payload = RMail::Parser.read(m.body)
+        body =
+        case encoding
+        when "base64"
+          m.body.unpack("m")[0]
+        when "quoted-printable"
+          m.body.unpack("M")[0]
+        when "7bit", "8bit", nil
+          m.body
+        else
+          raise EncodingUnsupportedError, encoding.inspect
+        end
+        body = body.normalize_whitespace
+        payload = RMail::Parser.read(body)
         from = payload.header.from.first ? payload.header.from.first.format : ""
         to = payload.header.to.map { |p| p.format }.join(", ")
         cc = payload.header.cc.map { |p| p.format }.join(", ")