tvl-depot/third_party/lisp/mime4cl
sterni db2fa5b3c8 fix(3p/lisp/mime4cl): also default to :7BIT when decoding
Content-Transfer-Encoding should default to 7bit when it's not
given (RFC2045). MIME-PART already defaults to this when manually
constructing this, but MAKE-MIME-PART would always set it, so it would
sometimes be NIL which is incorrect. We now correctly fall back to :7bit
in this case.

Additionally, we make sure that KEYWORDIFY-ENCODING immediately returns
when it's given NIL.

Change-Id: I50f86dd649d83a4c3a8881d6e13dcada889d5521
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12857
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
2024-12-02 18:08:37 +00:00
..
test test(3p/lisp/mime4cl): test decoding RFC2047 examples 2023-05-18 16:18:44 +00:00
.skip-subtree feat(3p/lisp/mime4cl): build using buildLisp 2021-09-01 22:57:17 +00:00
address.lisp refactor(3p/lisp/mime4cl): remove be and be* 2023-05-18 16:18:42 +00:00
default.nix refactor(3p/mime4cl): use SB-POSIX for FILE-LENGTH 2024-04-05 11:01:39 +00:00
endec.lisp test(3p/lisp/mime4cl): test decoding RFC2047 examples 2023-05-18 16:18:44 +00:00
ex-sclf.lisp refactor(3p/mime4cl): use SB-POSIX for FILE-LENGTH 2024-04-05 11:01:39 +00:00
mime.lisp fix(3p/lisp/mime4cl): also default to :7BIT when decoding 2024-12-02 18:08:37 +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 test(3p/lisp/mime4cl): test decoding RFC2047 examples 2023-05-18 16:18:44 +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.