emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 95a2a74: Extend tramp-cache.el interface


From: Michael Albinus
Subject: [Emacs-diffs] master 95a2a74: Extend tramp-cache.el interface
Date: Tue, 12 Dec 2017 09:46:23 -0500 (EST)

branch: master
commit 95a2a74d0e8d54b32c57800661d77e3de57c53bb
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Extend tramp-cache.el interface
    
    * lisp/net/tramp.el (tramp-handle-add-name-to-file)
    (tramp-handle-dired-uncache):
    * lisp/net/tramp-adb.el (tramp-adb-handle-make-directory)
    (tramp-adb-handle-delete-directory, tramp-adb-handle-delete-file)
    (tramp-adb-handle-write-region, tramp-adb-handle-set-file-modes)
    (tramp-adb-handle-set-file-times, tramp-adb-handle-copy-file)
    (tramp-adb-handle-rename-file, tramp-adb-handle-process-file)
    (tramp-adb-handle-start-file-process, tramp-adb-get-device)
    (tramp-adb-maybe-open-connection):
    * lisp/net/tramp-cache.el (tramp-flush-file-properties)
    (tramp-flush-directory-properties, tramp-flush-file-function):
    * lisp/net/tramp-cmds.el (tramp-cleanup-connection):
    * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
    (tramp-gvfs-handle-delete-directory, tramp-gvfs-handle-delete-file)
    (tramp-gvfs-handle-file-system-info, tramp-gvfs-handle-make-directory)
    (tramp-gvfs-handle-write-region, tramp-gvfs-handler-mounted-unmounted)
    (tramp-gvfs-send-command):
    * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
    (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
    (tramp-sh-handle-set-file-selinux-context, tramp-sh-handle-set-file-acl)
    (tramp-sh-handle-add-name-to-file, tramp-sh-handle-copy-directory)
    (tramp-do-copy-or-rename-file, tramp-do-copy-or-rename-file-out-of-band)
    (tramp-sh-handle-make-directory, tramp-sh-handle-delete-directory)
    (tramp-sh-handle-delete-file, tramp-sh-handle-dired-compress-file)
    (tramp-process-sentinel, tramp-sh-handle-start-file-process)
    (tramp-sh-handle-process-file, tramp-sh-handle-write-region):
    * lisp/net/tramp-smb.el (tramp-smb-handle-add-name-to-file)
    (tramp-smb-handle-copy-directory, tramp-smb-handle-copy-file)
    (tramp-smb-handle-delete-directory, tramp-smb-handle-delete-file)
    (tramp-smb-handle-file-acl, tramp-smb-handle-make-directory-internal)
    (tramp-smb-handle-make-symbolic-link, tramp-smb-handle-process-file)
    (tramp-smb-handle-rename-file, tramp-smb-handle-set-file-acl)
    (tramp-smb-handle-set-file-modes, tramp-smb-handle-start-file-process)
    (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
    Use them.
    
    * lisp/net/tramp-cache.el (tramp-flush-file-properties)
    (tramp-flush-directory-properties, tramp-flush-connection-properties):
    Rename from `tramp-flush-file-property',`tramp-flush-directory-property'
    and `tramp-flush-connection-property', respectively.
    (tramp-flush-file-property, tramp-flush-connection-property):
    New defuns.
---
 lisp/net/tramp-adb.el   | 55 ++++++++++++++++++------------------
 lisp/net/tramp-cache.el | 44 +++++++++++++++++++++++++----
 lisp/net/tramp-cmds.el  |  6 ++--
 lisp/net/tramp-gvfs.el  | 32 ++++++++++-----------
 lisp/net/tramp-sh.el    | 65 ++++++++++++++++++++++---------------------
 lisp/net/tramp-smb.el   | 74 ++++++++++++++++++++++++-------------------------
 lisp/net/tramp.el       |  6 ++--
 7 files changed, 158 insertions(+), 124 deletions(-)

diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index f1753ce..d06031f 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -541,8 +541,8 @@ Emacs dired can't find files."
       (let ((par (expand-file-name ".." dir)))
        (unless (file-directory-p par)
          (make-directory par parents))))
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-directory-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-directory-properties v localname)
     (unless (or (tramp-adb-send-command-and-check
                 v (format "mkdir %s" (tramp-shell-quote-argument localname)))
                (and parents (file-directory-p dir)))
@@ -552,11 +552,11 @@ Emacs dired can't find files."
   "Like `delete-directory' for Tramp files."
   (setq directory (expand-file-name directory))
   (with-parsed-tramp-file-name (file-truename directory) nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-directory-property v localname))
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-directory-properties v localname))
   (with-parsed-tramp-file-name directory nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-directory-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-directory-properties v localname)
     (tramp-adb-barf-unless-okay
      v (format "%s %s"
               (if recursive "rm -r" "rmdir")
@@ -567,8 +567,8 @@ Emacs dired can't find files."
   "Like `delete-file' for Tramp files."
   (setq filename (expand-file-name filename))
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (tramp-adb-barf-unless-okay
      v (format "rm %s" (tramp-shell-quote-argument localname))
      "Couldn't delete %s" filename)))
