summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--email/email.scm4
-rw-r--r--tests/email.scm13
2 files changed, 14 insertions, 3 deletions
diff --git a/email/email.scm b/email/email.scm
index 631d519..3f4e194 100644
--- a/email/email.scm
+++ b/email/email.scm
@@ -1,5 +1,5 @@
 ;;; guile-email --- Guile email parser
-;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of guile-email.
 ;;;
@@ -224,7 +224,7 @@
 (define-word-pattern cfws-captured-word cfws-captured-atom)
 
 (define-peg-pattern obs-phrase body
-  (and cfws-captured-word (* (or "." cfws word))))
+  (and cfws-captured-word (* (or cfws-captured-word "." cfws))))
 
 ;; We set phrase to be the same as obs-phrase since, according to
 ;; their definitions in RFC5322, all phrases are obs-phrases.
diff --git a/tests/email.scm b/tests/email.scm
index 83ef91f..469389a 100644
--- a/tests/email.scm
+++ b/tests/email.scm
@@ -1,6 +1,6 @@
 ;;; guile-email --- Guile email parser
 ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file was adapted from guile-debbugs and is part of guile-email.
 ;;;
@@ -507,6 +507,17 @@ Received: from zzz ([1.2.3.5]) by ooo.ooo.com  with Maccrosoft SMTPSVC(5.5.1877.
                   (charset . "utf-8"))
     (content-transfer-encoding . 7bit)))
 
+(test-alist= "Parse names with more than two words"
+  (parse-email-headers
+   "From: Foo Bar Foobar <foo@bar.org>
+")
+  `((from ((name . "Foo Bar Foobar")
+           (address . "foo@bar.org")))
+    (content-type (type . text)
+                  (subtype . plain)
+                  (charset . "utf-8"))
+    (content-transfer-encoding . 7bit)))
+
 (test-equal "parse name-addr email address"
   (parse-email-address "Foo <foo@example.org>")
   '((name . "Foo") (address . "foo@example.org")))