utf8-dom fixes.

recoding nach utf-8 jetzt der default.
This commit is contained in:
dlichteblau
2005-12-27 01:35:13 +00:00
parent 42987f5dba
commit dbb2732913
12 changed files with 191 additions and 59 deletions

View File

@ -175,7 +175,8 @@
(defun read-members (&optional (directory *directory*))
(let* ((pathname (merge-pathnames "build/dom2-interfaces.xml" directory))
(builder (rune-dom:make-dom-builder))
(library (dom:document-element (cxml:parse-file pathname builder)))
(library (dom:document-element
(cxml:parse-file pathname builder :recode nil)))
(methods '())
(fields '()))
(do-child-elements (interface library :name "interface")
@ -584,7 +585,8 @@
(catch 'give-up
(let* ((builder (rune-dom:make-dom-builder))
(cxml::*validate* nil) ;dom1.dtd is buggy
(test (dom:document-element (cxml:parse-file pathname builder)))
(test (dom:document-element
(cxml:parse-file pathname builder :recode nil)))
title
(bindings '())
(code '()))
@ -631,7 +633,8 @@
(setf name (runes:rod-string name))
(cxml:parse-file
(make-pathname :name name :type "xml" :defaults *files-directory*)
(rune-dom:make-dom-builder)))
(rune-dom:make-dom-builder)
:recode nil))
(defparameter *bad-tests*
'("hc_elementnormalize2.xml"
@ -656,7 +659,7 @@
(let* ((all-tests (merge-pathnames "alltests.xml" test-directory))
(builder (rune-dom:make-dom-builder))
(suite (dom:document-element
(cxml:parse-file all-tests builder)))
(cxml:parse-file all-tests builder :recode nil)))
(*files-directory*
(merge-pathnames "files/" test-directory)))
(do-child-elements (member suite)

102
test/utf8domtest.diff Normal file
View File

@ -0,0 +1,102 @@
Index: test/domtest.lisp
===================================================================
RCS file: /project/cxml/cvsroot/cxml/test/domtest.lisp,v
retrieving revision 1.13
diff -u -r1.13 domtest.lisp
--- test/domtest.lisp 27 Dec 2005 00:21:37 -0000 1.13
+++ test/domtest.lisp 27 Dec 2005 00:46:00 -0000
@@ -137,21 +137,22 @@
((digit-char-p (runes:rune-char (elt str 0)))
(parse-integer (runes:rod-string str)))
((runes:rune= (elt str 0) #.(runes:char-rune #\"))
- (let ((v (make-array 1 :fill-pointer 0 :adjustable t)))
- (for* ((i = 1 :then (1+ i))
- (c = (elt str i))
- :until (runes:rune= c #.(runes:char-rune #\")))
- (if (runes:rune= c #.(runes:char-rune #\\))
- (let ((frob
- (progn
- (incf i)
- (elt str i))))
- (ecase frob
- ;; ...
- (#/n (vector-push-extend #/newline v (length v)))
- ((#/\\ #/\") (vector-push-extend #/\\ v (length v)))))
- (vector-push-extend c v (length v))))
- (coerce v 'runes::simple-rod)))
+ (utf8-dom::%rod
+ (let ((v (make-array 1 :fill-pointer 0 :adjustable t)))
+ (for* ((i = 1 :then (1+ i))
+ (c = (elt str i))
+ :until (runes:rune= c #.(runes:char-rune #\")))
+ (if (runes:rune= c #.(runes:char-rune #\\))
+ (let ((frob
+ (progn
+ (incf i)
+ (elt str i))))
+ (ecase frob
+ ;; ...
+ (#/n (vector-push-extend #/newline v (length v)))
+ ((#/\\ #/\") (vector-push-extend #/\\ v (length v)))))
+ (vector-push-extend c v (length v))))
+ (coerce v 'runes::simple-rod))))
(t
(%intern str))))
@@ -368,7 +369,7 @@
(defun translate-implementation (elt)
(with-attributes (|var|) elt
- (maybe-setf (%intern |var|) `'rune-dom:implementation)))
+ (maybe-setf (%intern |var|) `'utf8-dom:implementation)))
(defun translate-length (load)
;; XXX Soweit ich sehe unterscheiden die Tests nicht zwischen
@@ -406,7 +407,7 @@
(if (nullify |obj|)
(translate-member element)
(maybe-setf (%intern |var|)
- `(dom:has-feature 'rune-dom:implementation
+ `(dom:has-feature 'utf8-dom:implementation
,(parse-java-literal |feature|)
,(parse-java-literal |version|))))))
@@ -493,9 +494,9 @@
(return
`(block assert-domexception
(handler-bind
- ((rune-dom::dom-exception
+ ((utf8-dom::dom-exception
(lambda (c)
- (when (eq (rune-dom::dom-exception-key c)
+ (when (eq (utf8-dom::dom-exception-key c)
,(intern (tag-name c) :keyword))
(return-from assert-domexception)))))
,@(translate-body c)
@@ -506,7 +507,7 @@
,@(map-child-elements
'list
(lambda (exception)
- `(when (eq (rune-dom::dom-exception-key c)
+ `(when (eq (utf8-dom::dom-exception-key c)
,(intern (runes:rod-string (dom:get-attribute exception "code"))
:keyword))
,@(translate-body exception)
@@ -516,7 +517,7 @@
(defun translate-try (element)
`(block try
(handler-bind
- ((rune-dom::dom-exception
+ ((utf8-dom::dom-exception
,(translate-catch
(do-child-elements (c element :name "catch") (return c))
'(return-from try))))
@@ -631,7 +632,7 @@
(setf name (runes:rod-string name))
(cxml:parse-file
(make-pathname :name name :type "xml" :defaults *files-directory*)
- (rune-dom:make-dom-builder)))
+ (cxml:make-recoder (utf8-dom:make-dom-builder) 'cxml:rod-to-utf8-string)))
(defparameter *bad-tests*
'("hc_elementnormalize2.xml"

View File

@ -77,7 +77,7 @@
(defun run-all-tests (directory)
(let* ((pathname (merge-pathnames "xmlconf.xml" directory))
(builder (rune-dom:make-dom-builder))
(xmlconf (cxml:parse-file pathname builder))
(xmlconf (cxml:parse-file pathname builder :recode nil))
(ntried 0)
(nfailed 0)
(nskipped 0)
@ -125,6 +125,7 @@
(let ((document (apply #'cxml:parse-file
pathname
(rune-dom:make-dom-builder)
:recode nil
args)))
(cond
((null output)
@ -161,7 +162,10 @@
(handler-case
(progn
(format t " [validating:]")
(cxml:parse-file pathname (rune-dom:make-dom-builder) :validate t)
(cxml:parse-file pathname
(rune-dom:make-dom-builder)
:recode nil
:validate t)
(error "validity error not detected")
nil)
(cxml:validity-error ()
@ -174,7 +178,10 @@
(handler-case
(progn
(format t " [not validating:]")
(cxml:parse-file pathname (rune-dom:make-dom-builder) :validate nil)
(cxml:parse-file pathname
(rune-dom:make-dom-builder)
:recode nil
:validate nil)
(error "well-formedness violation not detected")
nil)
(cxml:well-formedness-violation ()
@ -183,7 +190,10 @@
(handler-case
(progn
(format t " [validating:]")
(cxml:parse-file pathname (rune-dom:make-dom-builder) :validate t)
(cxml:parse-file pathname
(rune-dom:make-dom-builder)
:recode nil
:validate t)
(error "well-formedness violation not detected")
nil)
(cxml:well-formedness-violation ()