-xmltest/not-wf/sa/170.xml [not validating:] FAILED:
- well-formedness violation not detected -[ - Four byte UTF-8 encodings can encode UCS-4 characters - which are beyond the range of legal XML characters - (and can't be expressed in Unicode surrogate pairs). - This document holds such a character. ]
This commit is contained in:
@ -160,8 +160,10 @@
|
|||||||
`((lambda (x)
|
`((lambda (x)
|
||||||
(when (or (<= #xD800 x #xDBFF)
|
(when (or (<= #xD800 x #xDBFF)
|
||||||
(<= #xDC00 x #xDFFF))
|
(<= #xDC00 x #xDFFF))
|
||||||
(xerror "surrogate encoded in UTF-8: #x~x." x))
|
(xerror "surrogate encoded in UTF-8: #x~X." x))
|
||||||
(cond ((%> x #xFFFF)
|
(cond ((%> x #x10FFFF)
|
||||||
|
(xerror "not a valid code point: #x~X" x))
|
||||||
|
((%> x #xFFFF)
|
||||||
(setf (aref out (%+ 0 wptr)) (%+ #xD7C0 (ash x -10))
|
(setf (aref out (%+ 0 wptr)) (%+ #xD7C0 (ash x -10))
|
||||||
(aref out (%+ 1 wptr)) (%ior #xDC00 (%and x #x3FF)))
|
(aref out (%+ 1 wptr)) (%ior #xDC00 (%and x #x3FF)))
|
||||||
(setf wptr (%+ wptr 2)))
|
(setf wptr (%+ wptr 2)))
|
||||||
|
|||||||
Reference in New Issue
Block a user