aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-25email: Do not filter base64 encoded bytes before decoding.Arun Isaac
The new base64 decoder skips invalid characters safely. * email/email.scm (decode-body): Do not filter base64 encoded body to remove invalid base64 characters.
2020-05-25tests: Add tests for (email base64).Arun Isaac
* tests/encoding.scm: Move common code for encoding tests to this new file. * tests/quoted-printable.scm: Load encoding.scm. * tests/base64.scm: New file. * Makefile.am (SCM_TESTS): Register tests/base64.scm.
2020-05-25base64: Reimplement from scratch.Arun Isaac
* email/base64.scm: Replace file.
2020-05-25utils: Do not match sequence byte by byte in read-bytes-till.Arun Isaac
* email/utils.scm (bytevector-match, bytevector-overlap, lookahead-bytevector-n): New functions. (read-bytes-till): Do not match sequence byte by byte. Process blocks of bytes at a time.
2020-05-25utils: Introduce the not-end-let utility.Arun Isaac
* email/utils.scm (not-end-let): New macro. * .dir-locals.el (scheme-mode): Indent not-end-let correctly.
2020-05-25utils: Do not return eof if matched at beginning.Arun Isaac
* email/utils.scm (read-while, read-bytes-till): Do not return eof if matched at beginning. Return empty string or bytevector respectively. * tests/utils.scm ("read-bytes-till returns empty bytevector on match at beginning", "read-while returns empty string on match at beginning"): New tests.
2020-05-07Add minimal CSS styling to website.Arun Isaac
* build-website.el (org-html-head): Add minimal CSS.
2019-12-22Release version 0.2.2.v0.2.2Arun Isaac
* NEWS: Update news. * README.org (Download): Link to guile-email 0.2.2 tarball. * configure.ac: Bump to version 0.2.2. * releases/guile-email-0.2.2.tar.lz, releases/guile-email-0.2.2.tar.lz.asc: New files.
2019-12-21tests: Return References header with only one reference as a singleton list.Arun Isaac
* tests/email.scm ("References header with only one reference must be a singleton list, not a string"): New test.
2019-12-21README: Advertise usage in the Guix data service.Arun Isaac
* README.org: Advertise usage in the Guix data service.
2019-12-16tests: Log test results to stderr.Arun Isaac
* build-aux/test-driver.scm.in (my-gnu-runner): Log colorized test results to stderr.
2019-12-16Support upcoming guile 3.0.Arun Isaac
* configure.ac: Check for guile 3.0 before checking for guile 2.2.
2019-12-16Remove custom code checking for guild.Arun Isaac
* configure.ac: Remove custom code checking for guild.
2019-12-16tests: Implement custom test runner group begin and end functions.Arun Isaac
* build-aux/test-driver.scm.in (my-gnu-runner): Add custom test-runner on-group-begin and on-group-end functions. Accept log file port as an argument.
2019-12-16base64: Import only the required rnrs modules.Arun Isaac
* email/base64.scm: Import (rnrs arithmetic bitwise), (rnrs arithmetic fixnums), (rnrs base), (rnrs bytevectors) and (rnrn io ports), not all of (rnrs).
2019-12-16Use guild instead of guile-tools.Arun Isaac
* Makefile.am (.scm.go): Use guild instead of guile-tools to build scm files.
2019-12-04tests: Title case header name.Arun Isaac
* tests/email.scm ("Keywords header must be a list"): Title case header name. Remove unnecessary blank line.
2019-12-04email: Handle blank Subject headers.Arun Isaac
* email/email.scm (post-process-fields): Treat blank Subject headers as having the null string as value. * tests/email.scm ("blank Subject header must be treated as having the null string as value"): New test. Reported-by: Ricardo Wurmus <rekado@elephly.net>
2019-10-09email: Return keywords header as a list.Arun Isaac
* email/email.scm (parse-email-headers): Return keywords header as a list of strings. * tests/email.scm ("keywords header must be a list"): New test.
2019-10-08Reindent calls to call-with-port.Arun Isaac
* email/email.scm (body->mime-entities, email->headers+body): Reindent calls to call-with-port. * email/quoted-printable.scm (quoted-printable-encode, q-encoding-encode): Reindent calls to call-with-port. * tests/utils.scm ("read-bytes-till returns eof-object on end of file"): Reindent call to call-with-port.
2019-10-08Add .dir-locals.el.Arun Isaac
* .dir-locals.el: New file.
2019-10-08email: Override invalid charset more strongly.Arun Isaac
* email/email.scm (post-process-content-type): Use alist-combine to override charset more strongly than just appending to the alist. * tests/email.scm ("tolerate invalid charset"): Update test.
2019-10-08email: Introduce alist union utility.Arun Isaac
* email/utils.scm (alist-combine): New function. (alist-delete*): Delete function. * email/email.scm (add-default-headers, add-default-mime-entity-headers): Use alist-combine.
2019-10-08email: Deduplicate post processing of header fields.Arun Isaac
* email/email.scm (post-process-fields): New function. (parse-mime-entity, decode-body): Invoke post-process-fields.
2019-10-08tests: Compare email headers disregarding order.Arun Isaac
* tests/email.scm (alist=?, body=?, email=?, mime-entity=?): New functions. (test-alist=, test-email=): New macros. ("parse email headers", "tolerate invalid charset", "tolerate decoding errors in body"): Use test-alist=. ("RFC5322 A.1.1. A message from one person to another with simple addressing", "parse email headers", "RFC2046 5.1.1. Common syntax", "decode MIME entity without headers", "multipart email with a 8 bit encoding and non UTF-8 charset part", "decode utf-8 characters in headers", "tolerate non-ascii non-utf-8 characters in headers", "tolerate decoding errors in body"): Use test-email=.
2019-10-02email: Tolerate decoding errors in body.Arun Isaac
* email/email.scm (decode-body): Tolerate decoding errors in the body using the substitute conversion strategy. * tests/email.scm ("tolerate decoding errors in body"): New test.
2019-10-01email: Tolerate invalid charset.Arun Isaac
* email/email.scm (post-process-content-type): If charset is invalid, assume default UTF-8 as charset. * tests/email.scm ("tolerate invalid charset"): New test. Reported-by: Ricardo Wurmus <rekado@elephly.net>
2019-09-28email: Tolerate decoding errors in MIME encoded words.Arun Isaac
* email/email.scm (decode-mime-encoded-word): Tolerate decoding errors in MIME encoded words using the substitute conversion strategy. * tests/email.scm ("tolerate decoding errors in MIME encoded words"): New test. Reported-by: Christopher Baines <mail@cbaines.net>
2019-09-28email: Remove duplicate unbracketed-angle-addr definition.Arun Isaac
* email/email.scm (unbracketed-angle-addr): Delete duplicate definition.
2019-09-23Release version 0.2.1.v0.2.1Arun Isaac
* NEWS: Update news. * README.org (Download): Add guile-email-0.2.1 tarball. * configure.ac: Bump version to 0.2.1. * releases/guile-email-0.2.1.tar.lz, releases/guile-email-0.2.1.tar.lz.asc: New files.
2019-09-23email: Update mbox->emails docstring.Arun Isaac
The earlier docstring was one meant for read-next-email-in-mbox. * email/email.scm (mbox->emails): Update docstring.
2019-09-23email: Add read-next-email-in-mbox docstring.Arun Isaac
* email/email.scm (read-next-email-in-mbox): Add docstring.
2019-09-23email: Tolerate non-ASCII non-UTF-8 characters in headers.Arun Isaac
* email/email.scm (email->headers+body): If non-ASCII non-UTF-8 characters occur in the headers, do not raise a decoding error. Work around using the substitute conversion strategy. * tests/email.scm ("tolerate non-ASCII characters in headers"): Rename to "decode utf-8 characters in headers". ("tolerate non-ascii non-utf-8 characters in headers"): New test. Reported-by: Christopher Baines <mail@cbaines.net>
2019-09-17Install go files in libdir.Arun Isaac
Guile looks for compiled go files in libdir. So, put them there. * Makefile.am (godir): Set to libdir, instead of moddir.
2019-09-17Add guix.scm.Arun Isaac
* guix.scm: New file.
2019-09-17email: Tolerate non-ASCII characters in headers.Arun Isaac
We tolerate non-ASCII characters in headers in order to support Emacs message mode parens style addresses. * email/email.scm (email->headers+body): Read headers as UTF-8 characters. * tests/email.scm ("tolerate non-ascii characters in headers"): New tests. Reported-by: Christopher Baines <mail@cbaines.net>
2019-08-09website: Move manual to link with version and language information.Arun Isaac
* Makefile.am (website): Publish manual to link with version and language information. * README.org (Documentation): Update link to manual.
2019-08-09README: Publish releases in new Download section.Arun Isaac
* Makefile.am (website): Publish releases folder on website. * README.org (Download): New section.
2019-08-09Release guile-email 0.2.0 tarball.Arun Isaac
* releases/guile-email-0.2.0.tar.lz, releases/guile-email-0.2.0.tar.lz.asc: New files.
2019-08-09Bump version to 0.2.0.v0.2.0Arun Isaac
* configure.ac: Bump version. * NEWS: New file.
2019-08-09tests: Run tests with correct path.Arun Isaac
* build-aux/test-driver.scm: Rename to build-aux/test-driver.scm.in. * build-aux/test-driver.scm.in: Specify log file as an absolute path. Change to top level source directory before running tests. * configure.ac: Generate test-driver.scm. * Makefile.am (EXTRA_DIST): Unregister build-aux/test-driver.scm. Register build-aux/test-driver.scm.in.
2019-08-09Distribute test data files.Arun Isaac
* Makefile.am (EXTRA_DIST): Add tests/multipart-email-with-a-8bit-encoding-and-non-utf8-charset-part and tests/email-with-8bit-encoding-and-non-utf8-charset.
2019-08-09tests: Remove unnecessary execution permission.Arun Isaac
* tests/quoted-printable.scm: Remove execution permission.
2019-08-09Do not set PATH in pre-inst-env.Arun Isaac
Setting PATH is unnecessary since we do not have any script; we only have a library. * pre-inst-env.in: Do not set PATH.
2019-08-07doc: Document mbox->emails.Arun Isaac
* doc/guile-email.texi (Reading Email): New chapter. * email/email.scm (mbox->emails): Add docstring.
2019-08-07utils: Clarify read-while docstring.Arun Isaac
* email/utils.scm (read-while): Clarify docstring.
2019-08-07doc: Add Data Types chapter to menu.Arun Isaac
* doc/guile-email.texi (Top): Add Data Types chapter to menu.
2019-08-07README: Simply project description.Arun Isaac
The features list provide a more detailed description. We need not repeat the features in the short project description. * README.org: Simplify project description.
2019-08-07README: Mention PGP support in future work.Arun Isaac
* README.org (Future work): Mention PGP support.
2019-08-07README: Mention mbox reading as a feature.Arun Isaac
* README.org (Features): Mention mbox reading.