[cxml-cvs] CVS cxml/xml

dlichteblau dlichteblau at common-lisp.net
Sat Sep 16 07:53:00 UTC 2006


Update of /project/cxml/cvsroot/cxml/xml
In directory clnet:/tmp/cvs-serv18383/xml

Modified Files:
	xml-parse.lisp 
Log Message:
fixed the long-standing bug with start tags in :DTD behaviour


--- /project/cxml/cvsroot/cxml/xml/xml-parse.lisp	2006/09/10 14:55:30	1.63
+++ /project/cxml/cvsroot/cxml/xml/xml-parse.lisp	2006/09/16 07:52:59	1.64
@@ -1278,6 +1278,11 @@
 			      (mu target)))
                    (t
                     (values :PI (cons target content))))))
+          ((eq *data-behaviour* :DTD)
+	    (unread-rune d input)
+	    (unless (or (rune= #// d) (name-start-rune-p d))
+	      (wf-error zinput "Expected '!' or '?' after '<' in DTD."))
+	    (values :seen-< nil))
           ((rune= #// d)
            (let ((c (peek-rune input)))
              (cond ((name-start-rune-p c)
@@ -2605,6 +2610,11 @@
         (setf (model-stack *ctx*) (list (make-root-model root))))
       ;; element
       (let ((*data-behaviour* :DOC))
+	(when (eq (peek-token input) :seen-<)
+	  (multiple-value-bind (c s)
+	      (read-token-after-|<| input (car (zstream-input-stack input)))
+	    (setf (zstream-token-category input) c
+		  (zstream-token-semantic input) s)))
         (p/element input))
       ;; optional Misc*
       (p/misc*-2 input)




More information about the Cxml-cvs mailing list