Mercurial > emacs
changeset 70760:eca94c558ceb
(dnd-handle-one-url): Change 3rd arg ARG to URL. Don't unescape URL.
(dnd-get-local-file-name): Unescape URL on conversion to file name.
Specify LITERAL in replace-regexp-in-string.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Sat, 20 May 2006 04:28:48 +0000 |
parents | 0ede170bfc73 |
children | b1742b0066f2 |
files | lisp/dnd.el |
diffstat | 1 files changed, 13 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/dnd.el Sat May 20 02:28:50 2006 +0000 +++ b/lisp/dnd.el Sat May 20 04:28:48 2006 +0000 @@ -69,39 +69,34 @@ ;; Functions -(defun dnd-handle-one-url (window action arg) +(defun dnd-handle-one-url (window action url) "Handle one dropped url by calling the appropriate handler. The handler is first located by looking at `dnd-protocol-alist'. If no match is found here, and the value of `browse-url-browser-function' is a pair of (REGEXP . FUNCTION), those regexps are tried for a match. If no match is found, just call `dnd-insert-text'. WINDOW is where the drop happend, ACTION is the action for the drop, -ARG is the URL that has been dropped. +URL is what has been dropped. Returns ACTION." (require 'browse-url) - (let* ((uri (replace-regexp-in-string - "%[A-Z0-9][A-Z0-9]" - (lambda (arg) - (format "%c" (string-to-number (substring arg 1) 16))) - arg)) - ret) + (let (ret) (or (catch 'done (dolist (bf dnd-protocol-alist) - (when (string-match (car bf) uri) - (setq ret (funcall (cdr bf) uri action)) + (when (string-match (car bf) url) + (setq ret (funcall (cdr bf) url action)) (throw 'done t))) nil) (when (not (functionp browse-url-browser-function)) (catch 'done (dolist (bf browse-url-browser-function) - (when (string-match (car bf) uri) + (when (string-match (car bf) url) (setq ret 'private) - (funcall (cdr bf) uri action) + (funcall (cdr bf) url action) (throw 'done t))) nil)) (progn - (dnd-insert-text window action uri) + (dnd-insert-text window action url) (setq ret 'private))) ret)) @@ -134,6 +129,11 @@ ((string-match "^file:" uri) ; Old KDE, Motif, Sun (substring uri (match-end 0)))))) (when (and f must-exist) + (setq f (replace-regexp-in-string + "%[A-Z0-9][A-Z0-9]" + (lambda (arg) + (format "%c" (string-to-number (substring arg 1) 16))) + f nil t)) (let* ((decoded-f (decode-coding-string f (or file-name-coding-system