emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/url/url-util.el,v


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/url/url-util.el,v
Date: Mon, 31 Jul 2006 21:36:43 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        06/07/31 21:36:43

Index: url-util.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/url/url-util.el,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- url-util.el 30 Jul 2006 20:19:36 -0000      1.13
+++ url-util.el 31 Jul 2006 21:36:42 -0000      1.14
@@ -163,7 +163,7 @@
 (defun url-normalize-url (url)
   "Return a 'normalized' version of URL.
 Strips out default port numbers, etc."
-  (let (type data grok retval)
+  (let (type data retval)
     (setq data (url-generic-parse-url url)
          type (url-type data))
     (if (member type '("www" "about" "mailto" "info"))
@@ -358,11 +358,24 @@
 character in the utf-8 string, those found in `url-unreserved-chars'
 are left as-is, all others are represented as a three-character
 string: \"%\" followed by two lowercase hex digits."
-  (mapconcat (lambda (char)
-               (if (memq char url-unreserved-chars)
-                   (char-to-string char)
-                 (format "%%%02x" char)))
-             (encode-coding-string string 'utf-8 t)
+  ;; To go faster and avoid a lot of consing, we could do:
+  ;; 
+  ;; (defconst url-hexify-table
+  ;;   (let ((map (make-vector 256 nil)))
+  ;;     (dotimes (byte 256) (aset map byte
+  ;;                               (if (memq byte url-unreserved-chars)
+  ;;                                   (char-to-string byte)
+  ;;                                 (format "%%%02x" byte))))
+  ;;     map))
+  ;;
+  ;; (mapconcat (curry 'aref url-hexify-table) ...)
+  (mapconcat (lambda (byte)
+               (if (memq byte url-unreserved-chars)
+                   (char-to-string byte)
+                 (format "%%%02x" byte)))
+             (if (multibyte-string-p string)
+                 (encode-coding-string string 'utf-8)
+               string)
              ""))
 
 ;;;###autoload
@@ -390,7 +403,6 @@
 WIDTH defaults to the current frame width."
   (let* ((fr-width (or width (frame-width)))
         (str-width (length url))
-        (tail (file-name-nondirectory url))
         (fname nil)
         (modified 0)
         (urlobj nil))
@@ -398,8 +410,7 @@
     (if (and (>= str-width fr-width)
             (string-match "?" url))
        (setq url (concat (substring url 0 (match-beginning 0)) "?...")
-             str-width (length url)
-             tail (file-name-nondirectory url)))
+             str-width (length url)))
     (if (< str-width fr-width)
        nil                             ; Hey, we are done!
       (setq urlobj (url-generic-parse-url url)




reply via email to

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