summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2016-04-17 19:29:58 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2016-04-17 19:29:58 +0200
commit50b93f40d0d41ded6b9c0ee83574e828c869f62c (patch)
treeee3014346c8df661843e1caf207e60f8d6ff5bc3
parentc5dfaae30f1f7a9256e49d26ec5e69be608c8182 (diff)
downloademacs-50b93f40d0d41ded6b9c0ee83574e828c869f62c.tar.gz
emacs-50b93f40d0d41ded6b9c0ee83574e828c869f62c.tar.bz2
emacs-50b93f40d0d41ded6b9c0ee83574e828c869f62c.zip
Use puny.el instead of idna.el functions in Gnus
* lisp/gnus/gnus-art.el (gnus-use-idna): Default to t (since Emacs comes with IDNA support built in). (article-decode-idna-rhs): Use `puny-decode-domain' instead of `idna-to-unicode'. * lisp/gnus/gnus-sum.el (gnus-summary-idna-message): Ditto.
-rw-r--r--lisp/gnus/gnus-art.el19
-rw-r--r--lisp/gnus/gnus-sum.el31
2 files changed, 14 insertions, 36 deletions
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 94ebbdd60c7..dea8d1f5c9f 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1610,18 +1610,9 @@ It is a string, such as \"PGP\". If nil, ask user."
:type 'string
:group 'mime-security)
-(defvar idna-program)
-
-(defcustom gnus-use-idna (and (mm-coding-system-p 'utf-8)
- (condition-case nil
- (require 'idna)
- (file-error)
- (invalid-operation))
- idna-program
- (executable-find idna-program))
- "Whether IDNA decoding of headers is used when viewing messages.
-This requires GNU Libidn, and by default only enabled if it is found."
- :version "22.1"
+(defcustom gnus-use-idna t
+ "Whether IDNA decoding of headers is used when viewing messages."
+ :version "25.2"
:group 'gnus-article-headers
:type 'boolean)
@@ -2591,8 +2582,6 @@ If PROMPT (the prefix), prompt for a coding system to use."
t t nil 1))
(goto-char (point-min)))))))
-(autoload 'idna-to-unicode "idna")
-
(defun article-decode-idna-rhs ()
"Decode IDNA strings in RHS in various headers in current buffer.
The following headers are decoded: From:, To:, Cc:, Reply-To:,
@@ -2610,7 +2599,7 @@ Mail-Reply-To: and Mail-Followup-To:."
(save-excursion
(and (re-search-backward "^[^ \t]" nil t)
(looking-at "From\\|To\\|Cc\\|Reply-To\\|Mail-Reply-To\\|Mail-Followup-To")))
- (setq unicode (idna-to-unicode ace))))
+ (setq unicode (puny-decode-domain ace))))
(unless (string= ace unicode)
(replace-match unicode nil nil nil 1)))))))))
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 6b3add2cddf..67b4268dbd9 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -9807,8 +9807,6 @@ prefix specifies how many places to rotate each letter forward."
;; Create buttons and stuff...
(gnus-treat-article nil))
-(declare-function idna-to-unicode "ext:idna" (str))
-
(defun gnus-summary-idna-message (&optional arg)
"Decode IDNA encoded domain names in the current articles.
IDNA encoded domain names looks like `xn--bar'. If a string
@@ -9818,25 +9816,16 @@ invalid IDNA string (`xn--bar' is invalid).
You must have GNU Libidn (URL `http://www.gnu.org/software/libidn/')
installed for this command to work."
(interactive "P")
- (if (not (and (mm-coding-system-p 'utf-8)
- (condition-case nil
- (require 'idna)
- (file-error)
- (invalid-operation))
- (symbol-value 'idna-program)
- (executable-find (symbol-value 'idna-program))))
- (gnus-message
- 5 "GNU Libidn not installed properly (`idn' or `idna.el' missing)")
- (gnus-summary-select-article)
- (let ((mail-header-separator ""))
- (gnus-eval-in-buffer-window gnus-article-buffer
- (save-restriction
- (widen)
- (let ((start (window-start))
- buffer-read-only)
- (while (re-search-forward "\\(xn--[-0-9a-z]+\\)" nil t)
- (replace-match (idna-to-unicode (match-string 1))))
- (set-window-start (get-buffer-window (current-buffer)) start)))))))
+ (gnus-summary-select-article)
+ (let ((mail-header-separator ""))
+ (gnus-eval-in-buffer-window gnus-article-buffer
+ (save-restriction
+ (widen)
+ (let ((start (window-start))
+ buffer-read-only)
+ (while (re-search-forward "\\(xn--[-0-9a-z]+\\)" nil t)
+ (replace-match (puny-decode-domain (match-string 1))))
+ (set-window-start (get-buffer-window (current-buffer)) start))))))
(defun gnus-summary-morse-message (&optional arg)
"Morse decode the current article."