Filter missing messages and return defaults on missing headers.
[software/mumi.git] / mumi / messages.scm
index 805a5183a735dda86b2c67e6e30ffa3a09948f05..ed7e5f38a1654490faca65ce3c0966ae7da19479 100644 (file)
@@ -68,10 +68,11 @@ yet.  Return new results alongside cached results."
   (assoc-ref address 'address))
 
 (define (header message key)
-  (assoc-ref (email-headers message) key))
+  (assoc-ref (or (email-headers message) '()) key))
 
 (define-public (sender message)
-  (first (header message 'from)))
+  (or (and=> (header message 'from) first)
+      "unknown sender"))
 
 (define-public sender-email
   (compose extract-email sender))
@@ -80,7 +81,7 @@ yet.  Return new results alongside cached results."
   (extract-name (sender message)))
 
 (define-public (date message)
-  (header message 'date))
+  (or (header message 'date) "unknown date"))
 
 (define-public (subject message)
   (or (header message 'subject) "(no subject)"))
@@ -97,7 +98,7 @@ yet.  Return new results alongside cached results."
 
 (define-public (recipients message)
   "Return a list of recipient email addresses for the given MESSAGE."
-  (let ((headers (email-headers message)))
+  (let ((headers (or (email-headers message) '())))
     (filter-map (match-lambda
                   (((or 'cc 'bcc 'to) val) val)
                   (_ #f)) headers)))