[cxml-cvs] CVS update: cxml/xml/xml-parse.lisp

David Lichteblau dlichteblau at common-lisp.net
Sun Nov 27 16:46:52 UTC 2005


Update of /project/cxml/cvsroot/cxml/xml
In directory common-lisp.net:/tmp/cvs-serv912/xml

Modified Files:
	xml-parse.lisp 
Log Message:
*patsch*  wieder eine runde eof-bugs erschlagen

Date: Sun Nov 27 17:46:50 2005
Author: dlichteblau

Index: cxml/xml/xml-parse.lisp
diff -u cxml/xml/xml-parse.lisp:1.32 cxml/xml/xml-parse.lisp:1.33
--- cxml/xml/xml-parse.lisp:1.32	Sun Nov 27 17:37:59 2005
+++ cxml/xml/xml-parse.lisp	Sun Nov 27 17:46:48 2005
@@ -1506,16 +1506,24 @@
          (let ((c (read-rune input)))
            (check-rune input c #/#)
            (setq c (read-rune input))
-           (cond ((eql c #/x)
+           (cond ((eql c :eof)
+		  (eox input))
+	         ((eql c #/x)
                   ;; hexadecimal
                   (setq c (read-rune input))
+		  (when (eql c :eof)
+		    (eox input))
                   (unless (digit-rune-p c 16)
 		    (wf-error "garbage in character reference"))
                   (prog1
                       (parse-integer
                        (with-output-to-string (sink)
                          (write-char (rune-char c) sink)
-                         (while (digit-rune-p (setq c (read-rune input)) 16)
+                         (while (progn
+				  (setq c (read-rune input))
+				  (when (eql c :eof)
+				    (eox input))
+				  (digit-rune-p c 16))
                            (write-char (rune-char c) sink)))
                        :radix 16)
                     (check-rune input c #/\;)))
@@ -1525,7 +1533,11 @@
                       (parse-integer
                        (with-output-to-string (sink)
                          (write-char (rune-char c) sink)
-                         (while (rune<= #/0 (setq c (read-rune input)) #/9)
+                         (while (progn
+				  (setq c (read-rune input))
+				  (when (eql c :eof)
+				    (eox input))
+				  (rune<= #/0 c #/9))
                            (write-char (rune-char c) sink)))
                        :radix 10)
                     (check-rune input c #/\;)))




More information about the Cxml-cvs mailing list