X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/093571c374d671607c822dd2e5bedb2ac877ea91..c80c6166fbc20ffde6a2b407507226cac37cd9c4:/lisp/dnd.el diff --git a/lisp/dnd.el b/lisp/dnd.el index 3be1402f9e..cbbef38443 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el @@ -1,17 +1,19 @@ -;;; dnd.el --- drag and drop support. +;;; dnd.el --- drag and drop support. -*- coding: utf-8 -*- -;; Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 +;; Free Software Foundation, Inc. -;; Author: Jan Dj,Ad(Brv +;; Author: Jan Djärv ;; Maintainer: FSF ;; Keywords: window, drag, drop +;; Package: emacs ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -19,9 +21,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -37,10 +37,10 @@ ;;;###autoload (defcustom dnd-protocol-alist - '(("^file:///" . dnd-open-local-file) ; XDND format. - ("^file://" . dnd-open-file) ; URL with host - ("^file:" . dnd-open-local-file) ; Old KDE, Motif, Sun - ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file) + `((,(purecopy "^file:///") . dnd-open-local-file) ; XDND format. + (,(purecopy "^file://") . dnd-open-file) ; URL with host + (,(purecopy "^file:") . dnd-open-local-file) ; Old KDE, Motif, Sun + (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file) ) "The functions to call for different protocols when a drop is made. @@ -155,10 +155,11 @@ Return nil if URI is not a local file." (let* ((decoded-f (decode-coding-string f (or file-name-coding-system - default-file-name-coding-system))) - (try-f (if (file-readable-p decoded-f) decoded-f f))) - (when (file-readable-p try-f) try-f))))) - + default-file-name-coding-system)))) + (setq f (cond ((file-readable-p decoded-f) decoded-f) + ((file-readable-p f) f) + (t nil))))) + f)) (defun dnd-open-local-file (uri action) "Open a local file.