@@ -661,8 +661,8 @@ But handle the case, if the \"test\" command is not 
available."
 
     ;; We must also flush the cache of the directory, because
     ;; `file-attributes' reads the values from there.
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (let* ((curbuf (current-buffer))
           (tmpfile (tramp-compat-make-temp-file filename)))
       (when (and append (file-exists-p filename))
@@ -692,15 +692,15 @@ But handle the case, if the \"test\" command is not 
available."
 (defun tramp-adb-handle-set-file-modes (filename mode)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (tramp-adb-send-command-and-check v (format "chmod %o %s" mode 
localname))))
 
 (defun tramp-adb-handle-set-file-times (filename &optional time)
   "Like `set-file-times' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (let ((time (if (or (null time) (equal time '(0 0)))
                    (current-time)
                  time)))
@@ -736,8 +736,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
                ;; We must also flush the cache of the directory,
                ;; because `file-attributes' reads the values from
                ;; there.
-               (tramp-flush-file-property v (file-name-directory l2))
-               (tramp-flush-file-property v l2)
+               (tramp-flush-file-properties v (file-name-directory l2))
+               (tramp-flush-file-properties v l2)
                ;; Short track.
                (tramp-adb-barf-unless-okay
                 v (format
@@ -771,8 +771,9 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
                  ;; We must also flush the cache of the directory,
                  ;; because `file-attributes' reads the values from
                  ;; there.
