]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve handling of remote files during drag-and-drop
authorPo Lu <luangruo@yahoo.com>
Mon, 6 Jun 2022 11:05:36 +0000 (19:05 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 6 Jun 2022 11:07:07 +0000 (19:07 +0800)
* lisp/dnd.el (dnd-begin-drag-files): Don't fail if one remote
file couldn't be downloaded.

lisp/dnd.el

index 14d80ac6c57b59b7d0da621dc339a56f4da3a855..0f65b5228d6afcef2f202de403afb30ca178f74c 100644 (file)
@@ -469,9 +469,16 @@ FILES will be dragged."
       (when (file-remote-p (car tem))
         (when (eq action 'link)
           (error "Cannot create symbolic link to remote file"))
-        (setcar tem (file-local-copy (car tem)))
-        (push (car tem) dnd-last-dragged-remote-file))
+        (condition-case error
+            (progn (setcar tem (file-local-copy (car tem)))
+                   (push (car tem) dnd-last-dragged-remote-file))
+          (error (message "Failed to download file: %s" error)
+                 (setcar tem nil))))
       (setq tem (cdr tem)))
+    ;; Remove any files that failed to download from a remote host.
+    (setq new-files (delq nil new-files))
+    (unless new-files
+      (error "No files were specified or no remote file could be downloaded"))
     (unless action
       (setq action 'copy))
     (gui-set-selection 'XdndSelection