]> git.eshelyaron.com Git - emacs.git/commitdiff
Transform non-restrictive domains to punycode for display
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 30 Dec 2015 08:59:30 +0000 (09:59 +0100)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 30 Dec 2015 08:59:30 +0000 (09:59 +0100)
* lisp/net/eww.el (eww): Check whether the domain is Highly
Restrictive in the Unicode IDNA sense.

lisp/net/eww.el

index 7ec58f1502807eabe6f8d244be25268ce3ef5310..88dfb0214b9e659eb937c4aafa44a36eb56156bd 100644 (file)
@@ -275,6 +275,13 @@ word(s) will be searched for via `eww-search-prefix'."
            (setq url (concat eww-search-prefix
                              (replace-regexp-in-string " " "+" url))))))
   (eww-setup-buffer)
+  ;; Check whether the domain only uses "Highly Restricted" Unicode
+  ;; IDNA characters.  If not, transform to punycode to indicate that
+  ;; there may be funny business going on.
+  (let ((parsed (url-generic-parse-url url)))
+    (unless (puny-highly-restrictive-p (url-host parsed))
+      (setf (url-host parsed) (puny-encode-domain (url-host parsed)))
+      (setq url (url-recreate-url parsed))))
   (plist-put eww-data :url url)
   (plist-put eww-data :title "")
   (eww-update-header-line-format)