emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 17e540a: Simplify url-encode-url and add a test


From: Dmitry Gutov
Subject: [Emacs-diffs] master 17e540a: Simplify url-encode-url and add a test
Date: Tue, 9 May 2017 20:36:22 -0400 (EDT)

branch: master
commit 17e540aa428c5392f7a9b4c1f7495bac8a8fe5da
Author: Dmitry Gutov <address@hidden>
Commit: Dmitry Gutov <address@hidden>

    Simplify url-encode-url and add a test
    
    * lisp/url/url-util.el (url-encode-url): Simplify.
    url-generic-parse-url copes with multibyte strings just fine
    (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24117#185).
    
    * test/lisp/url/url-parse-tests.el
    (url-generic-parse-url/multibyte-host-and-path): New test.
---
 lisp/url/url-util.el             | 11 +----------
 test/lisp/url/url-parse-tests.el |  5 +++++
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 46d2d8c..9897dea 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -450,13 +450,10 @@ This function also performs URI normalization, e.g. 
converting
 the scheme to lowercase if it is uppercase.  Apart from
 normalization, if URL is already URI-encoded, this function
 should return it unchanged."
-  (if (multibyte-string-p url)
-      (setq url (encode-coding-string url 'utf-8)))
   (let* ((obj  (url-generic-parse-url url))
         (user (url-user obj))
         (pass (url-password obj))
-        (host (url-host obj))
-        (path-and-query (url-path-and-query obj))
+         (path-and-query (url-path-and-query obj))
         (path  (car path-and-query))
         (query (cdr path-and-query))
         (frag (url-target obj)))
@@ -464,12 +461,6 @@ should return it unchanged."
        (setf (url-user obj) (url-hexify-string user)))
     (if pass
        (setf (url-password obj) (url-hexify-string pass)))
-    ;; No special encoding for IPv6 literals.
-    (and host
-        (not (string-match "\\`\\[.*\\]\\'" host))
-        (setf (url-host obj)
-               (decode-coding-string (url-host obj) 'utf-8)))
-
     (if path
        (setq path (url-hexify-string path url-path-allowed-chars)))
     (if query
diff --git a/test/lisp/url/url-parse-tests.el b/test/lisp/url/url-parse-tests.el
index 05da728..fd8abb0 100644
--- a/test/lisp/url/url-parse-tests.el
+++ b/test/lisp/url/url-parse-tests.el
@@ -162,6 +162,11 @@
   (should (equal (url-generic-parse-url "#") (url-parse-make-urlobj nil nil 
nil nil nil "" "" nil nil)))
   (should (equal (url-generic-parse-url "#foo") (url-parse-make-urlobj nil nil 
nil nil nil "" "foo" nil nil))))
 
+(ert-deftest url-generic-parse-url/multibyte-host-and-path ()
+  (should (equal (url-generic-parse-url "http://банки.рф/фыва/";)
+                 (url-parse-make-urlobj "http" nil nil "банки.рф" nil
+                                        "/фыва/" nil nil t))))
+
 (provide 'url-parse-tests)
 
 ;;; url-parse-tests.el ends here



reply via email to

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