refactor(3p/lisp/mime4cl): replace babel with flexi-streams
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>
This commit is contained in:
parent
e292d82d83
commit
1139109063
3 changed files with 5 additions and 7 deletions
2
third_party/lisp/mime4cl/default.nix
vendored
2
third_party/lisp/mime4cl/default.nix
vendored
|
@ -6,7 +6,7 @@ depot.nix.buildLisp.library {
|
||||||
name = "mime4cl";
|
name = "mime4cl";
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
depot.third_party.lisp.babel
|
depot.third_party.lisp.flexi-streams
|
||||||
depot.third_party.lisp.npg
|
depot.third_party.lisp.npg
|
||||||
depot.third_party.lisp.trivial-gray-streams
|
depot.third_party.lisp.trivial-gray-streams
|
||||||
];
|
];
|
||||||
|
|
6
third_party/lisp/mime4cl/endec.lisp
vendored
6
third_party/lisp/mime4cl/endec.lisp
vendored
|
@ -687,10 +687,10 @@ sequence, a charset string indicating the original coding."
|
||||||
encountered, try to decode it using babel, otherwise signal an error."
|
encountered, try to decode it using babel, otherwise signal an error."
|
||||||
(flet ((decode-part (part)
|
(flet ((decode-part (part)
|
||||||
(etypecase part
|
(etypecase part
|
||||||
(cons (babel:octets-to-string
|
(cons (flexi-streams:octets-to-string
|
||||||
(car part)
|
(car part)
|
||||||
:encoding (babel-encodings:get-character-encoding
|
:external-format (flexi-streams:make-external-format
|
||||||
(intern (string-upcase (cdr part)) 'keyword))))
|
(intern (string-upcase (cdr part)) 'keyword))))
|
||||||
(string part))))
|
(string part))))
|
||||||
(apply #'concatenate
|
(apply #'concatenate
|
||||||
(cons 'string
|
(cons 'string
|
||||||
|
|
4
third_party/lisp/mime4cl/package.lisp
vendored
4
third_party/lisp/mime4cl/package.lisp
vendored
|
@ -23,9 +23,7 @@
|
||||||
|
|
||||||
(defpackage :mime4cl
|
(defpackage :mime4cl
|
||||||
(:nicknames :mime)
|
(:nicknames :mime)
|
||||||
(:use :common-lisp :npg :mime4cl-ex-sclf :trivial-gray-streams)
|
(:use :common-lisp :npg :mime4cl-ex-sclf :trivial-gray-streams :flexi-streams)
|
||||||
(:import-from :babel :octets-to-string)
|
|
||||||
(:import-from :babel-encodings :get-character-encoding)
|
|
||||||
(:export #:*lazy-mime-decode*
|
(:export #:*lazy-mime-decode*
|
||||||
#:print-mime-part
|
#:print-mime-part
|
||||||
#:read-mime-message
|
#:read-mime-message
|
||||||
|
|
Loading…
Reference in a new issue