summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2019-12-16Use guild instead of guile-tools.•••* Makefile.am (.scm.go): Use guild instead of guile-tools to build scm files. Arun Isaac
2019-12-04tests: Title case header name.•••* tests/email.scm ("Keywords header must be a list"): Title case header name. Remove unnecessary blank line. Arun Isaac
2019-12-04email: Handle blank Subject headers.•••* 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> Arun Isaac
2019-10-09email: Return keywords header as a list.•••* 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. Arun Isaac
2019-10-08Reindent calls to call-with-port.•••* 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. Arun Isaac
2019-10-08Add .dir-locals.el.•••* .dir-locals.el: New file. Arun Isaac
2019-10-08email: Override invalid charset more strongly.•••* 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. Arun Isaac
2019-10-08email: Introduce alist union utility.•••* 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. Arun Isaac
2019-10-08email: Deduplicate post processing of header fields.•••* email/email.scm (post-process-fields): New function. (parse-mime-entity, decode-body): Invoke post-process-fields. Arun Isaac
2019-10-08tests: Compare email headers disregarding order.•••* 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=. Arun Isaac
2019-10-02email: Tolerate decoding errors in body.•••* 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. Arun Isaac
2019-10-01email: Tolerate invalid charset.•••* 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> Arun Isaac
2019-09-28email: Tolerate decoding errors in MIME encoded words.•••* 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> Arun Isaac
2019-09-28email: Remove duplicate unbracketed-angle-addr definition.•••* email/email.scm (unbracketed-angle-addr): Delete duplicate definition. Arun Isaac
2019-09-23Release version 0.2.1.•••* 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. v0.2.1Arun Isaac
2019-09-23email: Update mbox->emails docstring.•••The earlier docstring was one meant for read-next-email-in-mbox. * email/email.scm (mbox->emails): Update docstring. Arun Isaac
2019-09-23email: Add read-next-email-in-mbox docstring.•••* email/email.scm (read-next-email-in-mbox): Add docstring. Arun Isaac
2019-09-23email: Tolerate non-ASCII non-UTF-8 characters in headers.•••* 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> Arun Isaac
2019-09-17Install go files in libdir.•••Guile looks for compiled go files in libdir. So, put them there. * Makefile.am (godir): Set to libdir, instead of moddir. Arun Isaac
2019-09-17Add guix.scm.•••* guix.scm: New file. Arun Isaac
2019-09-17email: Tolerate non-ASCII characters in headers.•••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> Arun Isaac
2019-08-09website: Move manual to link with version and language information.•••* Makefile.am (website): Publish manual to link with version and language information. * README.org (Documentation): Update link to manual. Arun Isaac
2019-08-09README: Publish releases in new Download section.•••* Makefile.am (website): Publish releases folder on website. * README.org (Download): New section. Arun Isaac
2019-08-09Release guile-email 0.2.0 tarball.•••* releases/guile-email-0.2.0.tar.lz, releases/guile-email-0.2.0.tar.lz.asc: New files. Arun Isaac
2019-08-09Bump version to 0.2.0.•••* configure.ac: Bump version. * NEWS: New file. v0.2.0Arun Isaac
2019-08-09tests: Run tests with correct path.•••* 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. Arun Isaac
2019-08-09Distribute test data files.•••* 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. Arun Isaac
2019-08-09tests: Remove unnecessary execution permission.•••* tests/quoted-printable.scm: Remove execution permission. Arun Isaac
2019-08-09Do not set PATH in pre-inst-env.•••Setting PATH is unnecessary since we do not have any script; we only have a library. * pre-inst-env.in: Do not set PATH. Arun Isaac
2019-08-07doc: Document mbox->emails.•••* doc/guile-email.texi (Reading Email): New chapter. * email/email.scm (mbox->emails): Add docstring. Arun Isaac
2019-08-07utils: Clarify read-while docstring.•••* email/utils.scm (read-while): Clarify docstring. Arun Isaac
2019-08-07doc: Add Data Types chapter to menu.•••* doc/guile-email.texi (Top): Add Data Types chapter to menu. Arun Isaac
2019-08-07README: Simply project description.•••The features list provide a more detailed description. We need not repeat the features in the short project description. * README.org: Simplify project description. Arun Isaac
2019-08-07README: Mention PGP support in future work.•••* README.org (Future work): Mention PGP support. Arun Isaac
2019-08-07README: Mention mbox reading as a feature.•••* README.org (Features): Mention mbox reading. Arun Isaac
2019-08-06doc: Move mention of (email quoted-printable).•••* doc/guile-email.texi (Encoding and Decoding)[Quoted-Printable encoding]: Move mention of (email quoted-printable) module to after the first paragraph. Arun Isaac
2019-08-06doc: Document email data types.•••* doc/guile-email.texi (Data Types): New chapter. Arun Isaac
2019-08-06doc: Mention (email email) module.•••* doc/guile-email.texi (Parsing Email): Mention (email email) module. Arun Isaac
2019-08-06doc: Change e-mail to email.•••* doc/guile-email.texi (Top, Parsing Email): Change e-mail to email. Arun Isaac
2019-07-28Update Copyright header.•••* Makefile.am: Update Copyright header. Arun Isaac
2019-07-28tests: Add examples from RFC5322 A.1.1 and A.1.2.•••* tests/email.scm ("RFC5322 A.1.1. A message from one person to another with simple addressing", "RFC5322 A.1.2. Different types of mailboxes"): New tests. Arun Isaac
2019-07-28email: Improve comment about default charset.•••* email/email.scm (post-process-content-type): Mention that RFC6657 specifies UTF-8 as the default charset only for text/* media types. Arun Isaac
2019-07-28email: Read mboxes as bytevectors.•••* email/email.scm (read-next-email-in-mbox): Read bytes from mboxes, not characters. Arun Isaac
2019-07-28tests: Add read-while eof-object test.•••* tests/utils.scm ("read-while returns eof-object on end of file"): New test. Arun Isaac
2019-07-28utils: Return eof-object from read-bytes-till on end of file.•••* email/utils.scm (read-bytes-till): Return eof-object, not #vu8(), on end of file. * tests/utils.scm: New file. * Makefile.am (SCM_TESTS): Register it. Arun Isaac
2019-07-28tests: Add example from RFC2046 5.1.1.•••* tests/email.scm ("RFC2046 5.1.1. Common syntax"): New test. Arun Isaac
2019-07-28email: Decode MIME entities without headers.•••* email/email.scm (email->headers+body): If there are no headers, return "" as headers not an eof-object. (parse-email-body): Parse headers of parent entity or email to parse-mime-entity. (add-default-mime-entity-headers): New function. (parse-mime-entity): Use add-default-mime-entity-headers instead of add-default-headers. Handle MIME entities without headers. * tests/email.scm ("decode MIME entity without headers"): New test. Arun Isaac
2019-07-28email: Support email with mixed encoding of characters.•••Prior to this, parse-email would accept email in the form of a string. A string is constrained to use the same encoding for all its characters whereas an email can have characters encoded using different encoding schemes. Therefore, it is more correct that parse-email deals with bytevectors instead of strings. * email/utils.scm (read-bytes-till): New function. * email/email.scm (body->mime-entities, email->headers+body, decode-body): Deal with emails as bytevectors instead of strings. (parse-mime-entity): Rename text argument to bv. (parse-email, parse-email-body): Overload to handle input in the form of a string or bytevector. * doc/guile-email.texi (Parsing e-mail): Document overloading of parse-email and parse-email-body. * tests/email.scm ("handle truncated multipart message gracefully"): Deal in bytevectors instead of strings. ("email with 8 bit encoding and non UTF-8 charset", "multipart email with a 8 bit encoding and non UTF-8 charset part"): New tests. * tests/email-with-8bit-encoding-and-non-utf8-charset, tests/multipart-email-with-a-8bit-encoding-and-non-utf8-charset-part: New files. Reported-by: Jack Hill <jackhill@jackhill.us> Arun Isaac
2019-07-26email: Match mime-entity-fields only against headers.•••* email/email.scm (parse-mime-entity): Match mime-entity-fields only against the headers, not the whole email. Arun Isaac
2019-07-26email: Import all of (email utils).•••* email/email.scm: Import all of (email utils), not a subset of the exported functions. Arun Isaac