emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 50b93f4 1/2: Use puny.el instead of idna.el functio


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 50b93f4 1/2: Use puny.el instead of idna.el functions in Gnus
Date: Sun, 17 Apr 2016 17:30:55 +0000

branch: master
commit 50b93f40d0d41ded6b9c0ee83574e828c869f62c
Author: Lars Magne Ingebrigtsen <address@hidden>
Commit: Lars Magne Ingebrigtsen <address@hidden>

    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.
---
 lisp/gnus/gnus-art.el |   19 ++++---------------
 lisp/gnus/gnus-sum.el |   31 ++++++++++---------------------
 2 files changed, 14 insertions(+), 36 deletions(-)

diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 94ebbdd..dea8d1f 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 6b3add2..67b4268 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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]