Function: xmltok-normalize-attribute
xmltok-normalize-attribute is a byte-compiled function defined in
xmltok.el.gz.
Signature
(xmltok-normalize-attribute ATT)
Source Code
;; Defined in /usr/src/emacs/lisp/nxml/xmltok.el.gz
(defun xmltok-normalize-attribute (att)
(let ((end (xmltok-attribute-value-end att))
(well-formed t)
(value-parts nil)
(refs nil))
(save-excursion
(goto-char (xmltok-attribute-value-start att))
(while (progn
(let ((n (skip-chars-forward "^\r\t\n&" end)))
(when (> n 0)
(setq value-parts
(cons (buffer-substring-no-properties (- (point) n)
(point))
value-parts))))
(when (< (point) end)
(goto-char (1+ (point)))
(cond ((eq (char-before) ?\&)
(let ((xmltok-start (1- (point)))
xmltok-type xmltok-replacement)
(xmltok-scan-after-amp
(lambda (start end)
(xmltok-handle-entity start end t)))
(cond ((or (eq xmltok-type 'char-ref)
(eq xmltok-type 'entity-ref))
(setq refs
(cons (vector xmltok-type
xmltok-start
(point))
refs))
(if xmltok-replacement
(setq value-parts
(cons xmltok-replacement
value-parts))
(setq well-formed nil)))
(t (setq well-formed nil)))))
(t (setq value-parts
(cons " " value-parts)))))
(< (point) end))))
(when well-formed
(aset att 5 (apply #'concat (nreverse value-parts))))
(aset att 6 (nreverse refs))))