John Lenz avatar John Lenz committed 24b1a3e

Don't error out on message/rfc822

Comments (0)

Files changed (1)

src/NotmuchCmd.hs

         x <- v .:? "content"
         f <- v .:? "filename"
         cs <- v .:? "content-charset"
-        case x of
-            (Just (Array _)) -> MessagePart i t cs f . Right <$> v .: "content"
-            (Just (String c)) -> return $ MessagePart i t cs f $ Left c
-            (Just _) -> fail $ "Invalid content: " ++ show x
-            Nothing -> return $ MessagePart i t cs f $ Left ""
+        let ctype = T.takeWhile (/= '/') t
+        case (ctype, x) of
+            ("multipart", Just (Array _)) -> MessagePart i t cs f . Right <$> v .: "content"
+            (_, Just (String c)) -> return $ MessagePart i t cs f $ Left c
+            (_, Just _) -> return $ MessagePart i t cs f $ Left $ "Unknown content-type: " `T.append` t
+            (_, Nothing) -> return $ MessagePart i t cs f $ Left ""
 
     parseJSON x = fail $ "Error parsing part: " ++ show x
 
 
     v <- runResourceT $ sourceProcess process $$ sinkParser json
     case fromJSON v of
-        Error e -> throw $ NotmuchError $ "Error parsing: " ++ e
+        Error e -> throw $ NotmuchError $ "Error parsing for " ++ show args ++ " : " ++ e
         Success x -> return x
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.