From a00a8e5e4a9ac6ca9a603c799982bcd46137c3de Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Sun, 24 Oct 2021 02:59:08 +0530 Subject: 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. --- email/email.scm | 2 +- tests/email.scm | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3