Update of /project/cxml/cvsroot/cxml/dom
In directory common-lisp.net:/tmp/cvs-serv19785/dom
Modified Files:
dom-impl.lisp package.lisp
Log Message:
kleine anpassungen fuer cl-xmpp
neu: do-node-map, map-node-map
Date: Fri Dec 30 15:21:46 2005
Author: dlichteblau
Index: cxml/dom/dom-impl.lisp
diff -u cxml/dom/dom-impl.lisp:1.35 cxml/dom/dom-impl.lisp:1.36
--- cxml/dom/dom-impl.lisp:1.35 Thu Dec 29 00:11:22 2005
+++ cxml/dom/dom-impl.lisp Fri Dec 30 15:21:44 2005
@@ -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)
Index: cxml/dom/package.lisp
diff -u cxml/dom/package.lisp:1.4 cxml/dom/package.lisp:1.5
--- cxml/dom/package.lisp:1.4 Tue Dec 27 01:21:31 2005
+++ cxml/dom/package.lisp Fri Dec 30 15:21:46 2005
@@ -138,5 +138,7 @@
#:map-node-list
#:do-node-list
+ #:map-node-map
+ #:do-node-map
#:create-document
#:map-document))