From: Lars Ingebrigtsen Date: Mon, 28 Dec 2015 17:47:51 +0000 (+0100) Subject: IDNA speed up X-Git-Tag: emacs-26.0.90~2838 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=91ef47353d423acbeeace443984f0ac097f1b2a0;p=emacs.git IDNA speed up * puny.el (puny-encode-domain): Make the common non-IDNA case faster --- diff --git a/lisp/net/puny.el b/lisp/net/puny.el index 5874871a90d..389a6dc2700 100644 --- a/lisp/net/puny.el +++ b/lisp/net/puny.el @@ -32,7 +32,11 @@ (defun puny-encode-domain (domain) "Encode DOMAIN according to the IDNA/punycode algorith. For instance, \"fśf.org\" => \"xn--ff-2sa.org\"." - (mapconcat 'puny-encode-string (split-string domain "[.]") ".")) + ;; The vast majority of domain names are not IDNA domain names, so + ;; add a check first to avoid doing unnecessary work. + (if (string-match "\\'[[:ascii:]]*\\'" domain) + domain + (mapconcat 'puny-encode-string (split-string domain "[.]") "."))) (defun puny-encode-string (string) "Encode STRING according to the IDNA/punycode algorithm.