Commit 17975d7f authored by Chong Yidong's avatar Chong Yidong
Browse files

* xml.el (xml-escape-string): Don't refer to xml-entity-alist.

Fixes: debbugs:12228
parent d7191076
2012-08-19 Chong Yidong <cyd@gnu.org>
* xml.el (xml-escape-string): Don't refer to xml-entity-alist
(Bug#12228).
2012-08-18 Chong Yidong <cyd@gnu.org> 2012-08-18 Chong Yidong <cyd@gnu.org>
   
* simple.el (yank-handled-properties): New defcustom. * simple.el (yank-handled-properties): New defcustom.
......
...@@ -1011,13 +1011,25 @@ The first line is indented with the optional INDENT-STRING." ...@@ -1011,13 +1011,25 @@ The first line is indented with the optional INDENT-STRING."
(defalias 'xml-print 'xml-debug-print) (defalias 'xml-print 'xml-debug-print)
(defun xml-escape-string (string) (defun xml-escape-string (string)
"Return STRING with entity substitutions made from `xml-entity-alist'." "Convert STRING into a string containing valid XML character data.
(mapconcat (lambda (byte) Replace occurrences of &<>'\" in STRING with their default XML
(let ((char (char-to-string byte))) entity references (e.g. replace each & with &amp;).
(if (rassoc char xml-entity-alist)
(concat "&" (car (rassoc char xml-entity-alist)) ";") XML character data must not contain & or < characters, nor the >
char))) character under some circumstances. The XML spec does not impose
string "")) restriction on \" or ', but we just substitute for these too
\(as is permitted by the spec)."
(with-temp-buffer
(insert string)
(dolist (substitution '(("&" . "&amp;")
("<" . "&lt;")
(">" . "&gt;")
("'" . "&apos;")
("\"" . "&quot;")))
(goto-char (point-min))
(while (search-forward (car substitution) nil t)
(replace-match (cdr substitution) t t nil)))
(buffer-string)))
(defun xml-debug-print-internal (xml indent-string) (defun xml-debug-print-internal (xml indent-string)
"Outputs the XML tree in the current buffer. "Outputs the XML tree in the current buffer.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment