aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2020-12-06tests: Parse obsolete Received header.•••* tests/email.scm ("Parse obsolete Received header"): New test. Arun Isaac
2020-12-05tests: Add example from RFC5322 A.6.3.•••* tests/email.scm ("RFC5322 A.6.3. Obsolete white space and comments"): New test. Arun Isaac
2020-12-05email: Indent better.•••* email/email.scm (define-cfws-pattern): Indent better. Arun Isaac
2020-12-05email: Give higher precedence to obsolete id-left, id-right patterns.•••* email/email.scm (id-left, id-right): Give higher precedence to obsolete patterns. Arun Isaac
2020-12-05email: Support remaining obsolete specification.•••* 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. Arun Isaac
2020-12-05email: Support obsolete Received header.•••* email/email.scm (received): Include obsolete pattern. (parse-mime-entity): Post process obsolete received forms. Arun Isaac
2020-12-05email: Do not capture cfws in atoms and dot-atoms.•••* email/email.scm (define-atom-pattern): Do not capture cfws unless specified. (atom): Do not specify cfws. (define-dot-atom-pattern): Do not capture cfws. (define-word-pattern): New macro. (cfws-captured-atom, cfws-captured-word): New patterns. (obs-phrase): Use cfws-captured-word. (received-token): Capture all. (parse-mime-entity): Post process received and received-token. * tests/email.scm ("parse email headers"): Fix test. Arun Isaac
2020-12-05email: Support obsolete date and time.•••* email/email.scm (obs-day-of-week, obs-day, obs-year, obs-hour, obs-minute, obs-second, obs-zone): New macros. (day-of-week, day, year, hours, minutes, seconds, zone): Include obsolete pattern. (parse-email-headers): Handle obsolete two and three digit years, and alphabetic time zone specifiers. * tests/email.scm ("RFC5322 A.6.2. Obsolete dates"): New test. Arun Isaac
2020-12-05email: Support obsolete addressing.•••* email/email.scm (obs-qp, obs-fws, obs-no-ws-ctl, obs-ctext, obs-qtext, obs-phrase, obs-local-part, obs-dtext, obs-domain, obs-domain-list, obs-route, obs-angle-addr, captured-atom, captured-obs-domain, captured-domain, obs-mbox-list, obs-group-list, obs-addr-list, obs-id-left, obs-id-right): New patterns. (quoted-pair, fws, ctext, qtext, phrase, dtext, define-angle-addr-pattern, mailbox-list, group-list, address-list, define-field-pattern, from, sender, bcc, id-left, id-right, resent-from, resent-sender, resent-bcc, obs-resent-rply): Include obsolete pattern. (define-printable-ascii-character-pattern-with-obsolete, define-atom-pattern, define-obs-domain-pattern): New macros. (define-domain-pattern): Accept obs-domain as a new argument. (fields): Include obs-resent-rply. * tests/email.scm ("RFC5322 A.6.1. Obsolete addressing"): New test. ("parse email addresses with period in name"): Mark as passing. Arun Isaac
2020-12-04tests: Parse email addresses with period in name.•••* tests/email.scm ("parse email addresses with period in name"): New test. Reported-by: Ricardo Wurmus <rekado@elephly.net> Arun Isaac
2020-08-12README: Switch from mailing list to public inbox.•••We are switching from the old mailman managed mailing list to a new public inbox. It is simpler to maintain and better suited for small projects. * README.org (Contributing): Switch from mailing list to public inbox. Arun Isaac
2020-05-25tests: Test inputs of different lengths.•••* tests/base64.scm ("base64 random bytevector: base64-encode and base64-decode are inverses of each other", "base64 random bytevector: encoded output should not be more than 76 columns wide", "base64 random bytevector: encoded output must only consist of characters from the base64 alphabet"): Test inputs of different lengths. * tests/quoted-printable.scm ("quoted-printable random bytevector: quoted-printable-encode and quoted-printable-decode are inverses of each other", "quoted-printable random bytevector: encoded output should not be more than 76 columns wide", "quoted-printable random bytevector: encoded output must only consist of printable ASCII characters", "q-encoding random bytevector: q-encoding-encode and q-encoding-decode are inverses of each other"): Test inputs of different lengths. Arun Isaac
2020-05-25email: Decode base64 bytevector without converting to string.•••The new base64 decoder can directly operate on bytevectors in addition to strings. This feature may not remain forever, but it greatly improves performance. So, it stays for now. * email/email.scm (decode-body): Decode base64 encoded body directly without converting to an intermediate string. Arun Isaac
2020-05-25email: Do not filter base64 encoded bytes before decoding.•••The new base64 decoder skips invalid characters safely. * email/email.scm (decode-body): Do not filter base64 encoded body to remove invalid base64 characters. Arun Isaac
2020-05-25tests: Add tests for (email base64).•••* 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. Arun Isaac
2020-05-25base64: Reimplement from scratch.•••* email/base64.scm: Replace file. Arun Isaac
2020-05-25utils: Do not match sequence byte by byte in read-bytes-till.•••* 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. Arun Isaac
2020-05-25utils: Introduce the not-end-let utility.•••* email/utils.scm (not-end-let): New macro. * .dir-locals.el (scheme-mode): Indent not-end-let correctly. Arun Isaac
2020-05-25utils: Do not return eof if matched at beginning.•••* 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. Arun Isaac
2020-05-07Add minimal CSS styling to website.•••* build-website.el (org-html-head): Add minimal CSS. Arun Isaac
2019-12-22Release version 0.2.2.•••* 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. v0.2.2Arun Isaac
2019-12-21tests: Return References header with only one reference as a singleton list.•••* tests/email.scm ("References header with only one reference must be a singleton list, not a string"): New test. Arun Isaac
2019-12-21README: Advertise usage in the Guix data service.•••* README.org: Advertise usage in the Guix data service. Arun Isaac
2019-12-16tests: Log test results to stderr.•••* build-aux/test-driver.scm.in (my-gnu-runner): Log colorized test results to stderr. Arun Isaac
2019-12-16Support upcoming guile 3.0.•••* configure.ac: Check for guile 3.0 before checking for guile 2.2. Arun Isaac
2019-12-16Remove custom code checking for guild.•••* configure.ac: Remove custom code checking for guild. Arun Isaac
2019-12-16tests: Implement custom test runner group begin and end functions.•••* 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. Arun Isaac
2019-12-16base64: Import only the required rnrs modules.•••* email/base64.scm: Import (rnrs arithmetic bitwise), (rnrs arithmetic fixnums), (rnrs base), (rnrs bytevectors) and (rnrn io ports), not all of (rnrs). Arun Isaac
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