From: Lars Magne Ingebrigtsen Date: Sun, 29 Aug 2010 20:16:03 +0000 (+0200) Subject: Also decode entities like ㈒ X-Git-Url: http://cgit.sxemacs.org/?a=commitdiff_plain;h=6b707a4024ce4927fa10e947bd2e05b179a680d8;p=gnus Also decode entities like ㈒ --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a230e2cfe..b58b5bd69 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2010-08-29 Lars Magne Ingebrigtsen + + * mm-url.el (mm-url-decode-entities): Also decode entities like + ㈒. + 2009-07-16 Kevin Ryde (tiny change) * gnus-sum.el (gnus-summary-idna-message): diff --git a/lisp/mm-url.el b/lisp/mm-url.el index c963bdae0..0e7a2586a 100644 --- a/lisp/mm-url.el +++ b/lisp/mm-url.el @@ -365,15 +365,20 @@ If FOLLOW-REFRESH is non-nil, redirect refresh url in META." (defun mm-url-decode-entities () "Decode all HTML entities." (goto-char (point-min)) - (while (re-search-forward "&\\(#[0-9]+\\|[a-z]+[0-9]*\\);" nil t) - (let ((elem (if (eq (aref (match-string 1) 0) ?\#) - (let ((c (mm-ucs-to-char - (string-to-number - (substring (match-string 1) 1))))) - (if (mm-char-or-char-int-p c) c ?#)) - (or (cdr (assq (intern (match-string 1)) - mm-url-html-entities)) - ?#)))) + (while (re-search-forward "&\\(#x?[0-9]+\\|[a-z]+[0-9]*\\);" nil t) + (let* ((entity (match-string 1)) + (elem (if (eq (aref entity 0) ?\#) + (let ((c (mm-ucs-to-char + ;; Hex number: ㈒ + (if (eq (aref entity 1) ?x) + (string-to-number (substring entity 2) + 16) + ;; Decimal number:  + (string-to-number (substring entity 1)))))) + (if (mm-char-or-char-int-p c) c ?#)) + (or (cdr (assq (intern entity) + mm-url-html-entities)) + ?#)))) (unless (stringp elem) (setq elem (char-to-string elem))) (replace-match elem t t))))