aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS5
-rw-r--r--README.org2
-rw-r--r--email/email.scm25
-rw-r--r--website/releases/guile-email-0.4.0.tar.lzbin0 -> 36297 bytes
-rw-r--r--website/releases/guile-email-0.4.0.tar.lz.asc11
-rw-r--r--website/releases/guile-email-0.4.1.tar.lzbin0 -> 36375 bytes
-rw-r--r--website/releases/guile-email-0.4.1.tar.lz.asc11
7 files changed, 41 insertions, 13 deletions
diff --git a/NEWS b/NEWS
index 74a0f2c..8820848 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,11 @@ Copyright © 2019, 2023, 2025 Arun Isaac <arunisaac@systemreboot.net>
Please send guile-email bug reports to guile-email@systemreboot.net
+* Changes in 0.4.1 (since 0.4.0)
+** Noteworthy bug fixes
+*** Return ~#f~ from ~email-date~ on invalid Date fields
+Previously, the empty list was returned.
+
* Changes in 0.4.0 (since 0.3.2)
** Add accessors for common header fields
Add accessors email-from, email-to, email-cc, email-bcc,
diff --git a/README.org b/README.org
index c03d3fa..f48ef63 100644
--- a/README.org
+++ b/README.org
@@ -30,6 +30,8 @@ guile-email is used by
Download release tarballs.
+- 2025-03-16 [[./releases/guile-email-0.4.1.tar.lz][guile-email-0.4.1.tar.lz]] [[./releases/guile-email-0.4.1.tar.lz.asc][GPG Signature]]
+- 2025-03-13 [[./releases/guile-email-0.4.0.tar.lz][guile-email-0.4.0.tar.lz]] [[./releases/guile-email-0.4.0.tar.lz.asc][GPG Signature]]
- 2025-02-12 [[./releases/guile-email-0.3.2.tar.lz][guile-email-0.3.2.tar.lz]] [[./releases/guile-email-0.3.2.tar.lz.asc][GPG Signature]]
- 2023-09-04 [[./releases/guile-email-0.3.1.tar.lz][guile-email-0.3.1.tar.lz]] [[./releases/guile-email-0.3.1.tar.lz.asc][GPG Signature]]
- 2023-01-06 [[./releases/guile-email-0.3.0.tar.lz][guile-email-0.3.0.tar.lz]] [[./releases/guile-email-0.3.0.tar.lz.asc][GPG Signature]]
diff --git a/email/email.scm b/email/email.scm
index 5e1ef9d..d37b2a9 100644
--- a/email/email.scm
+++ b/email/email.scm
@@ -79,35 +79,34 @@
(headers mime-entity-headers)
(body mime-entity-body))
-(define (sanitize-field email field)
- "Sanitize @var{field} value in @var{email} and return a new sanitized
-value."
+(define (validate-field email field)
+ "Validate @var{field} value in @var{email}. Return @code{#f} if value
+is invalid. Else, return the value unchanged."
(let ((field-value (assq-ref (email-headers email)
field)))
- (if (string? field-value)
- ;; Invalid fields show up as strings in the parse tree.
- ;; Discard them and return an empty list.
- (list)
- field-value)))
+ ;; Invalid fields show up as strings in the parse tree. Discard
+ ;; them and return #f.
+ (and (not (string? field-value))
+ field-value)))
(define (email-from email)
"Return list of From addresses in @var{email}."
- (or (sanitize-field email 'from)
+ (or (validate-field email 'from)
(list)))
(define (email-to email)
"Return list of To addresses in @var{email}."
- (or (sanitize-field email 'to)
+ (or (validate-field email 'to)
(list)))
(define (email-cc email)
"Return list of Cc addresses in @var{email}."
- (or (sanitize-field email 'cc)
+ (or (validate-field email 'cc)
(list)))
(define (email-bcc email)
"Return list of Bcc addresses in @var{email}."
- (or (sanitize-field email 'bcc)
+ (or (validate-field email 'bcc)
(list)))
(define (email-subject email)
@@ -117,7 +116,7 @@ value."
(define (email-date email)
"Return Date of @var{email}."
- (sanitize-field email 'date))
+ (validate-field email 'date))
(define (email-message-id email)
"Return Message-ID of @var{email}."
diff --git a/website/releases/guile-email-0.4.0.tar.lz b/website/releases/guile-email-0.4.0.tar.lz
new file mode 100644
index 0000000..91dee73
--- /dev/null
+++ b/website/releases/guile-email-0.4.0.tar.lz
Binary files differ
diff --git a/website/releases/guile-email-0.4.0.tar.lz.asc b/website/releases/guile-email-0.4.0.tar.lz.asc
new file mode 100644
index 0000000..e7882d3
--- /dev/null
+++ b/website/releases/guile-email-0.4.0.tar.lz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAmfSQCMACgkQLiXui2GA
+K7O/AAf/XzBbgHArq6CR/znZBs0LAXmR8hgFrqgD97So8gzGRG+/OvIFXWPbm+mZ
+QsZBddIyYNoUN1KCWZ6wF73bCcE3bNNyzskXOu04MbKIa/2pg6Ocb7ZZtIEcONKg
+FWnwleA7d7EKcxYhQIhIMZEak+dxylzpvHLpp0IIleWLqu5rkCtGt24hxY0xiMgS
+HXlTqF4onxpo/wtnmFPnrw5YWn3+hXPgMqvcl/uW/APi1D1S/x6u+zzHsq7FPZ87
+uWey2Xxpf/2621y53kSniEhSuDNUnF3un4MMJBZwhTdKK+tRkWQzBTh8NXvsUbXZ
+YnFuqBkr6REbtxQeNg6JSY2x0CDAew==
+=X/Ey
+-----END PGP SIGNATURE-----
diff --git a/website/releases/guile-email-0.4.1.tar.lz b/website/releases/guile-email-0.4.1.tar.lz
new file mode 100644
index 0000000..cfeda4d
--- /dev/null
+++ b/website/releases/guile-email-0.4.1.tar.lz
Binary files differ
diff --git a/website/releases/guile-email-0.4.1.tar.lz.asc b/website/releases/guile-email-0.4.1.tar.lz.asc
new file mode 100644
index 0000000..3b13b2e
--- /dev/null
+++ b/website/releases/guile-email-0.4.1.tar.lz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCAAdFiEEf3MDQ/Lwnzx3v3nTLiXui2GAK7MFAmfWYgkACgkQLiXui2GA
+K7MkswgAlsxeCkP6jjh2MI6Dhnm/6jCEo130t32SCom87WbA/1swFa3qGQLxT+JO
+6I7ZAZtFxLolgf5YGVF60h10cPOQ/feYCz8qwPL04mY3vxiJf0lYltY/Qh2NNQny
+MODKYLMK484L6MPOnkuxM0U4967Sre4hONS5ZoL5N9bsEu5ceTeIBZXGviBR0OsF
+GED1ma5FrAKcx/GG8D81Kk5RtMT8aJ83WF/eT+S2vjH37/sFm1ddwd/cEXXQ82/k
+XHZznYhHDwd1TjPGNBV2FAlsa4uXtfFbImqBil0J/jDOoZnv91uHBR9W+cJ5fD8M
+u8OWicXbALe0TyxIRae+T/5hesYsbw==
+=yQiT
+-----END PGP SIGNATURE-----