3398c2ab7f
MIME-MESSAGE has a HEADERS slot which is an alist of all headers. Some of those headers will be parsed again and stored in MIME-PART (or a subclass of it). Having the header content stored in the HEADERS alist and in MIME-PART causes problems: - Requires extra knowledge about how messages are parsed when rendering messages. - Makes MIME= depend on the specific whitespace and quoting in those headers which isn't preserved by how mime4cl parses e.g. Content-Type. - Gives users two ways that slightly diverge to access the same thing. To avoid this, we remove these headers after the MIME-PARTs contained in MIME-MESSAGE have been initialized (since they reuse the HEADERS slot). Change-Id: I5b221f88bbac47dd81db369e3c1d5881a5a50e5e Reviewed-on: https://cl.tvl.fyi/c/depot/+/12858 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: sterni <sternenseemann@systemli.org> |
||
---|---|---|
.. | ||
test | ||
.skip-subtree | ||
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.