| Age | Commit message (Collapse) | Author | 
|---|
|  | * 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. | 
|  | * build-website.el (org-html-head): Add minimal CSS. | 
|  | * 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. | 
|  | * tests/email.scm ("References header with only one reference must be
a singleton list, not a string"): New test. | 
|  | * README.org: Advertise usage in the Guix data service. | 
|  | * build-aux/test-driver.scm.in (my-gnu-runner): Log colorized test
results to stderr. | 
|  | * configure.ac: Check for guile 3.0 before checking for guile 2.2. | 
|  | * configure.ac: Remove custom code checking for guild. | 
|  | * 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. | 
|  | * email/base64.scm: Import (rnrs arithmetic bitwise), (rnrs arithmetic
fixnums), (rnrs base), (rnrs bytevectors) and (rnrn io ports), not all
of (rnrs). | 
|  | * Makefile.am (.scm.go): Use guild instead of guile-tools to build scm
files. | 
|  | * tests/email.scm ("Keywords header must be a list"): Title case
header name. Remove unnecessary blank line. | 
|  | * 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> | 
|  | * 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. | 
|  | * 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. | 
|  | * .dir-locals.el: New file. | 
|  | * 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. | 
|  | * 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. | 
|  | * email/email.scm (post-process-fields): New function.
(parse-mime-entity, decode-body): Invoke post-process-fields. | 
|  | * 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=. | 
|  | * 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. | 
|  | * 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> | 
|  | * 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> | 
|  | * email/email.scm (unbracketed-angle-addr): Delete duplicate
definition. | 
|  | * 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. | 
|  | The earlier docstring was one meant for read-next-email-in-mbox.
* email/email.scm (mbox->emails): Update docstring. | 
|  | * email/email.scm (read-next-email-in-mbox): Add docstring. | 
|  | * 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> | 
|  | Guile looks for compiled go files in libdir. So, put them there.
* Makefile.am (godir): Set to libdir, instead of moddir. | 
|  | * guix.scm: New file. | 
|  | 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> | 
|  | * Makefile.am (website): Publish manual to link with version and
language information.
* README.org (Documentation): Update link to manual. | 
|  | * Makefile.am (website): Publish releases folder on website.
* README.org (Download): New section. | 
|  | * releases/guile-email-0.2.0.tar.lz,
releases/guile-email-0.2.0.tar.lz.asc: New files. | 
|  | * configure.ac: Bump version.
* NEWS: New file. | 
|  | * 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. | 
|  | * 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. | 
|  | * tests/quoted-printable.scm: Remove execution permission. | 
|  | Setting PATH is unnecessary since we do not have any script; we only
have a library.
* pre-inst-env.in: Do not set PATH. | 
|  | * doc/guile-email.texi (Reading Email): New chapter.
* email/email.scm (mbox->emails): Add docstring. |