-                 (tramp-flush-file-property v (file-name-directory localname))
-                 (tramp-flush-file-property v localname)
+                 (tramp-flush-file-properties
+                  v (file-name-directory localname))
+                 (tramp-flush-file-properties v localname)
                  (when (tramp-adb-execute-adb-command
                         v "push"
                         (tramp-compat-file-name-unquote filename)
@@ -815,10 +816,10 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
                  (tramp-error v 'file-already-exists newname))
                ;; We must also flush the cache of the directory, because
                ;; `file-attributes' reads the values from there.
-               (tramp-flush-file-property v (file-name-directory l1))
-               (tramp-flush-file-property v l1)
-               (tramp-flush-file-property v (file-name-directory l2))
-               (tramp-flush-file-property v l2)
+               (tramp-flush-file-properties v (file-name-directory l1))
+               (tramp-flush-file-properties v l1)
+               (tramp-flush-file-properties v (file-name-directory l2))
+               (tramp-flush-file-properties v l2)
                ;; Short track.
                (tramp-adb-barf-unless-okay
                 v (format
@@ -930,7 +931,7 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
       (when tmpinput (delete-file tmpinput))
 
       (unless process-file-side-effects
-        (tramp-flush-directory-property v ""))
+        (tramp-flush-directory-properties v ""))
 
       ;; Return exit status.
       (if (equal ret -1)
@@ -1087,8 +1088,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
                (set-process-buffer (tramp-get-connection-process v) nil)
                (kill-buffer (current-buffer)))
            (set-buffer-modified-p bmp))
-         (tramp-set-connection-property v "process-name" nil)
-         (tramp-set-connection-property v "process-buffer" nil))))))
+         (tramp-flush-connection-property v "process-name")
+         (tramp-flush-connection-property v "process-buffer"))))))
 
 (defun tramp-adb-get-device (vec)
   "Return full host name from VEC to be used in shell execution.
@@ -1097,7 +1098,7 @@ E.g. a host name \"192.168.1.1#5555\" returns 
\"192.168.1.1:5555\"
   ;; Sometimes this is called before there is a connection process
   ;; yet.  In order to work with the connection cache, we flush all
   ;; unwanted entries first.
-  (tramp-flush-connection-property nil)
+  (tramp-flush-connection-properties nil)
   (with-tramp-connection-property (tramp-get-connection-process vec) "device"
     (let* ((host (tramp-file-name-host vec))
           (port (tramp-file-name-port-or-default vec))
@@ -1310,7 +1311,7 @@ connection if a previous connection has died for some 
reason."
              (tramp-adb-send-command vec (format "su %s" user))
              (unless (tramp-adb-send-command-and-check vec nil)
                (delete-process p)
-               (tramp-set-file-property vec "" "su-command-p" nil)
+               (tramp-flush-file-property vec "" "su-command-p")
                (tramp-error
                 vec 'file-error "Cannot switch to user `%s'" user)))
 
diff --git a/lisp/net/tramp-cache.el b/lisp/net/tramp-cache.el
index bd746c1..56f3f28 100644
--- a/lisp/net/tramp-cache.el
+++ b/lisp/net/tramp-cache.el
@@ -166,7 +166,22 @@ Returns VALUE."
     value))
 
 ;;;###tramp-autoload
-(defun tramp-flush-file-property (key file)
+(defun tramp-flush-file-property (key file property)
+  "Remove PROPERTY of FILE in the cache context of KEY."
+  ;; Unify localname.  Remove hop from `tramp-file-name' structure.
+  (setq file (tramp-compat-file-name-unquote file)
+       key (copy-tramp-file-name key))
+  (setf (tramp-file-name-localname key)
+       (tramp-run-real-handler 'directory-file-name (list file))
+       (tramp-file-name-hop key) nil)
+  (remhash property (tramp-get-hash-table key))
+  (tramp-message key 8 "%s %s" file property)
+  (when (>= tramp-verbose 10)
+    (let ((var (intern (concat "tramp-cache-set-count-" property))))
+      (makunbound var))))
+
+;;;###tramp-autoload
+(defun tramp-flush-file-properties (key file)
   "Remove all properties of FILE in the cache context of KEY."
   (let* ((file (tramp-run-real-handler
                'directory-file-name (list file)))
@@ -181,10 +196,10 @@ Returns VALUE."
     ;; Remove file properties of symlinks.
     (when (and (stringp truename)
               (not (string-equal file (directory-file-name truename))))
-      (tramp-flush-file-property key truename))))
+      (tramp-flush-file-properties key truename))))
 
 ;;;###tramp-autoload
-(defun tramp-flush-directory-property (key directory)
+(defun tramp-flush-directory-properties (key directory)
   "Remove all properties of DIRECTORY in the cache context of KEY.
 Remove also properties of all files in subdirectories."
   (setq directory (tramp-compat-file-name-unquote directory))
@@ -203,7 +218,7 @@ Remove also properties of all files in subdirectories."
     ;; Remove file properties of symlinks.
     (when (and (stringp truename)
               (not (string-equal directory (directory-file-name truename))))
-      (tramp-flush-directory-property key truename))))
+      (tramp-flush-directory-properties key truename))))
 
 ;; Reverting or killing a buffer should also flush file properties.
 ;; They could have been changed outside Tramp.  In eshell, "ls" would
@@ -222,7 +237,7 @@ This is suppressed for temporary buffers."
            (tramp-verbose 0))
        (when (tramp-tramp-file-p bfn)
          (with-parsed-tramp-file-name bfn nil
-           (tramp-flush-file-property v localname)))))))
+           (tramp-flush-file-properties v localname)))))))
 
 (add-hook 'before-revert-hook 'tramp-flush-file-function)
 (add-hook 'eshell-pre-command-hook 'tramp-flush-file-function)
@@ -291,7 +306,24 @@ used to cache connection properties of the local machine."
   (not (eq (tramp-get-connection-property key property 'undef) 'undef)))
 
 ;;;###tramp-autoload
-(defun tramp-flush-connection-property (key)
+(defun tramp-flush-connection-property (key property)
+  "Remove the named PROPERTY of a connection identified by KEY.
+KEY identifies the connection, it is either a process or a
+`tramp-file-name' structure.  A special case is nil, which is
+used to cache connection properties of the local machine.
+PROPERTY is set persistent when KEY is a `tramp-file-name' structure."
+  ;; Unify key by removing localname and hop from `tramp-file-name'
+  ;; structure.  Work with a copy in order to avoid side effects.
+  (when (tramp-file-name-p key)
+    (setq key (copy-tramp-file-name key))
+    (setf (tramp-file-name-localname key) nil
+         (tramp-file-name-hop key) nil))
+  (remhash property (tramp-get-hash-table key))
+  (setq tramp-cache-data-changed t)
+  (tramp-message key 7 "%s" property))
+
+;;;###tramp-autoload
+(defun tramp-flush-connection-properties (key)
   "Remove all properties identified by KEY.
 KEY identifies the connection, it is either a process or a
 `tramp-file-name' structure.  A special case is nil, which is
diff --git a/lisp/net/tramp-cmds.el b/lisp/net/tramp-cmds.el
index 1f72e25..ed36761 100644
--- a/lisp/net/tramp-cmds.el
+++ b/lisp/net/tramp-cmds.el
@@ -104,13 +104,13 @@ When called interactively, a Tramp connection has to be 
selected."
     (when keep-password (setq tramp-current-connection nil))
 
     ;; Flush file cache.
-    (tramp-flush-directory-property vec "")
+    (tramp-flush-directory-properties vec "")
 
     ;; Flush connection cache.
     (when (processp (tramp-get-connection-process vec))
-      (tramp-flush-connection-property (tramp-get-connection-process vec))
+      (tramp-flush-connection-properties (tramp-get-connection-process vec))
       (delete-process (tramp-get-connection-process vec)))
-    (tramp-flush-connection-property vec)
+    (tramp-flush-connection-properties vec)
 
     ;; Remove buffers.
     (dolist
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index a1d50b6..a65b8e9 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -745,13 +745,13 @@ file names."
 
          (when (and t1 (eq op 'rename))
            (with-parsed-tramp-file-name filename nil
-             (tramp-flush-file-property v (file-name-directory localname))
-             (tramp-flush-file-property v localname)))
+             (tramp-flush-file-properties v (file-name-directory localname))
+             (tramp-flush-file-properties v localname)))
 
          (when t2
            (with-parsed-tramp-file-name newname nil
-             (tramp-flush-file-property v (file-name-directory localname))
-             (tramp-flush-file-property v localname))))))))
+             (tramp-flush-file-properties v (file-name-directory localname))
+             (tramp-flush-file-properties v localname))))))))
 
 (defun tramp-gvfs-handle-copy-file
   (filename newname &optional ok-if-already-exists keep-date
@@ -785,8 +785,8 @@ file names."
        (tramp-error
         v 'file-error "Couldn't delete non-empty %s" directory)))
 
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-directory-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-directory-properties v localname)
     (unless
        (tramp-gvfs-send-command
         v (if (and trash delete-by-moving-to-trash) "gvfs-trash" "gvfs-rm")
@@ -800,8 +800,8 @@ file names."
 (defun tramp-gvfs-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (unless
        (tramp-gvfs-send-command
         v (if (and trash delete-by-moving-to-trash) "gvfs-trash" "gvfs-rm")
@@ -1180,7 +1180,7 @@ file-notify events."
   (setq filename (directory-file-name (expand-file-name filename)))
   (with-parsed-tramp-file-name filename nil
     ;; We don't use cached values.
-    (tramp-set-file-property v localname "file-system-attributes" 'undef)
+    (tramp-flush-file-property v localname "file-system-attributes")
     (let* ((attr (tramp-gvfs-get-root-attributes filename 'file-system))
           (size (cdr (assoc "filesystem::size" attr)))
           (used (cdr (assoc "filesystem::used" attr)))
@@ -1205,8 +1205,8 @@ file-notify events."
   "Like `make-directory' for Tramp files."
   (setq dir (directory-file-name (expand-file-name dir)))
   (with-parsed-tramp-file-name dir nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-directory-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-directory-properties v localname)
     (save-match-data
       (let ((ldir (file-name-directory dir)))
        ;; Make missing directory parts.  "gvfs-mkdir -p ..." does not
@@ -1262,8 +1262,8 @@ file-notify events."
         (tramp-error
          v 'file-error "Couldn't write region to `%s'" filename))))
 
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
 
     ;; Set file modification time.
     (when (or (eq visit t) (stringp visit))
@@ -1487,9 +1487,9 @@ ADDRESS can have the form \"xx:xx:xx:xx:xx:xx\" or 
\"[xx:xx:xx:xx:xx:xx]\"."
          (tramp-message
           v 6 "%s %s"
           signal-name (tramp-gvfs-stringify-dbus-message mount-info))
-         (tramp-set-file-property v "/" "list-mounts" 'undef)
+         (tramp-flush-file-property v "/" "list-mounts")
          (if (string-equal (downcase signal-name) "unmounted")
-             (tramp-flush-file-property v "/")
+             (tramp-flush-file-properties v "/")
            ;; Set prefix, mountpoint and location.
            (unless (string-equal prefix "/")
              (tramp-set-file-property v "/" "prefix" prefix))
@@ -1865,7 +1865,7 @@ is applied, and it returns t if the return code is zero."
       (erase-buffer)
       (or (zerop (apply 'tramp-call-process vec command nil t nil args))
          ;; Remove information about mounted connection.
-         (and (tramp-flush-file-property vec "/") nil)))))
+         (and (tramp-flush-file-properties vec "/") nil)))))
 
 
 ;; D-Bus BLUEZ functions.
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 1ca19e0..361e4c3 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1104,8 +1104,8 @@ component is used as the target of the symlink."
                (tramp-error v 'file-already-exists localname)
              (delete-file linkname)))
 
-         (tramp-flush-file-property v (file-name-directory localname))
-         (tramp-flush-file-property v localname)
+         (tramp-flush-file-properties v (file-name-directory localname))
+         (tramp-flush-file-properties v localname)
 
          ;; Right, they are on the same host, regardless of user,
          ;; method, etc.  We now make the link on the remote
@@ -1500,8 +1500,8 @@ of."
 (defun tramp-sh-handle-set-file-modes (filename mode)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     ;; FIXME: extract the proper text from chmod's stderr.
     (tramp-barf-unless-okay
      v
@@ -1512,8 +1512,8 @@ of."
   "Like `set-file-times' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (when (tramp-get-remote-touch v)
-      (tramp-flush-file-property v (file-name-directory localname))
-      (tramp-flush-file-property v localname)
+      (tramp-flush-file-properties v (file-name-directory localname))
+      (tramp-flush-file-properties v localname)
       (let ((time (if (or (null time) (equal time '(0 0)))
                      (current-time)
                    time)))
@@ -1605,8 +1605,7 @@ be non-negative integers."
          (if (and user role type range)
              (tramp-set-file-property
               v localname "file-selinux-context" context)
-           (tramp-set-file-property
-            v localname "file-selinux-context" 'undef))
+           (tramp-flush-file-property v localname "file-selinux-context"))
          t)))))
 
 (defun tramp-remote-acl-p (vec)
@@ -1646,7 +1645,7 @@ be non-negative integers."
          (tramp-set-file-property v localname "file-acl" acl-string)
          t)
       ;; In case of errors, we return nil.
-      (tramp-set-file-property v localname "file-acl-string" 'undef)
+      (tramp-flush-file-property v localname "file-acl-string")
       nil)))
 
 ;; Simple functions using the `test' command.
@@ -1940,8 +1939,8 @@ tramp-sh-handle-file-name-all-completions: internal error 
accessing `%s': `%s'"
                              v2-localname)))))
              (tramp-error v2 'file-already-exists newname)
            (delete-file newname)))
