]> gitweb.fperrin.net Git - atom.el.git/blobdiff - atom.el
Use hex notation for entities
[atom.el.git] / atom.el
diff --git a/atom.el b/atom.el
index d19bb3c82edc1e5cc06b0b957fff662f54ca42fd..c4224b85680ae273b942936da6236319ce99bd89 100644 (file)
--- a/atom.el
+++ b/atom.el
@@ -123,7 +123,7 @@ probably not a very good default.
 ID defaults to LINK, which is not optimal; see `atom-generate-id'
 for a way to create good identifiers. For a given entry, it must
 not change between successive generations of the atom feed, even
-when the content of the entry ."
+when the content of the entry changes."
   (let ((entry (list (list 'title nil title))))
     (atom-modify-entry entry 'link  (list (list (cons 'href link))))
     (atom-modify-entry entry 'id (or id link))
@@ -172,7 +172,7 @@ are no longer relative to LINK."
   "Writes the feed ATOM to FILENAME."
   (with-temp-buffer
     (atom-print atom)
-    (write-region (point-min) (point-max) filename)))
+    (write-file filename)))
 
 \f
 (defun atom-to-rss (atom)
@@ -246,7 +246,7 @@ format used by RSS."
   "Saves ATOM as a RSS feed into FILENAME."
   (with-temp-buffer
     (atom-print-as-rss atom)
-    (write-region nil nil filename)))
+    (write-file filename)))
 
 \f
 (defvar atom-time-format-string "%Y-%m-%dT%T%z"
@@ -276,14 +276,17 @@ Atom feed. CONTENT must be a string."
 
 (defun atom-string-to-xml (string)
   "Convert STRING into a Lisp structure as used by `xml.el'."
-  (with-temp-buffer
-    (insert "<div xmlns=\"" atom-xhtml-namespace "\">")
-    (insert string)
-    (insert "</div>")
-    ;; `xml-parse-region' doesn't require that the XML parsed be enclosed in a
-    ;; root node, and accordingly, returns a list of elements. We are only
-    ;; interested in the first one, the DIV we just inserted.
-    (car (xml-parse-region (point-min) (point-max)))))
+  (require 'xml-xhtml-entities)
+  (let ((xml-entity-alist xml-xhtml-entities)
+       (xml-validating-parser t))
+    (with-temp-buffer
+      (insert "<div xmlns=\"" atom-xhtml-namespace "\">")
+      (insert string)
+      (insert "</div>")
+      ;; `xml-parse-region' returns a list of elements, even though it
+      ;; requires an only root node. We are only interested in the first
+      ;; one, the DIV we just inserted.
+      (car (xml-parse-region (point-min) (point-max))))))
 
 (defun atom-massage-xhtml (content)
   "Massage CONTENT so it can be used as an XHTML fragment in an