about summary refs log tree commit diff
path: root/third_party/lisp/mime4cl/package.lisp (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-05-18 r/6158 test(3p/lisp/mime4cl): test decoding RFC2047 examplessterni1-0/+1
Change-Id: I32abb00e8cec697adb45b9a175cd753e807d33d5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8588 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2023-05-18 r/6156 refactor(3p/lisp/mime4cl): port remaining base64 decoding to qbase64sterni1-3/+0
DECODE-BASE64-STREAM-TO-SEQUENCE is the only thing that requires anything fancy: We read into an adjustable array. Alternative could be using REDIRECT-STREAM and WITH-OUTPUT-TO-STRING, but that is likely slower (untested). Test cases are kept for now to confirm that qbase64 is conforming to our expectations, but can probably dropped in favor of a few more sample messages in the test suite. :START and :END are sadly no longer supported and need to be replaced by SUBSEQ. Change-Id: I5928aed7551b0dea32ee09518ea6f604b40c2863 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8586 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2023-05-18 r/6154 refactor(sterni/mblog): move REDIRECT-STREAM into mime4clsterni1-1/+4
Eventually, we'll want to replace dump-stream-binary with something more efficient—given that we have flexi-streams we can use something that only does matching element types no problem. REDIRECT-STREAM is much more efficient thanks to using an internal buffer. streams.lisp gets a new section at the beginning for grouping utilities that don't have any real (internal) dependencies. Change-Id: I141cd36440d532131f389be2768fdaa54e7c7218 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8583 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2023-03-30 r/6063 refactor(3p/lisp/mime4cl): replace babel with flexi-streamssterni1-3/+1
decode-RFC2047 used babel's octets-to-string, but we can replace it with the function of the same name from flexi-streams. This doesn't make a difference for the moment, but will be useful in the future: flexi-streams provides de- and encoding streams that we'll be able to use to replace and augment some of the stream based MIME part handling code in mime4cl. babel doesn't have as powerful stream functionality although it seems to be planned. Another big upside of flexi-streams is that we'll be able to replace delimited-input-string using it. This should allow us to slowly work towards correct and more efficient decoding of MIME bodies. Change-Id: I17174f1c96c5be7d103d396564e6aa0fe24c80fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/8371 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-07-05 r/4275 chore: remove sclf from the treesterni1-7/+1
SCLF is quite a big utility library (almost 3€ LOC) with limited portability (CMUCL, SBCL and CLISP to an extent). Continuing to maintain it is an unnecessary burden, as depot only uses a fraction of it which is now inlined into the respective users (mime4cl and mblog). In the future trimming down ex-sclf.lisp may make sense either by refactoring the code that uses it or by moving interesting utilities into e.g. klatre. Change-Id: I2e73825b6bfa372e97847f25c30731a5aad4a1b5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5922 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 r/3754 feat: move mblog header handling into mime4clsterni1-0/+3
Accessing the headers of a MIME message feels like something mime4cl should handle. We implemented this ad hoc in mblog before in order to not need to worry about doing it in a sensible way. Now we introduce a decent-ish interface for getting a header from a MIME message, mime-message-header-values: * It returns a list because MIME message headers may appear multiple times. * It decodes RFC2047 only upon request, as you may want to be stricter about parsing certain fields. * It checks header name equality case insensitively. The code for decoding the RFC2047 string is retained and still uses babel for doing the actual decoding. Change-Id: I58bbbe4b46dbded04160b481a28a40d14775673d Reviewed-on: https://cl.tvl.fyi/c/depot/+/5150 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-26 r/3676 refactor(3p/lisp/mime4cl): use trivial-gray-streamssterni1-3/+2
This should be a net positive for portability and lets us drop some of the CMUCL cruft (which we don't test anyway, CMU support may have regressed regardless). Change-Id: I85664d82d211177da1db9eebea65c956295b09f7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5067 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-26 r/3675 style(3p/lisp): expand tabs in npg, mime4cl and sclfsterni1-79/+79
Done using find third_party/lisp/{sclf,mime4cl,npg} \ -name '*.lisp' -or -name '*.asd' \ -exec bash -c 'expand -i -t 8 "$0" | sponge "$0"' {} \; Change-Id: If84afac9c1d5cbc74e137a5aa0ae61472f0f1e90 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5066 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 r/2853 feat(3p/lisp/mime4cl): search for first (default) mime text partsterni1-0/+1
Adds a simple generic function find-mime-text-part which returns the first suitable text/* part in any MIME part it is given. Has no meaningful alternatives handling at the moment: It will pick the first text part and doesn't allow specifying a preference. Change-Id: Id9b113b3ef3ca1a575ce8f3582a4f85e30edfb43 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3379 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-01 r/2814 chore(3p/lisp): import mime4cl source tarballsterni1-0/+107
Used http://wcp.sdf-eu.org/software/mime4cl-20150207T211851.tbz (sha256 5a914669bba7561efe59a4fd0817204c07ad2add98b03ae206ef185ac04affb3). Importing seems sensible since there's no upstream repo nor has their been a release since 2015. This is just an import commit, so the changes made to make it build are more discoverable as their own commit. Change-Id: I2ff28c3c7433abdf7857204bc89eaf9edc0b1cbc Reviewed-on: https://cl.tvl.fyi/c/depot/+/3378 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>