diff --git a/README.html b/README.html index f11b49e..94f887d 100644 --- a/README.html +++ b/README.html @@ -82,7 +82,7 @@

- CXML currently implements a namespace-aware, validating SAX-like XML 1.0 diff --git a/dom/dom-impl.lisp b/dom/dom-impl.lisp index 8de0a1d..a819221 100644 --- a/dom/dom-impl.lisp +++ b/dom/dom-impl.lisp @@ -188,6 +188,15 @@ (dom:map-node-list (lambda (,var) ,@body) ,nodelist) ,resultform)) +(defun dom:map-node-map (fn node-map) + (with-slots (items) node-map + (mapc fn items))) + +(defmacro dom:do-node-map ((var node-map &optional resultform) &body body) + `(block nil + (dom:map-node-map (lambda (,var) ,@body) ,node-map) + ,resultform)) + (defmacro dovector ((var vector &optional resultform) &body body) `(loop for ,var across ,vector do (progn ,@body) diff --git a/dom/package.lisp b/dom/package.lisp index ad44cb5..a624153 100644 --- a/dom/package.lisp +++ b/dom/package.lisp @@ -138,5 +138,7 @@ #:map-node-list #:do-node-list + #:map-node-map + #:do-node-map #:create-document #:map-document)) diff --git a/runes/package.lisp b/runes/package.lisp index f801eda..7b8a4a4 100644 --- a/runes/package.lisp +++ b/runes/package.lisp @@ -43,6 +43,7 @@ #:rod< ;; xstream.lisp + #:xstream #:make-xstream #:make-rod-xstream #:close-xstream diff --git a/runes/xstream.lisp b/runes/xstream.lisp index 5798ecd..5e3657c 100644 --- a/runes/xstream.lisp +++ b/runes/xstream.lisp @@ -256,9 +256,7 @@ ;;; Underflow -;;(defun read-runes (sequence input)) - -(defun xstream-underflow (input) +(defmethod xstream-underflow ((input xstream)) (declare (type xstream input)) ;; we are about to fill new data into the buffer, so we need to ;; adjust buffer-start.