X-Git-Url: http://gitweb.fperrin.net/?p=atom.el.git;a=blobdiff_plain;f=atom.el;h=c4224b85680ae273b942936da6236319ce99bd89;hp=d19bb3c82edc1e5cc06b0b957fff662f54ca42fd;hb=ed7d99f83fafe4f60eac3d5416212e6c9af010af;hpb=4da2ee38a39546325169b6e1ec259b26e2cdf205 diff --git a/atom.el b/atom.el index d19bb3c..c4224b8 100644 --- 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))) (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))) (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 "
") - (insert string) - (insert "
") - ;; `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 "
") + (insert string) + (insert "
") + ;; `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