summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-03README: Thank Andrew Whatson for code.Arun Isaac
* README.org (Contributors): Add Andrew Whatson.
2023-01-03email: Support quoted-printable CR LF sequences.Andrew Whatson
* 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 <arunisaac@systemreboot.net>
2022-12-29dir-locals.el: Delete trailing blank lines.Arun Isaac
* .dir-locals.el: Delete trailing blank lines.
2022-01-19README: Fix broken link to signing key.Arun Isaac
* README (Download): Fix broken link to signing key.
2021-10-24build-aux: Test bug-guix corpus.Arun Isaac
* build-aux/pull-corpus.scm: Pull bug-guix mailing list archives. * build-aux/test-corpus.scm.in: Test bug-guix corpus.
2021-10-24build-aux: Create corpus directory if it does not exist.Arun Isaac
* build-aux/pull-corpus.scm (pull-mailing-list): Create corpus directory if it does not exist.
2021-10-24email: Handle Received header with two tokens but no timestamp.Arun Isaac
* 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.
2021-10-24tests: Return trace with only one Receieved header as a list of lists.Arun Isaac
* tests/email.scm ("Trace with only one Received header must be a list of lists, not a list"): New test.
2021-10-24email: Handle unrecognized Content-Transfer-Encoding headers.Arun Isaac
* 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.
2021-10-24tests: Paginate tests/email.scm.Arun Isaac
tests/email.scm is getting really long. Pagination make it easier to understand. * tests/email.scm: Split into three pages---Emails, Email addresses and MIME encoded words.
2021-10-23build-aux: Read emails one by one from mbox corpora.Arun Isaac
Reading emails one by one avoids allocating memory for a list of emails. * build-aux/test-corpus.scm.in (read-next-email-in-mbox): New function. (test-corpus): Use port-transduce to read emails one by one.
2021-10-23build-aux: Write failed corpus test emails to filesystem.Arun Isaac
* build-aux/test-corpus.scm.in: Import (rnrs io ports), (srfi srfi-26), (srfi srfi-28), (srfi srfi-171), (ice-9 ftw) and (ice-9 match). (%fail-directory): New variable. (directory-files, write-failed-email): New function. Write failed corpus test emails to a "fail directory" specified on the command line.
2021-10-06website: Switch to high contrast.Arun Isaac
High contrast feels more readable. Low contrast makes me squint. * website/style.css (body): Remove color property. Let it be the default black.
2021-10-02README: Add Contributors section.Arun Isaac
* README.org (Contributors): New section.
2021-10-02email: Do not use an empty bytevector to test the charset.Mathieu Othacehe
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 <arunisaac@systemreboot.net>
2021-09-28README: Use a dynamic block to list releases.Arun Isaac
* README.org (Download): Replace releases with dynamic block. * build-aux/build-website.el: Update dynamic blocks before exporting. (org-dblock-write:releases): New function.
2021-09-28build-aux: Do not create backup files when building website.Arun Isaac
* build-aux/build-website.el (make-backup-files): Set to nil.
2021-06-18README: Link repology badge to repology page.Arun Isaac
* README.org (Download): Link repology badge to repology page.
2021-06-18README: Link to the Guix data service.Arun Isaac
* README.org: Link to the Guix data service, instead of just mentioning it.
2021-06-18website: Make SVG badges clickable.Arun Isaac
* website/style.css (object): Set pointer-events to none.
2021-06-18.gitignore: Add files.Arun Isaac
* .gitignore: Add INSTALL, doc/.dirstamp, doc/guile-email.html, doc/guile-email.info, website.
2021-06-18Comment on website build and clean rules.Arun Isaac
* Makefile.am: Comment on website build and clean rules.
2021-06-18website: Widen to 900px.Arun Isaac
* website/style.css (body): Set max-width to 900px.
2021-06-18website: Reference external stylesheet.Arun Isaac
* website/style.css: New file. * Makefile.am (AM_MAKEINFOHTMLFLAGS): Set to --css-ref=/style.css. * build-aux/build-website.el (org-html-head): Set to <link> tag referencing external stylesheet.
2021-06-18build-aux: Move build-website.el into build-aux directory.Arun Isaac
* build-website.el: Move to build-aux/build-website.el. * Makefile.am (website/index.html): Use build-aux/build-website.el instead of build-website.el.
2021-06-18Configure path to emacs.Arun Isaac
* configure.ac: Check for emacs. * Makefile.am (website/index.html): Use EMACS from configure instead of emacs.
2021-06-18Use MKDIR_P.Arun Isaac
* Makefile.am (website/index.html): Use MKDIR_P instead of `mkdir -p'.
2021-06-18Copy manual to website in a separate target.Arun Isaac
* Makefile.am (website/manual/dev/en): New target. (website): Depend on website/manual/dev/en instead of building directly. Do not depend on phony target html.
2021-06-18website: Move releases into website directory.Arun Isaac
If the releases directory is already in the website directory, then we don't need to redundantly copy it while building the website. * releases: Move to website/releases. * Makefile.am (website): Do not copy releases. (clean-local): Do not clean website/releases.
2021-06-17README: Add nightly tests badge.Arun Isaac
* README.org: Add nightly tests badge, that is, for the "guile-email-nightly" job.
2021-06-15build-aux: Add corpus pull script.Arun Isaac
This is a follow-up to commit 7a78c23f6f2f1c32abb508563a700cd535b29ad1 adding a file that was missed out. * build-aux/pull-corpus.scm: New file.
2021-06-14Add corpus test scripts.Arun Isaac
* build-aux/pull-corpus.scm, build-aux/test-corpus.scm.in: New files. * configure.ac: Configure build-aux/test-corpus.scm. * .gitignore: Add build-aux/test-corpus.scm.
2021-06-13pre-inst-env: Rewrite pre-inst-env in scheme.Arun Isaac
Scheme code is more readable than arcane bash. * pre-inst-env.in: Rewrite in scheme.
2021-06-10doc: Update mbox->emails documentation.Arun Isaac
* doc/guile-email.texi (Reading Email): Update mbox->emails documentation.
2021-06-10build-website: Do not override org-html--svg-image.Arun Isaac
SVG image export works correctly out of the box in org. * build-website.el (org-html--svg-image): Delete function.
2021-06-10README: Add continuous integration badges.Arun Isaac
* README.org (ci-badge): New macro. Add continuous integration badges.
2021-03-15email: Use only cfws-captured-words in obs-phrase.Arun Isaac
* email/email.scm (obs-phrase): Replace word with cfws-captured-word. * tests/email.scm ("Parse names with more than two words"): New test.
2020-12-06website: Export svg using img tag.Arun Isaac
* build-website.el (org-html--svg-image): Override to export svg using an img tag instead of an object tag.
2020-12-06README: Add repology packaging status badge.Arun Isaac
* README.org (Download): Add repology packaging status badge.
2020-12-06tests: Return a list of Received headers for trace.Arun Isaac
* tests/email.scm ("Trace with only one Received header should be a list of received traces, not a single received trace"): New test.
2020-12-06tests: Parse obsolete Received header.Arun Isaac
* tests/email.scm ("Parse obsolete Received header"): New test.
2020-12-05tests: Add example from RFC5322 A.6.3.Arun Isaac
* tests/email.scm ("RFC5322 A.6.3. Obsolete white space and comments"): New test.
2020-12-05email: Indent better.Arun Isaac
* email/email.scm (define-cfws-pattern): Indent better.
2020-12-05email: Give higher precedence to obsolete id-left, id-right patterns.Arun Isaac
* email/email.scm (id-left, id-right): Give higher precedence to obsolete patterns.
2020-12-05email: Support remaining obsolete specification.Arun Isaac
* 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.
2020-12-05email: Support obsolete Received header.Arun Isaac
* email/email.scm (received): Include obsolete pattern. (parse-mime-entity): Post process obsolete received forms.
2020-12-05email: Do not capture cfws in atoms and dot-atoms.Arun Isaac
* 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.
2020-12-05email: Support obsolete date and time.Arun Isaac
* 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.
2020-12-05email: Support obsolete addressing.Arun Isaac
* 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.
2020-12-04tests: Parse email addresses with period in name.Arun Isaac
* tests/email.scm ("parse email addresses with period in name"): New test. Reported-by: Ricardo Wurmus <rekado@elephly.net>