1f5e1383f5
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 |
||
---|---|---|
.. | ||
benchmark | ||
test | ||
address.lisp | ||
default.nix | ||
endec.lisp | ||
ex-sclf.lisp | ||
mime.lisp | ||
mime4cl-tests.asd | ||
mime4cl.asd | ||
OWNERS | ||
package.lisp | ||
README.md | ||
streams.lisp |
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 usingREAD-SEQUENCE
via the gray stream interface.