-       (tramp-flush-file-property v2 (file-name-directory v2-localname))
-       (tramp-flush-file-property v2 v2-localname)
+       (tramp-flush-file-properties v2 (file-name-directory v2-localname))
+       (tramp-flush-file-properties v2 v2-localname)
        (tramp-barf-unless-okay
         v1
         (format "%s %s %s" ln
@@ -2007,8 +2006,8 @@ tramp-sh-handle-file-name-all-completions: internal error 
accessing `%s': `%s'"
       ;; When newname did exist, we have wrong cached values.
       (when t2
        (with-parsed-tramp-file-name newname nil
-         (tramp-flush-file-property v (file-name-directory localname))
-         (tramp-flush-file-property v localname))))))
+         (tramp-flush-file-properties v (file-name-directory localname))
+         (tramp-flush-file-properties v localname))))))
 
 (defun tramp-sh-handle-rename-file
   (filename newname &optional ok-if-already-exists)
@@ -2133,14 +2132,16 @@ file names."
          ;; In case of `rename', we must flush the cache of the source file.
          (when (and t1 (eq op 'rename))
            (with-parsed-tramp-file-name filename v1
-             (tramp-flush-file-property v1 (file-name-directory v1-localname))
-             (tramp-flush-file-property v1 v1-localname)))
+             (tramp-flush-file-properties
+              v1 (file-name-directory v1-localname))
+             (tramp-flush-file-properties v1 v1-localname)))
 
          ;; When newname did exist, we have wrong cached values.
          (when t2
            (with-parsed-tramp-file-name newname v2
-             (tramp-flush-file-property v2 (file-name-directory v2-localname))
-             (tramp-flush-file-property v2 v2-localname))))))))
+             (tramp-flush-file-properties
+              v2 (file-name-directory v2-localname))
+             (tramp-flush-file-properties v2 v2-localname))))))))
 
 (defun tramp-do-copy-or-rename-file-via-buffer (op filename newname keep-date)
   "Use an Emacs buffer to copy or rename a file.
@@ -2515,8 +2516,8 @@ The method used must be an out-of-band method."
                     p v nil tramp-actions-copy-out-of-band))))
 
            ;; Reset the transfer process properties.
-           (tramp-set-connection-property v "process-name" nil)
-           (tramp-set-connection-property v "process-buffer" nil)
+           (tramp-flush-connection-property v "process-name")
+           (tramp-flush-connection-property v "process-buffer")
            ;; Clear the remote prompt.
            (when (and remote-copy-program
                       (not (tramp-send-command-and-check v nil)))
@@ -2547,7 +2548,7 @@ The method used must be an out-of-band method."
   "Like `make-directory' for Tramp files."
   (setq dir (expand-file-name dir))
   (with-parsed-tramp-file-name dir nil
-    (tramp-flush-directory-property v (file-name-directory localname))
+    (tramp-flush-directory-properties v (file-name-directory localname))
     (save-excursion
       (tramp-barf-unless-okay
        v (format "%s %s"
@@ -2559,8 +2560,8 @@ The method used must be an out-of-band method."
   "Like `delete-directory' for Tramp files."
   (setq directory (expand-file-name directory))
   (with-parsed-tramp-file-name directory nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-directory-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-directory-properties v localname)
     (tramp-barf-unless-okay
      v (format "cd / && %s %s"
               (or (and trash (tramp-get-remote-trash v))
@@ -2572,8 +2573,8 @@ The method used must be an out-of-band method."
   "Like `delete-file' for Tramp files."
   (setq filename (expand-file-name filename))
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (tramp-barf-unless-okay
      v (format "%s %s"
               (or (and trash (tramp-get-remote-trash v)) "rm -f")
@@ -2586,7 +2587,7 @@ The method used must be an out-of-band method."
   "Like `dired-compress-file' for Tramp files."
   ;; Code stolen mainly from dired-aux.el.
   (with-parsed-tramp-file-name file nil
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v localname)
     (save-excursion
       (let ((suffixes dired-compress-file-suffixes)
            suffix)
@@ -2822,8 +2823,8 @@ the result will be a local, non-Tramp, file name."
     (let ((vec (tramp-get-connection-property proc "vector" nil)))
       (when vec
        (tramp-message vec 5 "Sentinel called: `%S' `%s'" proc event)
-        (tramp-flush-connection-property proc)
-        (tramp-flush-directory-property vec "")))))
+        (tramp-flush-connection-properties proc)
+        (tramp-flush-directory-properties vec "")))))
 
 ;; We use BUFFER also as connection buffer during setup. Because of
 ;; this, its original contents must be saved, and restored once
@@ -2957,8 +2958,8 @@ the result will be a local, non-Tramp, file name."
                (set-process-buffer p nil)
                (kill-buffer (current-buffer)))
            (set-buffer-modified-p bmp))
-         (tramp-set-connection-property v "process-name" nil)
-         (tramp-set-connection-property v "process-buffer" nil))))))
+         (tramp-flush-connection-property v "process-name")
+         (tramp-flush-connection-property v "process-buffer"))))))
 
 (defun tramp-sh-handle-process-file
   (program &optional infile destination display &rest args)
@@ -3080,7 +3081,7 @@ the result will be a local, non-Tramp, file name."
       (when tmpinput (delete-file tmpinput))
 
       (unless process-file-side-effects
-        (tramp-flush-directory-property v ""))
+        (tramp-flush-directory-properties v ""))
 
       ;; Return exit status.
       (if (equal ret -1)
@@ -3384,8 +3385,8 @@ the result will be a local, non-Tramp, file name."
          (when coding-system-used
            (set 'last-coding-system-used coding-system-used))))
 
-      (tramp-flush-file-property v (file-name-directory localname))
-      (tramp-flush-file-property v localname)
+      (tramp-flush-file-properties v (file-name-directory localname))
+      (tramp-flush-file-properties v localname)
 
       ;; We must protect `last-coding-system-used', now we have set it
       ;; to its correct value.
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 5a8299b..ec689ae 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -370,8 +370,8 @@ pass to the OPERATION."
            (delete-file newname)))
       ;; We must also flush the cache of the directory, because
       ;; `file-attributes' reads the values from there.
-      (tramp-flush-file-property v2 (file-name-directory v2-localname))
-      (tramp-flush-file-property v2 v2-localname)
+      (tramp-flush-file-properties v2 (file-name-directory v2-localname))
+      (tramp-flush-file-properties v2 v2-localname)
       (unless
          (tramp-smb-send-command
           v1
@@ -527,8 +527,8 @@ pass to the OPERATION."
                      (tramp-message v 6 "\n%s" (buffer-string))))
 
                ;; Reset the transfer process properties.
-               (tramp-set-connection-property v "process-name" nil)
-               (tramp-set-connection-property v "process-buffer" nil)
+               (tramp-flush-connection-property v "process-name")
+               (tramp-flush-connection-property v "process-buffer")
                (when t1 (delete-directory tmpdir 'recursive))))
 
            ;; Handle KEEP-DATE argument.
@@ -545,8 +545,8 @@ pass to the OPERATION."
            ;; When newname did exist, we have wrong cached values.
            (when t2
              (with-parsed-tramp-file-name newname nil
-               (tramp-flush-file-property v (file-name-directory localname))
-               (tramp-flush-file-property v localname))))
+               (tramp-flush-file-properties v (file-name-directory localname))
+               (tramp-flush-file-properties v localname))))
 
           ;; We must do it file-wise.
           (t
@@ -591,8 +591,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
 
            ;; We must also flush the cache of the directory, because
            ;; `file-attributes' reads the values from there.
-           (tramp-flush-file-property v (file-name-directory localname))
-           (tramp-flush-file-property v localname)
+           (tramp-flush-file-properties v (file-name-directory localname))
+           (tramp-flush-file-properties v localname)
            (unless (tramp-smb-get-share v)
              (tramp-error
               v 'file-error "Target `%s' must contain a share name" newname))
@@ -626,8 +626,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
     (with-parsed-tramp-file-name directory nil
       ;; We must also flush the cache of the directory, because
       ;; `file-attributes' reads the values from there.
-      (tramp-flush-file-property v (file-name-directory localname))
-      (tramp-flush-directory-property v localname)
+      (tramp-flush-file-properties v (file-name-directory localname))
+      (tramp-flush-directory-properties v localname)
       (unless (tramp-smb-send-command
               v (format
                  "%s \"%s\""
@@ -647,8 +647,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
     (with-parsed-tramp-file-name filename nil
       ;; We must also flush the cache of the directory, because
       ;; `file-attributes' reads the values from there.
-      (tramp-flush-file-property v (file-name-directory localname))
-      (tramp-flush-file-property v localname)
+      (tramp-flush-file-properties v (file-name-directory localname))
+      (tramp-flush-file-properties v localname)
       (unless (tramp-smb-send-command
               v (format
                  "%s \"%s\""
@@ -780,8 +780,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
                      (substring-no-properties (buffer-string)))))
 
              ;; Reset the transfer process properties.
-             (tramp-set-connection-property v "process-name" nil)
-             (tramp-set-connection-property v "process-buffer" nil))))))))
+             (tramp-flush-connection-property v "process-name")
+             (tramp-flush-connection-property v "process-buffer"))))))))
 
 (defun tramp-smb-handle-file-attributes (filename &optional id-format)
   "Like `file-attributes' for Tramp files."
@@ -1144,8 +1144,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
             (format "mkdir \"%s\"" file)))
          ;; We must also flush the cache of the directory, because
          ;; `file-attributes' reads the values from there.
-         (tramp-flush-file-property v (file-name-directory localname))
-         (tramp-flush-file-property v localname))
+         (tramp-flush-file-properties v (file-name-directory localname))
+         (tramp-flush-file-properties v localname))
        (unless (file-directory-p directory)
          (tramp-error
           v 'file-error "Couldn't make directory %s" directory))))))
@@ -1191,8 +1191,8 @@ component is used as the target of the symlink."
 
        ;; We must also flush the cache of the directory, because
        ;; `file-attributes' reads the values from there.
