tvl-depot/third_party/lisp/mime4cl
sterni 1f5e1383f5 fix(3p/lisp/mime4cl): make MIME-BODY-STREAM always return characters
Because OPEN-DECODED-FILE-PORTION only knows about transfer encodings it
would only return a character stream for 7bit encoded bodies. This
causes inconsistent behavior where some bodies would return binary and
some character streams. To fix this, we specialize MIME-BODY-STREAM for
MIME-TEXT parts which may or may not be a good enough solution.

We may actually want to make MIME-BODY-STREAM binary always and let the
user handle decoding?! This may be a good idea to take care after yet
another stream machinery redesign.

Since the mime4cl test suite doesn't test MIME-BODY-STREAM (much), add a
message generated by notemap that hits this issue to the mblog golden
test suite.

Change-Id: Ie340c42ced6c693af9b3c84b177408d6b6d2c9c4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12913
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2024-12-26 12:59:03 +00:00
..
benchmark fix(3p/lisp/mime4cl/benchmark): fix mime type of attachment 2024-12-25 23:32:29 +00:00
test fix(3p/lisp/mime4cl): make MIME-BODY-STREAM always return characters 2024-12-26 12:59:03 +00:00
address.lisp refactor(3p/lisp/mime4cl): remove be and be* 2023-05-18 16:18:42 +00:00
default.nix chore(3p/lisp/mime4cl): remove MIME-PART-SIZE and MIME-BODY-SIZE 2024-12-05 14:00:25 +00:00
endec.lisp fix(3p/lisp/mime4cl): make MIME-BODY-STREAM always return characters 2024-12-26 12:59:03 +00:00
ex-sclf.lisp chore(3p/lisp/mime4cl): remove MIME-PART-SIZE and MIME-BODY-SIZE 2024-12-05 14:00:25 +00:00
mime.lisp fix(3p/lisp/mime4cl): make MIME-BODY-STREAM always return characters 2024-12-26 12:59:03 +00:00
mime4cl-tests.asd chore(3p/lisp/mime4cl): remove CMUCL specific code 2022-01-26 17:43:54 +00:00
mime4cl.asd refactor(3p/lisp/mime4cl): use trivial-gray-streams 2022-01-26 17:43:54 +00:00
OWNERS chore(gerrit): migrate OWNERS files to code-owners style 2022-09-19 11:13:28 +00:00
package.lisp chore(3p/lisp/mime4cl): remove MIME-PART-SIZE and MIME-BODY-SIZE 2024-12-05 14:00:25 +00:00
README.md docs(3p/lisp/mime4cl): describe changes compared to original version 2023-05-23 12:43:43 +00:00
streams.lisp refactor(3p/lisp/mime4cl): port remaining base64 decoding to qbase64 2023-05-18 16:18:43 +00:00

mime4cl

MIME4CL is a Common Lisp library for dealing with MIME messages. It was originally been written by Walter C. Pelissero and vendored into depot (mime4cl-20150207T211851.tbz to be exact) as upstream has become inactive. Its original website can still be accessed.

The depot version has since diverged from upstream. Main aims were to improve performance and reduce code size by relying on third party libraries like flexi-streams. It is planned to improve encoding handling in the long term. Currently, the library is being worked on intermittently and not very well tested—it may not work as expected.

Differences from the original version

  • //nix/buildLisp is used as the build system. ASDF is currently untested and may be broken.

  • The dependency on sclf has been eliminated by inlining the relevant parts.

  • MY-STRING-INPUT-STREAM, DELIMITED-INPUT-STREAM, CHARACTER-INPUT-ADAPTER-STREAM, BINARY-INPUT-ADAPTER-STREAM etc. have been replaced by (thin wrappers around) flexi-streams. In addition to improved handling of encodings, this allows using READ-SEQUENCE via the gray stream interface.