refactor(sterni/mblog/note): don't escape streams char by char
Depending on the stream backing this, read-sequence should be more efficient. Change-Id: I5d0461f76f4b132ac6e6c3a2e503f0173d5f4114 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5194 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
98e4cd032f
commit
81c47da91c
2 changed files with 9 additions and 5 deletions
|
@ -3,12 +3,16 @@
|
|||
|
||||
;;; util
|
||||
|
||||
;; TODO(sterni): merge this with mblog::*copy-buffer-size*
|
||||
(defvar *copy-buffer-size* 4096)
|
||||
|
||||
(defun html-escape-stream (in out)
|
||||
"Escape characters read from stream IN and write them to
|
||||
stream OUT escaped using WHO:ESCAPE-CHAR-MINIMAL."
|
||||
(loop for char = (read-char in nil nil)
|
||||
while char
|
||||
do (write-string (who:escape-char-minimal char) out)))
|
||||
stream OUT escaped using WHO:ESCAPE-STRING-MINIMAL."
|
||||
(let ((buf (make-string *copy-buffer-size*)))
|
||||
(loop for len = (read-sequence buf in)
|
||||
while (> len 0)
|
||||
do (write-string (who:escape-string-minimal (subseq buf 0 len)) out))))
|
||||
|
||||
(defun cid-header-value (cid)
|
||||
"Takes a Content-ID as present in Apple Notes' <object> tags and properly
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
:when-let
|
||||
:starts-with-subseq
|
||||
:ends-with-subseq)
|
||||
(:import-from :who :escape-char-minimal)
|
||||
(:import-from :who :escape-string-minimal)
|
||||
(:export
|
||||
:apple-note
|
||||
:apple-note-uuid
|
||||
|
|
Loading…
Reference in a new issue