Age | Commit message (Collapse) | Author |
|
* email/email.scm (parse-mime-entity): Match mime-entity-fields only
against the headers, not the whole email.
|
|
* email/email.scm: Import all of (email utils), not a subset of the
exported functions.
|
|
Prior to this, MIME encoded words in the Subject header were not
decoded.
* email/email.scm (parse-email-headers): Decode MIME encoded words in
Subject header.
* tests/email.scm ("decode MIME encoded words in Subject header"): New
test.
Reported-by: Ricardo Wurmus <rekado@elephly.net>
|
|
* email/email.scm (parse-mime-entity): Replace "a" with "an" in
docstring.
|
|
* email/email.scm (define-comment-pattern, define-cfws-pattern,
define-dot-atom-pattern, define-domain-pattern,
define-addr-spec-pattern): New macros.
(captured-comment, captured-cfws, captured-dot-atom, captured-domain,
captured-addr-spec): New patterns.
(mailbox): Use captured-addr-spec instead of addr-spec.
(post-process-mailbox): Handle emacs message mode parens style addresses.
|
|
* email/email.scm (define-angle-addr): New macro.
(unbracketed-angle-addr): New pattern.
(name-addr): Use unbracketed-angle-addr instead of angle-addr.
(post-process-mailbox): Do not trim angle brackets from address. That
is now handled by the grammar itself.
|
|
* email/email.scm (post-process-mailbox): New function.
(parse-email-address): Call post-process-mailbox instead of
reimplementing address parsing using regular expressions.
(parse-email-headers): Call post-process-mailbox.
|
|
* email/email.scm (parse-email-address): Fix typo in examples in
parse-email-address docstring. The returned value must be an
association list of pairs, not of lists.
|
|
* email/utils.scm (read-while)[read-while-loop]: Use else, instead
of #t, for the default cond clause.
|
|
* email/email.scm (angle-addr): Capture "<" and ">".
(parse-email-headers): Do not discard trace fields. Trim "<" and ">"
from angle-addr in mailbox, but not from trace fields.
|
|
* email/email.scm (body->mime-entities)[read-mime-entity]: Check for
eof-object so that truncated messages are handled gracefully without
raising an error.
|
|
* email/quoted-printable.scm: Use (rnrs bytevectors) and (rnrs io
ports) instead of (rnrs).
|
|
* email/quoted-printable.scm (quoted-printable-decode): Use
call-with-bytevector-output-port instead of call-with-port and
open-bytevector-output-port.
|
|
* email/quoted-printable.scm (%q-encoding-literal-char-set,
%quoted-printable-literal-char-set): New variables.
(quoted-printable-encode): Move core encoding code to ...
(quoted-printable-style-encode): ... this new function.
(q-encoding-decode): Call quoted-printable-style-encode with the
appropriate literal-char-set instead of calling
quoted-printable-encode.
* tests/quoted-printable.scm (q-encoding of special characters): Add
to check for this bug.
|
|
* email/quoted-printable.scm (quoted-printable-encode): Encode #\=
with its ASCII code.
* test/quoted-printable.scm (quoted-printable-encoding of =): Add test
to check for this bug.
|
|
* email/quoted-printable.scm (quoted-printable-encode): Encode only
printable ASCII characters, that is, ASCII characters in the interval
[#\space, #\delete), to themselves.
|
|
* email/quoted-printable.scm (q-encoding-encode): New function.
* tests/quoted-printable.scm (q-encoding wikipedia example): Rename to
...
(q-encoding wikipedia example: decoding): ... this.
(q-encoding wikipedia example: encoding): New test.
|
|
* build-aux/test-driver.scm, email/base64.scm, email/email.scm,
email/quoted-printable.scm, email/utils.scm,
tests/quoted-printable.scm: Untabify and re-indent.
|
|
* email/quoted-printable.scm (quoted-printable-encode): New function.
* tests/quoted-printable.scm (quoted-printable wikipedia example):
Rename to ...
(quoted-printable wikipedia example: decoding): ... this.
(quoted-printable wikipedia example: encoding, quoted-printable
wikipedia example: encoded output should not be more than 76 columns
wide): New tests.
|
|
* email/quoted-printable.scm (quoted-printable-decode): Close
bytevector port after use.
In cond, use else instead of #t for the default clause.
|
|
|