summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2021-10-24 02:59:08 +0530
committerArun Isaac2021-10-24 02:59:08 +0530
commita00a8e5e4a9ac6ca9a603c799982bcd46137c3de (patch)
treee7431fecb36830584f9c804dda00efee8ae5d795
parent9d2c3b593a583eff3a1aa4ce95808644bb0b54ae (diff)
downloadguile-email-a00a8e5e4a9ac6ca9a603c799982bcd46137c3de.tar.gz
guile-email-a00a8e5e4a9ac6ca9a603c799982bcd46137c3de.tar.lz
guile-email-a00a8e5e4a9ac6ca9a603c799982bcd46137c3de.zip
email: Handle Received header with two tokens but no timestamp.
* email/email.scm (parse-email-headers): Match Received header with timestamp more precisely. * tests/email.scm ("Parse Received header with two tokens but no timestamp"): No test.
-rw-r--r--email/email.scm2
-rw-r--r--tests/email.scm11
2 files changed, 12 insertions, 1 deletions
diff --git a/email/email.scm b/email/email.scm
index 7aea2d3..71f0718 100644
--- a/email/email.scm
+++ b/email/email.scm
@@ -1043,7 +1043,7 @@ list of header keys and values."
(peg:tree
(match-pattern fields headers))
`((received . ,(match-lambda*
- (`(received ,tokens ,timestamp)
+ (('received tokens (? date? timestamp))
(list 'received (string-join tokens) timestamp))
(('received tokens ...)
(list 'received (string-join tokens)))))
diff --git a/tests/email.scm b/tests/email.scm
index f283e71..a6d2b46 100644
--- a/tests/email.scm
+++ b/tests/email.scm
@@ -547,6 +547,17 @@ Content-Type: text/plain; charset=utf-8
(charset . "utf-8"))
(content-transfer-encoding . 7bit)))
+;; TODO: Fix this test once previous test is addressed.
+(test-alist= "Parse Received header with two tokens but no timestamp"
+ (parse-email-headers
+ "Received: from foo
+")
+ `((trace received "from foo")
+ (content-type (type . text)
+ (subtype . plain)
+ (charset . "utf-8"))
+ (content-transfer-encoding . 7bit)))
+
;;;
;;; Email addresses