Age | Commit message (Expand) | Author |
2020-05-25 | tests: Test inputs of different lengths.•••* 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.
| Arun Isaac |
2020-05-25 | email: Decode base64 bytevector without converting to string.•••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.
| Arun Isaac |
2020-05-25 | email: Do not filter base64 encoded bytes before decoding.•••The new base64 decoder skips invalid characters safely.
* email/email.scm (decode-body): Do not filter base64 encoded body to
remove invalid base64 characters.
| Arun Isaac |
2020-05-25 | tests: Add tests for (email base64).•••* 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.
| Arun Isaac |
2020-05-25 | base64: Reimplement from scratch.•••* email/base64.scm: Replace file.
| Arun Isaac |
2020-05-25 | utils: Do not match sequence byte by byte in read-bytes-till.•••* 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.
| Arun Isaac |
2020-05-25 | utils: Introduce the not-end-let utility.•••* email/utils.scm (not-end-let): New macro.
* .dir-locals.el (scheme-mode): Indent not-end-let correctly.
| Arun Isaac |
2020-05-25 | utils: Do not return eof if matched at beginning.•••* 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.
| Arun Isaac |
2020-05-07 | Add minimal CSS styling to website.•••* build-website.el (org-html-head): Add minimal CSS.
| Arun Isaac |
2019-12-22 | Release version 0.2.2.•••* 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.
v0.2.2 | Arun Isaac |
2019-12-21 | tests: Return References header with only one reference as a singleton list.•••* tests/email.scm ("References header with only one reference must be
a singleton list, not a string"): New test.
| Arun Isaac |
2019-12-21 | README: Advertise usage in the Guix data service.•••* README.org: Advertise usage in the Guix data service.
| Arun Isaac |
2019-12-16 | tests: Log test results to stderr.•••* build-aux/test-driver.scm.in (my-gnu-runner): Log colorized test
results to stderr.
| Arun Isaac |
2019-12-16 | Support upcoming guile 3.0.•••* configure.ac: Check for guile 3.0 before checking for guile 2.2.
| Arun Isaac |
2019-12-16 | Remove custom code checking for guild.•••* configure.ac: Remove custom code checking for guild.
| Arun Isaac |
2019-12-16 | tests: Implement custom test runner group begin and end functions.•••* 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.
| Arun Isaac |
2019-12-16 | base64: Import only the required rnrs modules.•••* email/base64.scm: Import (rnrs arithmetic bitwise), (rnrs arithmetic
fixnums), (rnrs base), (rnrs bytevectors) and (rnrn io ports), not all
of (rnrs).
| Arun Isaac |
2019-12-16 | Use guild instead of guile-tools.•••* Makefile.am (.scm.go): Use guild instead of guile-tools to build scm
files.
| Arun Isaac |
2019-12-04 | tests: Title case header name.•••* tests/email.scm ("Keywords header must be a list"): Title case
header name. Remove unnecessary blank line.
| Arun Isaac |
2019-12-04 | email: Handle blank Subject headers.•••* 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>
| Arun Isaac |
2019-10-09 | email: Return keywords header as a list.•••* 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.
| Arun Isaac |
2019-10-08 | Reindent calls to call-with-port.•••* 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.
| Arun Isaac |
2019-10-08 | Add .dir-locals.el.•••* .dir-locals.el: New file.
| Arun Isaac |
2019-10-08 | email: Override invalid charset more strongly.•••* 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.
| Arun Isaac |
2019-10-08 | email: Introduce alist union utility.•••* 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.
| Arun Isaac |
2019-10-08 | email: Deduplicate post processing of header fields.•••* email/email.scm (post-process-fields): New function.
(parse-mime-entity, decode-body): Invoke post-process-fields.
| Arun Isaac |
2019-10-08 | tests: Compare email headers disregarding order.•••* 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=.
| Arun Isaac |
2019-10-02 | email: Tolerate decoding errors in body.•••* 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.
| Arun Isaac |
2019-10-01 | email: Tolerate invalid charset.•••* 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>
| Arun Isaac |
2019-09-28 | email: Tolerate decoding errors in MIME encoded words.•••* 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>
| Arun Isaac |
2019-09-28 | email: Remove duplicate unbracketed-angle-addr definition.•••* email/email.scm (unbracketed-angle-addr): Delete duplicate
definition.
| Arun Isaac |
2019-09-23 | Release version 0.2.1.•••* 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.
v0.2.1 | Arun Isaac |
2019-09-23 | email: Update mbox->emails docstring.•••The earlier docstring was one meant for read-next-email-in-mbox.
* email/email.scm (mbox->emails): Update docstring.
| Arun Isaac |
2019-09-23 | email: Add read-next-email-in-mbox docstring.•••* email/email.scm (read-next-email-in-mbox): Add docstring.
| Arun Isaac |
2019-09-23 | email: Tolerate non-ASCII non-UTF-8 characters in headers.•••* 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>
| Arun Isaac |
2019-09-17 | Install go files in libdir.•••Guile looks for compiled go files in libdir. So, put them there.
* Makefile.am (godir): Set to libdir, instead of moddir.
| Arun Isaac |
2019-09-17 | Add guix.scm.•••* guix.scm: New file.
| Arun Isaac |
2019-09-17 | email: Tolerate non-ASCII characters in headers.•••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>
| Arun Isaac |
2019-08-09 | website: Move manual to link with version and language information.•••* Makefile.am (website): Publish manual to link with version and
language information.
* README.org (Documentation): Update link to manual.
| Arun Isaac |
2019-08-09 | README: Publish releases in new Download section.•••* Makefile.am (website): Publish releases folder on website.
* README.org (Download): New section.
| Arun Isaac |
2019-08-09 | Release guile-email 0.2.0 tarball.•••* releases/guile-email-0.2.0.tar.lz,
releases/guile-email-0.2.0.tar.lz.asc: New files.
| Arun Isaac |
2019-08-09 | Bump version to 0.2.0.•••* configure.ac: Bump version.
* NEWS: New file.
v0.2.0 | Arun Isaac |
2019-08-09 | tests: Run tests with correct path.•••* 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.
| Arun Isaac |
2019-08-09 | Distribute test data files.•••* 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.
| Arun Isaac |
2019-08-09 | tests: Remove unnecessary execution permission.•••* tests/quoted-printable.scm: Remove execution permission.
| Arun Isaac |
2019-08-09 | Do not set PATH in pre-inst-env.•••Setting PATH is unnecessary since we do not have any script; we only
have a library.
* pre-inst-env.in: Do not set PATH.
| Arun Isaac |
2019-08-07 | doc: Document mbox->emails.•••* doc/guile-email.texi (Reading Email): New chapter.
* email/email.scm (mbox->emails): Add docstring.
| Arun Isaac |
2019-08-07 | utils: Clarify read-while docstring.•••* email/utils.scm (read-while): Clarify docstring.
| Arun Isaac |
2019-08-07 | doc: Add Data Types chapter to menu.•••* doc/guile-email.texi (Top): Add Data Types chapter to menu.
| Arun Isaac |
2019-08-07 | README: Simply project description.•••The features list provide a more detailed description. We need not
repeat the features in the short project description.
* README.org: Simplify project description.
| Arun Isaac |