summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Jasper <ulf.jasper@web.de>2009-12-06 18:13:19 +0000
committerUlf Jasper <ulf.jasper@web.de>2009-12-06 18:13:19 +0000
commit26086d8fe9967b4a6c97ff1d45c20073e93ba067 (patch)
treef7f24b934610b5a806613cbd12bacd937904a714
parent488cee9ce63fe61af6b615fae3551692ad8f55f9 (diff)
downloademacs-26086d8fe9967b4a6c97ff1d45c20073e93ba067.tar.gz
Fixed Bug#5008.
-rw-r--r--lisp/ChangeLog12
-rw-r--r--lisp/net/newst-backend.el32
-rw-r--r--lisp/xml.el19
3 files changed, 38 insertions, 25 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ee911307513..987add01f62 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,15 @@
+2009-12-06 Ulf Jasper <ulf.jasper@web.de>
+
+ * xml.el (xml-substitute-numeric-entities): Moved
+ newsticker--decode-numeric-entities in newst-backend.el to
+ xml-substitute-numeric-entities in xml.el. (Bug#5008)
+
+ * net/newst-backend.el (newsticker--parse-generic-feed)
+ (newsticker--parse-generic-items)
+ (newsticker--decode-numeric-entities): Moved
+ newsticker--decode-numeric-entities in newst-backend.el to
+ xml-substitute-numeric-entities in xml.el. (Bug#5008)
+
2009-12-06 Daniel Colascione <dan.colascione@gmail.com>
* progmodes/js.el (js--js-not): Add null to the list of values.
diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
index 24c4c89fb84..ae028516fb8 100644
--- a/lisp/net/newst-backend.el
+++ b/lisp/net/newst-backend.el
@@ -7,7 +7,7 @@
;; Filename: newst-backend.el
;; URL: http://www.nongnu.org/newsticker
;; Keywords: News, RSS, Atom
-;; Time-stamp: "4. Dezember 2009, 20:08:17 (ulf)"
+;; Time-stamp: "5. Dezember 2009, 13:21:27 (ulf)"
;; ======================================================================
@@ -1408,9 +1408,9 @@ description, link, and extra elements resp."
(position 0)
(something-was-added nil))
;; decode numeric entities
- (setq title (newsticker--decode-numeric-entities title))
- (setq desc (newsticker--decode-numeric-entities desc))
- (setq link (newsticker--decode-numeric-entities link))
+ (setq title (xml-substitute-numeric-entities title))
+ (setq desc (xml-substitute-numeric-entities desc))
+ (setq link (xml-substitute-numeric-entities link))
;; remove whitespace from title, desc, and link
(setq title (newsticker--remove-whitespace title))
(setq desc (newsticker--remove-whitespace desc))
@@ -1462,10 +1462,10 @@ argument, which is one of the items in ITEMLIST."
(when (or (> (length title) 0)
(> (length desc) 0))
;; decode numeric entities
- (setq title (newsticker--decode-numeric-entities title))
+ (setq title (xml-substitute-numeric-entities title))
(when desc
- (setq desc (newsticker--decode-numeric-entities desc)))
- (setq link (newsticker--decode-numeric-entities link))
+ (setq desc (xml-substitute-numeric-entities desc)))
+ (setq link (xml-substitute-numeric-entities link))
;; remove whitespace from title, desc, and link
(setq title (newsticker--remove-whitespace title))
(setq desc (newsticker--remove-whitespace desc))
@@ -1517,24 +1517,6 @@ argument, which is one of the items in ITEMLIST."
;; ======================================================================
;;; Misc
;; ======================================================================
-(defun newsticker--decode-numeric-entities (string)
- "Decode SGML numeric entities by their respective utf characters.
-This function replaces numeric entities in the input STRING and
-returns the modified string. For example \"&#42;\" gets replaced
-by \"*\"."
- (if (and string (stringp string))
- (let ((start 0))
- (while (string-match "&#\\([0-9]+\\);" string start)
- (condition-case nil
- (setq string (replace-match
- (string (read (substring string
- (match-beginning 1)
- (match-end 1))))
- nil nil string))
- (error nil))
- (setq start (1+ (match-beginning 0))))
- string)
- nil))
(defun newsticker--remove-whitespace (string)
"Remove leading and trailing whitespace from STRING."
diff --git a/lisp/xml.el b/lisp/xml.el
index e86232d5718..ac96286fdec 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -823,6 +823,25 @@ This follows the rule [28] in the XML specifications."
"")
(substring string point))))))
+(defun xml-substitute-numeric-entities (string)
+ "Substitute SGML numeric entities by their respective utf characters.
+This function replaces numeric entities in the input STRING and
+returns the modified string. For example \"&#42;\" gets replaced
+by \"*\"."
+ (if (and string (stringp string))
+ (let ((start 0))
+ (while (string-match "&#\\([0-9]+\\);" string start)
+ (condition-case nil
+ (setq string (replace-match
+ (string (read (substring string
+ (match-beginning 1)
+ (match-end 1))))
+ nil nil string))
+ (error nil))
+ (setq start (1+ (match-beginning 0))))
+ string)
+ nil))
+
;;*******************************************************************
;;**
;;** Printing a tree.