diff --git a/klacks/klacks.lisp b/klacks/klacks.lisp index 0148f58..11e22b8 100644 --- a/klacks/klacks.lisp +++ b/klacks/klacks.lisp @@ -79,6 +79,12 @@ (check-type key (member :characters)) characters)) +(defun klacks:consume-characters (source) + (with-output-to-string (s) + (while (eq (klacks:peek source) :characters) + (write-string (klacks:current-characters source) s) + (klacks:consume source)))) + (defun klacks:serialize-event (source handler &key (consume t)) (multiple-value-bind (key a b c) (klacks:peek source) (let ((result nil)) diff --git a/klacks/package.lisp b/klacks/package.lisp index ad1ac8e..7fd928d 100644 --- a/klacks/package.lisp +++ b/klacks/package.lisp @@ -21,8 +21,10 @@ (:export #:source #:close-source #:with-open-source + #:tapping-source #:make-tapping-source + #:dribble-handler #:peek #:peek-value @@ -42,6 +44,7 @@ #:current-lname #:current-qname #:current-characters + #:consume-characters #:current-cdata-section-p #:map-current-namespace-declarations