]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp-sh.el (tramp-do-copy-or-rename-file-via-buffer): Don't use
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 4 Nov 2014 09:02:56 +0000 (10:02 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 4 Nov 2014 09:02:56 +0000 (10:02 +0100)
a local copy; setting `inhibit-file-name-handlers' proper might be
more performant.

Fixes: debbugs:18751
lisp/ChangeLog
lisp/net/tramp-sh.el

index d0d61da52f4504227fb06086bc8301e1fb7cbe1b..12a140d445d3170664289c963e78450aa20ce968 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-04  Michael Albinus  <michael.albinus@gmx.de>
+
+        * net/tramp-sh.el (tramp-do-copy-or-rename-file-via-buffer): Don't use
+        a local copy; setting `inhibit-file-name-handlers' proper might be
+        more performant.  (Bug#18751)
+
 2014-11-04  Glenn Morris  <rgm@gnu.org>
 
        * mail/emacsbug.el (report-emacs-bug): No longer include
index a72a79a779795a1001ca5c8d85fe178dc758b04f..3103eb0daa261aa2d9284ecd2bba4c91e56304a2 100644 (file)
@@ -2061,15 +2061,16 @@ FILENAME is the source file, NEWNAME the target file.
 KEEP-DATE is non-nil if NEWNAME should have the same timestamp as FILENAME."
   (with-temp-buffer
     ;; We must disable multibyte, because binary data shall not be
-    ;; converted.  `insert-file-contents-literally' does not support
-    ;; file name handlers for GNU Emacs; we must create a local copy
-    ;; therefore.
+    ;; converted.  We remove `tramp-file-name-handler' from
+    ;; `inhibit-file-name-handlers'; otherwise the file name handler
+    ;; for `insert-file-contents' might be deactivated in some corner
+    ;; cases.
     (set-buffer-multibyte nil)
     (let ((coding-system-for-read 'binary)
          (jka-compr-inhibit t)
-         (tmpfile (file-local-copy filename)))
-      (insert-file-contents-literally (or tmpfile filename))
-      (when tmpfile (delete-file tmpfile)))
+         (inhibit-file-name-handlers
+          (remq 'tramp-file-name-handler inhibit-file-name-handlers)))
+      (insert-file-contents-literally filename))
     ;; We don't want the target file to be compressed, so we let-bind
     ;; `jka-compr-inhibit' to t.
     (let ((coding-system-for-write 'binary)