<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guile-email/email, branch v0.3.1</title>
<subtitle>Guile email parser</subtitle>
<id>http://git.systemreboot.net/guile-email/atom?h=v0.3.1</id>
<link rel='self' href='http://git.systemreboot.net/guile-email/atom?h=v0.3.1'/>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/'/>
<updated>2023-09-03T17:01:05+00:00</updated>
<entry>
<title>email: Tolerate parentheses in display names.</title>
<updated>2023-09-03T17:01:05+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2023-09-03T17:01:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=900f720a7a0893f37f8c6b328f183e43086c1e52'/>
<id>urn:sha1:900f720a7a0893f37f8c6b328f183e43086c1e52</id>
<content type='text'>
* email/email.scm (define-atom-pattern): Support customization of the
atext pattern as well.
(define-phrase-pattern): New macro.
(obs-phrase): Define using define-phrase-pattern.
(liberal-atext, liberal-cfws-captured-atom,
liberal-cfws-captured-word, liberal-phrase): New patterns.
(display-name): Use liberal-phrase instead of phrase.
* tests/email.scm ("tolerate email addresses with parentheses in
name"): New test.
</content>
</entry>
<entry>
<title>email: Support Date fields with missing seconds.</title>
<updated>2023-01-06T14:27:18+00:00</updated>
<author>
<name>Andrew Whatson</name>
</author>
<published>2023-01-05T10:33:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=aa6a58a152b8ebe0e786682ffd84239ed862dba4'/>
<id>urn:sha1:aa6a58a152b8ebe0e786682ffd84239ed862dba4</id>
<content type='text'>
* email/email.scm (parse-email-headers): Extend the date-time parser to
match when seconds are missing, defaulting to "0".
* tests/email.scm ("parse Date", "parse Date without seconds"): New
tests.

Signed-off-by: Arun Isaac &lt;arunisaac@systemreboot.net&gt;
</content>
</entry>
<entry>
<title>email: Support quoted-printable CR LF sequences.</title>
<updated>2023-01-03T13:27:37+00:00</updated>
<author>
<name>Andrew Whatson</name>
</author>
<published>2023-01-03T12:19:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=8a9c14473f0ae449bfbfe77ba680734e4a14562f'/>
<id>urn:sha1:8a9c14473f0ae449bfbfe77ba680734e4a14562f</id>
<content type='text'>
* email/quoted-printable.scm (quoted-printable-decode): Ignore "=\r\n"
sequences in the input.
* tests/quoted-printable.scm ("quoted-printable decoding of soft line
breaks (=\\n)", "quoted-printable decoding of soft line
breaks (=\\r\\n)"): New tests.

Signed-off-by: Arun Isaac &lt;arunisaac@systemreboot.net&gt;
</content>
</entry>
<entry>
<title>email: Handle Received header with two tokens but no timestamp.</title>
<updated>2021-10-23T21:29:08+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2021-10-23T21:29:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=a00a8e5e4a9ac6ca9a603c799982bcd46137c3de'/>
<id>urn:sha1:a00a8e5e4a9ac6ca9a603c799982bcd46137c3de</id>
<content type='text'>
* 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.
</content>
</entry>
<entry>
<title>email: Handle unrecognized Content-Transfer-Encoding headers.</title>
<updated>2021-10-23T21:22:06+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2021-10-23T21:16:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=86f0af337b3d4c8afc075c09a1aae4b1694d9ebd'/>
<id>urn:sha1:86f0af337b3d4c8afc075c09a1aae4b1694d9ebd</id>
<content type='text'>
* email/email.scm (handle-invalid-headers): New function.
(parse-email-headers): Handle invalid headers.
* tests/email.scm ("Assume application/octet-stream Content-Type if
Content-Transfer-Encoding is unrecognized"): New test.
</content>
</entry>
<entry>
<title>email: Do not use an empty bytevector to test the charset.</title>
<updated>2021-10-02T10:30:31+00:00</updated>
<author>
<name>Mathieu Othacehe</name>
</author>
<published>2021-09-29T12:47:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=cd8f4cb83fb9aaa86d5bad6979e3bdab7ef7f7b2'/>
<id>urn:sha1:cd8f4cb83fb9aaa86d5bad6979e3bdab7ef7f7b2</id>
<content type='text'>
Using an empty bytevector no longer throws an exception since Guile
commit 5ea8c69e9153a970952bf6f0b32c4fad6a28e839.

* email/email.scm (post-process-content-transfer-encoding): Use a
bytevector of unit length to test the charset validity.

Signed-off-by: Arun Isaac &lt;arunisaac@systemreboot.net&gt;
</content>
</entry>
<entry>
<title>email: Use only cfws-captured-words in obs-phrase.</title>
<updated>2021-03-14T20:25:11+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2021-03-14T20:21:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=ca0520a33c9042a68691d85c6849f88412ca8357'/>
<id>urn:sha1:ca0520a33c9042a68691d85c6849f88412ca8357</id>
<content type='text'>
* email/email.scm (obs-phrase): Replace word with cfws-captured-word.
* tests/email.scm ("Parse names with more than two words"): New test.
</content>
</entry>
<entry>
<title>email: Indent better.</title>
<updated>2020-12-05T14:44:04+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2020-12-05T14:44:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=77dba0ddf59069b0980b2413f6f46f0f012edcab'/>
<id>urn:sha1:77dba0ddf59069b0980b2413f6f46f0f012edcab</id>
<content type='text'>
* email/email.scm (define-cfws-pattern): Indent better.
</content>
</entry>
<entry>
<title>email: Give higher precedence to obsolete id-left, id-right patterns.</title>
<updated>2020-12-05T14:42:43+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2020-12-05T14:42:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=7f53ca692724bddf5d12600b30b0f25634ce180d'/>
<id>urn:sha1:7f53ca692724bddf5d12600b30b0f25634ce180d</id>
<content type='text'>
* email/email.scm (id-left, id-right): Give higher precedence to
obsolete patterns.
</content>
</entry>
<entry>
<title>email: Support remaining obsolete specification.</title>
<updated>2020-12-05T14:40:26+00:00</updated>
<author>
<name>Arun Isaac</name>
</author>
<published>2020-12-05T14:40:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.systemreboot.net/guile-email/commit/?id=20e1c2e0059ed9ba366126c1d7637cef19dfd7ce'/>
<id>urn:sha1:20e1c2e0059ed9ba366126c1d7637cef19dfd7ce</id>
<content type='text'>
* email/email.scm (obs-phrase-list, obs-utext, obs-unstruct,
obs-optional): New macros.
(unstructured, in-reply-to, references, keywords, optional-field):
Include obsolete patterns.
</content>
</entry>
</feed>
