eof im pi content korrekt pruefen
This commit is contained in:
80
XMLCONF
80
XMLCONF
@ -1,14 +1,8 @@
|
|||||||
xmltest/not-wf/sa/001.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/001.xml [not validating:] not-wf [validating:] invalid
|
||||||
xmltest/not-wf/sa/002.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/002.xml [not validating:] not-wf [validating:] invalid
|
||||||
xmltest/not-wf/sa/003.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/003.xml [not validating:] not-wf [validating:] invalid
|
||||||
xmltest/not-wf/sa/004.xml [not validating:] FAILED:
|
xmltest/not-wf/sa/004.xml [not validating:] not-wf [validating:] invalid
|
||||||
The value :EOF is not of type NUMBER.
|
xmltest/not-wf/sa/005.xml [not validating:] not-wf [validating:] invalid
|
||||||
[
|
|
||||||
SGML-ism: processing instructions end in '?>' not '>'. ]
|
|
||||||
xmltest/not-wf/sa/005.xml [not validating:] FAILED:
|
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Processing instructions end in '?>' not '?'. ]
|
|
||||||
xmltest/not-wf/sa/006.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/006.xml [not validating:] not-wf [validating:] invalid
|
||||||
xmltest/not-wf/sa/007.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/007.xml [not validating:] not-wf [validating:] invalid
|
||||||
xmltest/not-wf/sa/008.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/008.xml [not validating:] not-wf [validating:] invalid
|
||||||
@ -40,10 +34,7 @@ xmltest/not-wf/sa/027.xml [not validating:] FAILED:
|
|||||||
The value :EOF is not of type NUMBER.
|
The value :EOF is not of type NUMBER.
|
||||||
[
|
[
|
||||||
Comments must be terminated with "-->".]
|
Comments must be terminated with "-->".]
|
||||||
xmltest/not-wf/sa/028.xml [not validating:] FAILED:
|
xmltest/not-wf/sa/028.xml [not validating:] not-wf [validating:] invalid
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Processing instructions must end with '?>'. ]
|
|
||||||
xmltest/not-wf/sa/029.xml [not validating:] not-wf [validating:] invalid
|
xmltest/not-wf/sa/029.xml [not validating:] not-wf [validating:] invalid
|
||||||
xmltest/not-wf/sa/030.xml [not validating:] FAILED:
|
xmltest/not-wf/sa/030.xml [not validating:] FAILED:
|
||||||
well-formedness violation not detected
|
well-formedness violation not detected
|
||||||
@ -281,10 +272,7 @@ xmltest/not-wf/sa/171.xml [not validating:] FAILED:
|
|||||||
well-formedness violation not detected
|
well-formedness violation not detected
|
||||||
[
|
[
|
||||||
Character FFFF is not legal anywhere in an XML document. ]
|
Character FFFF is not legal anywhere in an XML document. ]
|
||||||
xmltest/not-wf/sa/172.xml [not validating:] FAILED:
|
xmltest/not-wf/sa/172.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Character FFFF is not legal anywhere in an XML document. ]
|
|
||||||
xmltest/not-wf/sa/173.xml [not validating:] not-wf [validating:] not-wf
|
xmltest/not-wf/sa/173.xml [not validating:] not-wf [validating:] not-wf
|
||||||
xmltest/not-wf/sa/174.xml [not validating:] FAILED:
|
xmltest/not-wf/sa/174.xml [not validating:] FAILED:
|
||||||
The value :EOF is not of type NUMBER.
|
The value :EOF is not of type NUMBER.
|
||||||
@ -987,11 +975,7 @@ oasis/p23fail1.xml [not validating:] not-wf [validating:] not-wf
|
|||||||
oasis/p23fail2.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p23fail2.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p23fail3.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p23fail3.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p23fail4.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p23fail4.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p23fail5.xml [not validating:] FAILED:
|
oasis/p23fail5.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
no SGML-type PIs
|
|
||||||
]
|
|
||||||
oasis/p24fail1.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p24fail1.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p24fail2.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p24fail2.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p25fail1.xml [not validating:] FAILED:
|
oasis/p25fail1.xml [not validating:] FAILED:
|
||||||
@ -1021,10 +1005,7 @@ oasis/p39fail3.xml [not validating:] FAILED:
|
|||||||
at least 1 expected, but 0 found
|
at least 1 expected, but 0 found
|
||||||
[
|
[
|
||||||
XML documents contain one or more elements]
|
XML documents contain one or more elements]
|
||||||
oasis/p39fail4.xml [not validating:] FAILED:
|
oasis/p39fail4.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
XML declarations must be correctly terminated ]
|
|
||||||
oasis/p39fail5.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p39fail5.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p40fail1.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p40fail1.xml [not validating:] not-wf [validating:] not-wf
|
||||||
oasis/p40fail2.xml [not validating:] not-wf [validating:] not-wf
|
oasis/p40fail2.xml [not validating:] not-wf [validating:] not-wf
|
||||||
@ -1350,16 +1331,8 @@ ibm/not-wf/P16/ibm16n01.xml [not validating:] FAILED:
|
|||||||
"(less than)?".
|
"(less than)?".
|
||||||
]
|
]
|
||||||
ibm/not-wf/P16/ibm16n02.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P16/ibm16n02.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P16/ibm16n03.xml [not validating:] FAILED:
|
ibm/not-wf/P16/ibm16n03.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
ibm/not-wf/P16/ibm16n04.xml [not validating:] not-wf [validating:] not-wf
|
||||||
[
|
|
||||||
Tests PI. The PI has a wrong closing sequence ">".
|
|
||||||
]
|
|
||||||
ibm/not-wf/P16/ibm16n04.xml [not validating:] FAILED:
|
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Tests PI. The closing sequence is missing in the PI.
|
|
||||||
]
|
|
||||||
ibm/not-wf/P17/ibm17n01.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P17/ibm17n01.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P17/ibm17n02.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P17/ibm17n02.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P17/ibm17n03.xml [not validating:] FAILED:
|
ibm/not-wf/P17/ibm17n03.xml [not validating:] FAILED:
|
||||||
@ -1459,11 +1432,7 @@ ibm/not-wf/P23/ibm23n01.xml [not validating:] not-wf [validating:] not-wf
|
|||||||
ibm/not-wf/P23/ibm23n02.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P23/ibm23n02.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P23/ibm23n03.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P23/ibm23n03.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P23/ibm23n04.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P23/ibm23n04.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P23/ibm23n05.xml [not validating:] FAILED:
|
ibm/not-wf/P23/ibm23n05.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Tests XMLDecl with a wrong closing sequence ">".
|
|
||||||
]
|
|
||||||
ibm/not-wf/P23/ibm23n06.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P23/ibm23n06.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P24/ibm24n01.xml [not validating:] FAILED:
|
ibm/not-wf/P24/ibm24n01.xml [not validating:] FAILED:
|
||||||
Argument X is not a REAL: :EOF
|
Argument X is not a REAL: :EOF
|
||||||
@ -1504,23 +1473,13 @@ ibm/not-wf/P28/ibm28n04.xml [not validating:] not-wf [validating:] not-wf
|
|||||||
ibm/not-wf/P28/ibm28n05.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P28/ibm28n05.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P28/ibm28n06.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P28/ibm28n06.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P28/ibm28n07.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P28/ibm28n07.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P28/ibm28n08.xml [not validating:] FAILED:
|
ibm/not-wf/P28/ibm28n08.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Tests doctypedecl with wrong opening sequence. The opening sequence
|
|
||||||
"(less than)?DOCTYPE" occurs in the DTD.
|
|
||||||
]
|
|
||||||
ibm/not-wf/p28a/ibm28an01.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/p28a/ibm28an01.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P29/ibm29n01.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P29/ibm29n01.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P29/ibm29n02.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P29/ibm29n02.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P29/ibm29n03.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P29/ibm29n03.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P29/ibm29n04.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P29/ibm29n04.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P29/ibm29n05.xml [not validating:] FAILED:
|
ibm/not-wf/P29/ibm29n05.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Tests WFC "PEs in Internal Subset". A PE reference occurs inside a PI in
|
|
||||||
the DTD.
|
|
||||||
]
|
|
||||||
ibm/not-wf/P29/ibm29n06.xml [not validating:] FAILED:
|
ibm/not-wf/P29/ibm29n06.xml [not validating:] FAILED:
|
||||||
The value :EOF is not of type NUMBER.
|
The value :EOF is not of type NUMBER.
|
||||||
[
|
[
|
||||||
@ -1903,19 +1862,8 @@ ibm/not-wf/P76/ibm76n06.xml [not validating:] not-wf [validating:] not-wf
|
|||||||
ibm/not-wf/P76/ibm76n07.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P76/ibm76n07.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P77/ibm77n01.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P77/ibm77n01.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P77/ibm77n02.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P77/ibm77n02.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P77/ibm77n03.xml [not validating:] FAILED:
|
ibm/not-wf/P77/ibm77n03.xml [not validating:] not-wf [validating:] not-wf
|
||||||
The value :EOF is not of type NUMBER.
|
ibm/not-wf/P77/ibm77n04.xml [not validating:] not-wf [validating:] not-wf
|
||||||
[
|
|
||||||
Tests TextDecl with wrong closing sequence. The character "greater
|
|
||||||
than" is used as the closing sequence in the TextDecl in the file
|
|
||||||
"ibm77n03.ent".
|
|
||||||
]
|
|
||||||
ibm/not-wf/P77/ibm77n04.xml [not validating:] FAILED:
|
|
||||||
The value :EOF is not of type NUMBER.
|
|
||||||
[
|
|
||||||
Tests TextDecl with a required field missing. The closing sequence
|
|
||||||
is missing in the TextDecl in the file "ibm77n04.ent".
|
|
||||||
]
|
|
||||||
ibm/not-wf/P78/ibm78n01.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P78/ibm78n01.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P78/ibm78n02.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P78/ibm78n02.xml [not validating:] not-wf [validating:] not-wf
|
||||||
ibm/not-wf/P79/ibm79n01.xml [not validating:] not-wf [validating:] not-wf
|
ibm/not-wf/P79/ibm79n01.xml [not validating:] not-wf [validating:] not-wf
|
||||||
@ -2424,4 +2372,4 @@ ibm/valid/P86/ibm86v01.xml [not validating:] input [validating:] input
|
|||||||
ibm/valid/P87/ibm87v01.xml [not validating:] input [validating:] input
|
ibm/valid/P87/ibm87v01.xml [not validating:] input [validating:] input
|
||||||
ibm/valid/P88/ibm88v01.xml [not validating:] input [validating:] input
|
ibm/valid/P88/ibm88v01.xml [not validating:] input [validating:] input
|
||||||
ibm/valid/P89/ibm89v01.xml [not validating:] input [validating:] input
|
ibm/valid/P89/ibm89v01.xml [not validating:] input [validating:] input
|
||||||
141/1786 tests failed; 376 tests were skipped
|
128/1786 tests failed; 376 tests were skipped
|
||||||
@ -647,14 +647,19 @@
|
|||||||
|
|
||||||
(defun validity-error (x &rest args)
|
(defun validity-error (x &rest args)
|
||||||
(error 'validity-error
|
(error 'validity-error
|
||||||
:format-control "Validity constraint violated: ~@?"
|
:format-control "Validity constraint violated: ~?"
|
||||||
:format-arguments (list x args)))
|
:format-arguments (list x args)))
|
||||||
|
|
||||||
(defun wf-error (x &rest args)
|
(defun wf-error (x &rest args)
|
||||||
(error 'well-formedness-violation
|
(error 'well-formedness-violation
|
||||||
:format-control "Well-formedness violated: ~@?"
|
:format-control "Well-formedness violated: ~?"
|
||||||
:format-arguments (list x args)))
|
:format-arguments (list x args)))
|
||||||
|
|
||||||
|
(defun eox (stream &optional x &rest args)
|
||||||
|
(error 'end-of-xstream
|
||||||
|
:format-control "End of file on ~A~@[: ~?~]"
|
||||||
|
:format-arguments (list stream x args)))
|
||||||
|
|
||||||
(defvar *validate* t)
|
(defvar *validate* t)
|
||||||
(defvar *markup-declaration-external-p* nil)
|
(defvar *markup-declaration-external-p* nil)
|
||||||
|
|
||||||
@ -1230,7 +1235,7 @@
|
|||||||
(defun read-token-after-|<| (zinput input)
|
(defun read-token-after-|<| (zinput input)
|
||||||
(let ((d (read-rune input)))
|
(let ((d (read-rune input)))
|
||||||
(cond ((eq d :eof)
|
(cond ((eq d :eof)
|
||||||
(wf-error "EOF after '<'"))
|
(eox input "EOF after '<'"))
|
||||||
((rune= #/! d)
|
((rune= #/! d)
|
||||||
(read-token-after-|<!| input))
|
(read-token-after-|<!| input))
|
||||||
((rune= #/? d)
|
((rune= #/? d)
|
||||||
@ -1259,7 +1264,7 @@
|
|||||||
(defun read-token-after-|<!| (input)
|
(defun read-token-after-|<!| (input)
|
||||||
(let ((d (read-rune input)))
|
(let ((d (read-rune input)))
|
||||||
(cond ((eq d :eof)
|
(cond ((eq d :eof)
|
||||||
(wf-error "EOF after \"<!\"."))
|
(eox input "EOF after \"<!\"."))
|
||||||
((name-start-rune-p d)
|
((name-start-rune-p d)
|
||||||
(unread-rune d input)
|
(unread-rune d input)
|
||||||
(let ((name (read-name-token input)))
|
(let ((name (read-name-token input)))
|
||||||
@ -1311,7 +1316,7 @@
|
|||||||
The initial #\\& is considered to be consumed already."
|
The initial #\\& is considered to be consumed already."
|
||||||
(let ((c (peek-rune input)))
|
(let ((c (peek-rune input)))
|
||||||
(cond ((eq c :eof)
|
(cond ((eq c :eof)
|
||||||
(wf-error "EOF after '&'"))
|
(eox input "EOF after '&'"))
|
||||||
((rune= c #/#)
|
((rune= c #/#)
|
||||||
(values :NUMERIC (read-numeric-entity input)))
|
(values :NUMERIC (read-numeric-entity input)))
|
||||||
(t
|
(t
|
||||||
@ -1411,7 +1416,7 @@
|
|||||||
(cond ((eql delim c)
|
(cond ((eql delim c)
|
||||||
(return))
|
(return))
|
||||||
((eq c :eof)
|
((eq c :eof)
|
||||||
(wf-error "EOF"))
|
(eox input "EOF"))
|
||||||
((rune= c #/&)
|
((rune= c #/&)
|
||||||
(setf c (peek-rune input))
|
(setf c (peek-rune input))
|
||||||
(cond ((rune= c #/#)
|
(cond ((rune= c #/#)
|
||||||
@ -1526,33 +1531,34 @@
|
|||||||
(wf-error "malformed processing instruction"))
|
(wf-error "malformed processing instruction"))
|
||||||
(values name "")))))
|
(values name "")))))
|
||||||
|
|
||||||
(defun read-pi-content (input &aux d)
|
(defun read-pi-content (input)
|
||||||
(read-S? input)
|
(read-S? input)
|
||||||
(with-rune-collector (collect)
|
(let (d)
|
||||||
(block nil
|
(with-rune-collector (collect)
|
||||||
(tagbody
|
(block nil
|
||||||
state-1
|
(tagbody
|
||||||
(setf d (read-rune input))
|
state-1
|
||||||
(unless d
|
(setf d (read-rune input))
|
||||||
(error 'end-of-xstream))
|
(when (eq d :eof)
|
||||||
(unless (data-rune-p d)
|
(eox input))
|
||||||
(wf-error "Illegal char: ~S." d))
|
(unless (data-rune-p d)
|
||||||
(when (rune= d #/?) (go state-2))
|
(wf-error "Illegal char: ~S." d))
|
||||||
(collect d)
|
(when (rune= d #/?) (go state-2))
|
||||||
(go state-1)
|
(collect d)
|
||||||
state-2 ;; #/? seen
|
(go state-1)
|
||||||
(setf d (read-rune input))
|
state-2 ;; #/? seen
|
||||||
(unless d
|
(setf d (read-rune input))
|
||||||
(error 'end-of-xstream))
|
(when (eq d :eof)
|
||||||
(unless (data-rune-p d)
|
(eox input))
|
||||||
(wf-error "Illegal char: ~S." d))
|
(unless (data-rune-p d)
|
||||||
(when (rune= d #/>) (return))
|
(wf-error "Illegal char: ~S." d))
|
||||||
(when (rune= d #/?)
|
(when (rune= d #/>) (return))
|
||||||
(collect #/?)
|
(when (rune= d #/?)
|
||||||
(go state-2))
|
(collect #/?)
|
||||||
(collect #/?)
|
(go state-2))
|
||||||
(collect d)
|
(collect #/?)
|
||||||
(go state-1)))))
|
(collect d)
|
||||||
|
(go state-1))))))
|
||||||
|
|
||||||
(defun read-comment-content (input &aux d)
|
(defun read-comment-content (input &aux d)
|
||||||
(with-rune-collector (collect)
|
(with-rune-collector (collect)
|
||||||
@ -1922,7 +1928,7 @@
|
|||||||
(loop
|
(loop
|
||||||
(let ((c (read-rune (car (zstream-input-stack input)))))
|
(let ((c (read-rune (car (zstream-input-stack input)))))
|
||||||
(cond ((eq c :eof)
|
(cond ((eq c :eof)
|
||||||
(wf-error "EOF in system literal."))
|
(eox input "EOF in system literal."))
|
||||||
((rune= c delim)
|
((rune= c delim)
|
||||||
(return))
|
(return))
|
||||||
(t
|
(t
|
||||||
@ -2275,7 +2281,7 @@
|
|||||||
((= level -1))
|
((= level -1))
|
||||||
(declare (type fixnum level))
|
(declare (type fixnum level))
|
||||||
(cond ((eq c1 :eof)
|
(cond ((eq c1 :eof)
|
||||||
(wf-error "EOF in <![IGNORE ... >")))
|
(eox input "EOF in <![IGNORE ... >")))
|
||||||
(cond ((and (rune= c3 #/<) (rune= c2 #/!) (rune= c1 #/\[))
|
(cond ((and (rune= c3 #/<) (rune= c2 #/!) (rune= c1 #/\[))
|
||||||
(incf level)))
|
(incf level)))
|
||||||
(cond ((and (rune= c3 #/\]) (rune= c2 #/\]) (rune= c1 #/>))
|
(cond ((and (rune= c3 #/\]) (rune= c2 #/\]) (rune= c1 #/>))
|
||||||
@ -3230,7 +3236,7 @@
|
|||||||
(loop
|
(loop
|
||||||
(let ((c (read-rune input)))
|
(let ((c (read-rune input)))
|
||||||
(cond ((eq c :eof)
|
(cond ((eq c :eof)
|
||||||
(wf-error "EOF"))
|
(eox input "EOF"))
|
||||||
((rune= c delim)
|
((rune= c delim)
|
||||||
(return))
|
(return))
|
||||||
((rune= c #/<)
|
((rune= c #/<)
|
||||||
|
|||||||
Reference in New Issue
Block a user