-       (tramp-flush-file-property v (file-name-directory localname))
-       (tramp-flush-file-property v localname)
+       (tramp-flush-file-properties v (file-name-directory localname))
+       (tramp-flush-file-properties v localname)
 
        (unless
            (tramp-smb-send-command
@@ -1307,14 +1307,14 @@ component is used as the target of the symlink."
 
       ;; Cleanup.  We remove all file cache values for the connection,
       ;; because the remote process could have changed them.
-      (tramp-set-connection-property v "process-name" nil)
-      (tramp-set-connection-property v "process-buffer" nil)
+      (tramp-flush-connection-property v "process-name")
+      (tramp-flush-connection-property v "process-buffer")
       (when tmpinput (delete-file tmpinput))
       (unless outbuf
        (kill-buffer (tramp-get-connection-property v "process-buffer" nil)))
 
       (unless process-file-side-effects
-       (tramp-flush-directory-property v ""))
+       (tramp-flush-directory-properties v ""))
 
       ;; Return exit status.
       (if (equal ret -1)
@@ -1350,10 +1350,10 @@ component is used as the target of the symlink."
 
            ;; We must also flush the cache of the directory, because
            ;; `file-attributes' reads the values from there.
-           (tramp-flush-file-property v1 (file-name-directory v1-localname))
-           (tramp-flush-file-property v1 v1-localname)
-           (tramp-flush-file-property v2 (file-name-directory v2-localname))
-           (tramp-flush-file-property v2 v2-localname)
+           (tramp-flush-file-properties v1 (file-name-directory v1-localname))
+           (tramp-flush-file-properties v1 v1-localname)
+           (tramp-flush-file-properties v2 (file-name-directory v2-localname))
+           (tramp-flush-file-properties v2 v2-localname)
            (unless (tramp-smb-get-share v2)
              (tramp-error
               v2 'file-error "Target `%s' must contain a share name" newname))
@@ -1383,7 +1383,7 @@ component is used as the target of the symlink."
   "Like `set-file-acl' for Tramp files."
   (ignore-errors
     (with-parsed-tramp-file-name filename nil
-      (tramp-set-file-property v localname "file-acl" 'undef)
+      (tramp-flush-file-property v localname "file-acl")
 
       (when (and (stringp acl-string) (executable-find tramp-smb-acl-program))
        (let* ((share     (tramp-smb-get-share v))
@@ -1444,14 +1444,14 @@ component is used as the target of the symlink."
                    t)))
 
            ;; Reset the transfer process properties.
-           (tramp-set-connection-property v "process-name" nil)
-           (tramp-set-connection-property v "process-buffer" nil)))))))
+           (tramp-flush-connection-property v "process-name")
+           (tramp-flush-connection-property v "process-buffer")))))))
 
 (defun tramp-smb-handle-set-file-modes (filename mode)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (when (tramp-smb-get-cifs-capabilities v)
-      (tramp-flush-file-property v localname)
+      (tramp-flush-file-properties v localname)
       (unless (tramp-smb-send-command
               v (format "chmod \"%s\" %o" (tramp-smb-get-localname v) mode))
        (tramp-error
@@ -1504,8 +1504,8 @@ component is used as the target of the symlink."
                (set-process-buffer (tramp-get-connection-process v) nil)
                (kill-buffer (current-buffer)))
            (set-buffer-modified-p bmp)))
-       (tramp-set-connection-property v "process-name" nil)
-       (tramp-set-connection-property v "process-buffer" nil)))))
+       (tramp-flush-connection-property v "process-name")
+       (tramp-flush-connection-property v "process-buffer")))))
 
 (defun tramp-smb-handle-substitute-in-file-name (filename)
   "Like `handle-substitute-in-file-name' for Tramp files.
@@ -1538,8 +1538,8 @@ errors for shares like \"C$/\", which are common in 
Microsoft Windows."
 
     ;; We must also flush the cache of the directory, because
     ;; `file-attributes' reads the values from there.
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (let ((curbuf (current-buffer))
          (tmpfile (tramp-compat-make-temp-file filename)))
       (when (and append (file-exists-p filename))
@@ -1863,8 +1863,8 @@ If ARGUMENT is non-nil, use it as argument for
                 tramp-smb-version
                 (tramp-get-connection-property
                  vec "smbclient-version" tramp-smb-version))
-         (tramp-flush-directory-property vec "")
-         (tramp-flush-connection-property vec))
+         (tramp-flush-directory-properties vec "")
+         (tramp-flush-connection-properties vec))
 
        (tramp-set-connection-property
         vec "smbclient-version" tramp-smb-version)))
@@ -1965,8 +1965,8 @@ If ARGUMENT is non-nil, use it as argument for
                               smbserver-version
                               (tramp-get-connection-property
                                vec "smbserver-version" smbserver-version))
-                           (tramp-flush-directory-property vec "")
-                           (tramp-flush-connection-property vec))
+                           (tramp-flush-directory-properties vec "")
+                           (tramp-flush-connection-properties vec))
                          (tramp-set-connection-property
                           vec "smbserver-version" smbserver-version))))
 
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index c73ec1d..398d91e 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2948,8 +2948,8 @@ User is always nil."
                          localname)))))
          (tramp-error v 'file-already-exists newname)
        (delete-file newname)))
-    (tramp-flush-file-property v (file-name-directory localname))
-    (tramp-flush-file-property v localname)
+    (tramp-flush-file-properties v (file-name-directory localname))
+    (tramp-flush-file-properties v localname)
     (copy-file
      filename newname 'ok-if-already-exists 'keep-time
      'preserve-uid-gid 'preserve-permissions)))
@@ -2993,7 +2993,7 @@ User is always nil."
   "Like `dired-uncache' for Tramp files."
   (with-parsed-tramp-file-name
       (if (file-directory-p dir) dir (file-name-directory dir)) nil
-    (tramp-flush-directory-property v localname)))
+    (tramp-flush-directory-properties v localname)))
 
 (defun tramp-handle-file-accessible-directory-p (filename)
   "Like `file-accessible-directory-p' for Tramp files."



reply via email to

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