aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-06tests: Downcase test names.Arun Isaac
This is admittedly a nitpicky change, but it slightly improves consistency. * tests/email.scm ("parse obsolete Received header", "parse names with more than two words", "assume application/octet-stream Content-Type if Content-Transfer-Encoding is unrecognized", "parse Received header with two tokens but no timestamp"): Downcase test names.
2023-01-06email: Support Date fields with missing seconds.Andrew Whatson
* 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 <arunisaac@systemreboot.net>
2023-01-03build-aux: Pass fail directory from main in test-corpus.scm.Arun Isaac
* build-aux/test-corpus.scm (test-corpus): Accept fail-directory argument. * build-aux/test-corpus.scm (main): Pass fail-directory argument to test-corpus.
2023-01-03build-aux: Assume fail directory exists when testing corpus.Arun Isaac
Assume fail directory exists and do not attempt to clear it. * build-aux/test-corpus.scm (main): Do not create or delete fail directory.
2023-01-03build-aux: Make test-corpus.scm a loadable script.Arun Isaac
Make test-corpus.scm a script loadable from the REPL rather than something that must be run on the shell. Loadable scripts are easier to deal with since one does not have to deal with command-line arguments. * build-aux/test-corpus.scm (%fail-directory): Delete variable. (write-failed-email): Add fail-directory argument. (main): New function.
2023-01-03build-aux: Bump copyright year on test-driver.scm.Arun Isaac
* build-aux/test-driver.scm: Bump copyright year for Arun Isaac.
2023-01-03dir-locals: Allow tabs in Makefiles.Arun Isaac
* .dir-locals.el (makefile-gmake-mode): Set indent-tabs-mode to t.
2023-01-03Quit the autotools build system.Arun Isaac
For a simple package like guile-email, the autotools build system is more trouble than it is worth. We prefer a hand-written Makefile. As the commit summary suggests, the autotools are indeed a bad habit that we must "quit". * Makefile: New file. * Makefile.am, bootstrap.sh, configure.ac, pre-inst-env.in: Delete files. * build-aux/test-corpus.scm.in: Rename to ... * build-aux/test-corpus.scm: ... this. Remove shebang. * build-aux/test-driver.scm.in: Rename to ... * build-aux/test-driver.scm: ... this. Remove autotools specific parts. * guix.scm: Import (guix utils). (guile-email)[arguments]: Add prefix to #:make-flags. Delete configure phase. * .gitignore: Remove INSTALL, Makefile, Makefile.in, aclocal.m4, autom4te.cache, build-aux/install-sh, build-aux/missing, build-aux/test-corpus.scm, config.log, config.status, configure, doc/.dirstamp, pre-inst-env, test-suite.log, tests/*.log and tests/*.trs.
2023-01-03tests: Import (srfi srfi-64) in base64.scm.Arun Isaac
* tests/base64.scm: Import (srfi srfi-64).
2023-01-03guix.scm: Use modify-inputs.Arun Isaac
* guix.scm (guile-email)[naive-inputs]: Rewrite using modify-inputs.
2023-01-03guix.scm: Build package from local source.Arun Isaac
* guix.scm: Import (guix gexp) and (guix git-download). (%source-dir): New variable. (guile-email)[source]: Use local source.
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.