Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
* 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.
|
|
High contrast feels more readable. Low contrast makes me squint.
* website/style.css (body): Remove color property. Let it be the
default black.
|
|
* README.org (Contributors): New section.
|
|
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>
|
|
* README.org (Download): Replace releases with dynamic block.
* build-aux/build-website.el: Update dynamic blocks before exporting.
(org-dblock-write:releases): New function.
|
|
* build-aux/build-website.el (make-backup-files): Set to nil.
|
|
* README.org (Download): Link repology badge to repology page.
|
|
* README.org: Link to the Guix data service, instead of just
mentioning it.
|
|
* website/style.css (object): Set pointer-events to none.
|
|
* .gitignore: Add INSTALL, doc/.dirstamp, doc/guile-email.html,
doc/guile-email.info, website.
|
|
* Makefile.am: Comment on website build and clean rules.
|
|
* website/style.css (body): Set max-width to 900px.
|
|
* 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.
|
|
* 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.
|
|
* configure.ac: Check for emacs.
* Makefile.am (website/index.html): Use EMACS from configure instead
of emacs.
|
|
* Makefile.am (website/index.html): Use MKDIR_P instead of `mkdir -p'.
|
|
* 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.
|
|
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.
|
|
* README.org: Add nightly tests badge, that is, for the
"guile-email-nightly" job.
|
|
This is a follow-up to commit 7a78c23f6f2f1c32abb508563a700cd535b29ad1
adding a file that was missed out.
* build-aux/pull-corpus.scm: New file.
|
|
* 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.
|
|
Scheme code is more readable than arcane bash.
* pre-inst-env.in: Rewrite in scheme.
|
|
* doc/guile-email.texi (Reading Email): Update mbox->emails
documentation.
|
|
SVG image export works correctly out of the box in org.
* build-website.el (org-html--svg-image): Delete function.
|
|
* README.org (ci-badge): New macro.
Add continuous integration badges.
|
|
* email/email.scm (obs-phrase): Replace word with cfws-captured-word.
* tests/email.scm ("Parse names with more than two words"): New test.
|
|
* build-website.el (org-html--svg-image): Override to export svg using
an img tag instead of an object tag.
|
|
* README.org (Download): Add repology packaging status badge.
|
|
* tests/email.scm ("Trace with only one Received header should be a
list of received traces, not a single received trace"): New test.
|
|
* tests/email.scm ("Parse obsolete Received header"): New test.
|
|
* tests/email.scm ("RFC5322 A.6.3. Obsolete white space and
comments"): New test.
|
|
* email/email.scm (define-cfws-pattern): Indent better.
|
|
* email/email.scm (id-left, id-right): Give higher precedence to
obsolete patterns.
|
|
* 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.
|
|
* email/email.scm (received): Include obsolete pattern.
(parse-mime-entity): Post process obsolete received forms.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* tests/email.scm ("parse email addresses with period in name"): New
test.
Reported-by: Ricardo Wurmus <rekado@elephly.net>
|
|
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.
|
|
* 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.
|
|
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.
|
|
The new base64 decoder skips invalid characters safely.
* email/email.scm (decode-body): Do not filter base64 encoded body to
remove invalid base64 characters.
|
|
* 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.
|
|
* email/base64.scm: Replace file.
|
|
* 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.
|
|
* email/utils.scm (not-end-let): New macro.
* .dir-locals.el (scheme-mode): Indent not-end-let correctly.
|
|
* 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.
|