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.
This commit is contained in:
parent
c5dfaae30f
commit
50b93f40d0
2 changed files with 14 additions and 36 deletions
|
@ -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)))))))))
|
||||
|
||||
|
|
|
@ -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,15 +9816,6 @@ 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
|
||||
|
@ -9835,8 +9824,8 @@ installed for this command to work."
|
|||
(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)))))))
|
||||
(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."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue