X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/06d8ace51597cd41e110560a56a1abeb6cce23d6..bc81e2c4e885787603da3e0314d6ea45a43f7862:/lisp/xml.el diff --git a/lisp/xml.el b/lisp/xml.el index a33d44dc6c..52bb0de7ea 100644 --- a/lisp/xml.el +++ b/lisp/xml.el @@ -1,7 +1,6 @@ ;;; xml.el --- XML parser -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +;; Copyright (C) 2000-2011 Free Software Foundation, Inc. ;; Author: Emmanuel Briot ;; Maintainer: Mark A. Hershberger @@ -189,7 +188,7 @@ If PARSE-NS is non-nil, then QNAMES are expanded." (name-chars (concat "-[:digit:]." start-chars)) ;;[3] S ::= (#x20 | #x9 | #xD | #xA)+ (whitespace "[ \t\n\r]")) - ;;[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] + ;;[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] ;; | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] ;; | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] ;; | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] @@ -227,7 +226,7 @@ If PARSE-NS is non-nil, then QNAMES are expanded." (defvar xml-notation-type-re (concat "\\(?:NOTATION" whitespace "(" whitespace "*" xml-name-re "\\(?:" whitespace "*|" whitespace "*" xml-name-re "\\)*" whitespace "*)\\)")) ;;[59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' [VC: Enumeration] [VC: No Duplicate Tokens] - (defvar xml-enumeration-re (concat "\\(?:(" whitespace "*" xml-nmtoken-re + (defvar xml-enumeration-re (concat "\\(?:(" whitespace "*" xml-nmtoken-re "\\(?:" whitespace "*|" whitespace "*" xml-nmtoken-re "\\)*" whitespace ")\\)")) ;;[57] EnumeratedType ::= NotationType | Enumeration @@ -248,7 +247,7 @@ If PARSE-NS is non-nil, then QNAMES are expanded." xml-pe-reference-re "\\|" xml-reference-re "\\)*'\\)"))) ;;[75] ExternalID ::= 'SYSTEM' S SystemLiteral ;; | 'PUBLIC' S PubidLiteral S SystemLiteral -;;[76] NDataDecl ::= S 'NDATA' S +;;[76] NDataDecl ::= S 'NDATA' S ;;[73] EntityDef ::= EntityValue| (ExternalID NDataDecl?) ;;[71] GEDecl ::= '' ;;[74] PEDef ::= EntityValue | ExternalID @@ -434,7 +433,7 @@ Returns one of: (let* ((node-name (match-string-no-properties 1)) ;; Parse the attribute list. (attrs (xml-parse-attlist xml-ns)) - children pos) + children) ;; add the xmlns:* attrs to our cache (when (consp xml-ns) @@ -537,8 +536,7 @@ Leave point at the first non-blank character after the tag." ;; Multiple whitespace characters should be replaced with a single one ;; in the attributes - (let ((string (match-string-no-properties 1)) - (pos 0)) + (let ((string (match-string-no-properties 1))) (replace-regexp-in-string "\\s-\\{2,\\}" " " string) (let ((expansion (xml-substitute-special string))) (unless (stringp expansion) @@ -635,7 +633,7 @@ This follows the rule [28] in the XML specifications." ((string-match "^%[^;]+;[ \t\n\r]*$" type) ;; substitution nil) (t - (if xml-validating-parser + (if xml-validating-parser (error "XML: (Validity) Invalid element type in the DTD")))) ;; rule [45]: the element declaration must be unique @@ -667,7 +665,7 @@ This follows the rule [28] in the XML specifications." (goto-char (match-end 0)) (setq xml-entity-alist (append xml-entity-alist - (list (cons name + (list (cons name (with-temp-buffer (insert value) (goto-char (point-min)) @@ -770,7 +768,7 @@ This follows the rule [28] in the XML specifications." (let* ((this-part (match-string-no-properties 1 string)) (prev-part (substring string point (match-beginning 0))) (entity (assoc this-part xml-entity-alist)) - (expansion + (expansion (cond ((string-match "#\\([0-9]+\\)" this-part) (let ((c (decode-char 'ucs