]> git.eshelyaron.com Git - emacs.git/commitdiff
Tramp cleanup
authorMichael Albinus <michael.albinus@gmx.de>
Wed, 28 Nov 2018 15:38:49 +0000 (16:38 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Wed, 28 Nov 2018 15:38:49 +0000 (16:38 +0100)
* lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions)
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
* lisp/net/tramp-smb.el (tramp-smb-read-file-entry):
Use `string-match-p'.

* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
Set file properties more robust.

* lisp/net/tramp-sh.el (tramp-stat-marker)
(tramp-convert-file-attributes): Add tramp-autoload cookie.

lisp/net/tramp-cache.el
lisp/net/tramp-gvfs.el
lisp/net/tramp-rclone.el
lisp/net/tramp-sh.el
lisp/net/tramp-smb.el

index ebb4254dab45eb232e6dfba59efd4e360504ffb4..51a8f13c4a42d69e58cf1895f176b06f5a253f46 100644 (file)
@@ -28,7 +28,7 @@
 ;; An implementation of information caching for remote files.
 
 ;; Each connection, identified by a `tramp-file-name' structure or by
-;; a process, has a unique cache. We distinguish 3 kind of caches,
+;; a process, has a unique cache. We distinguish 4 kind of caches,
 ;; depending on the key:
 ;;
 ;; - localname is NIL.  This are reusable properties.  Examples:
 ;;   an open connection.  Examples: "scripts" keeps shell script
 ;;   definitions already sent to the remote shell, "last-cmd-time" is
 ;;   the time stamp a command has been sent to the remote process.
+;;
+;; - The key is `nil'.  This are temporary properties related to the
+;;   local machine.  Examples: "parse-passwd" and "parse-group" keep
+;;   the results of parsing "/etc/passwd" and "/etc/group", "locale"
+;;   is the used shell locale.
+
+;; Some properties are handled special:
+;;
+;; - "process-name", "process-buffer" and "first-password-request" are
+;;   not saved in the file `tramp-persistency-file-name'.
 
 ;;; Code:
 
index 9d53edd08438dc4315582cd60598dca5f4702ef6..76747f7c99389131a99edd033d1a9d79cc5c7c59 100644 (file)
@@ -1143,7 +1143,7 @@ If FILE-SYSTEM is non-nil, return file system attributes."
 
 (defun tramp-gvfs-handle-file-name-all-completions (filename directory)
   "Like `file-name-all-completions' for Tramp files."
-  (unless (save-match-data (string-match "/" filename))
+  (unless (string-match-p "/" filename)
     (all-completions
      filename
      (with-parsed-tramp-file-name (expand-file-name directory) nil
index 3ca857dc3be5286be57f9f8453756d906dc1169c..6c01d7def1acf3825e4d63015957164b8f3e1d7f 100644 (file)
@@ -518,15 +518,14 @@ connection if a previous connection has died for some reason."
 
   ;; In `tramp-check-cached-permissions', the connection properties
   ;; {uig,gid}-{integer,string} are used.  We set them to proper values.
-  (unless (tramp-get-connection-property vec "uid-integer" nil)
-    (tramp-set-connection-property
-     vec "uid-integer" (tramp-get-local-uid 'integer))
-    (tramp-set-connection-property
-     vec "gid-integer" (tramp-get-local-gid 'integer))
-    (tramp-set-connection-property
-     vec "uid-string" (tramp-get-local-uid 'string))
-    (tramp-set-connection-property
-     vec "gid-string" (tramp-get-local-gid 'string))))
+  (with-tramp-connection-property
+      vec "uid-integer" (tramp-get-local-uid 'integer))
+  (with-tramp-connection-property
+      vec "gid-integer" (tramp-get-local-gid 'integer))
+  (with-tramp-connection-property
+      vec "uid-string" (tramp-get-local-uid 'string))
+  (with-tramp-connection-property
+      vec "gid-string" (tramp-get-local-gid 'string)))
 
 (defun tramp-rclone-send-command (vec &rest args)
   "Send the COMMAND to connection VEC."
index b5d4893580e5252361149999f9a3fd5e40132997..900b4b3c277e2bde7f9c58e2b80bc1cbc338fbf0 100644 (file)
@@ -945,6 +945,7 @@ od -v -t x1 -A n </dev/null && \
 busybox awk '{}' </dev/null"
   "Test command for checking `tramp-awk-encode' and `tramp-awk-decode'.")
 
+;;;###tramp-autoload
 (defconst tramp-stat-marker "/////"
   "Marker in stat commands for file attributes.")
 
@@ -1838,7 +1839,7 @@ be non-negative integers."
 ;; files.
 (defun tramp-sh-handle-file-name-all-completions (filename directory)
   "Like `file-name-all-completions' for Tramp files."
-  (unless (save-match-data (string-match "/" filename))
+  (unless (string-match-p "/" filename)
     (all-completions
      filename
      (with-parsed-tramp-file-name (expand-file-name directory) nil
@@ -5114,6 +5115,7 @@ raises an error."
                  "`%s' does not return a valid Lisp expression: `%s'"
                  command (buffer-string))))))))
 
+;;;###tramp-autoload
 (defun tramp-convert-file-attributes (vec attr)
   "Convert `file-attributes' ATTR generated by perl script, stat or ls.
 Convert file mode bits to string and set virtual device number.
index 23b5176b5288f5f7d0f715e6a1b4ab1407733d76..a49dbbdb39aff8e92cc5755d9fce45158cf45789 100644 (file)
@@ -1796,12 +1796,12 @@ Result is the list (LOCALNAME MODE SIZE MTIME)."
        (if (string-match "\\([ACDEHNORrsSTV]+\\)?$" line)
            (setq
             mode (or (match-string 1 line) "")
-            mode (save-match-data (format
+            mode (format
                    "%s%s"
-                   (if (string-match "D" mode) "d" "-")
+                   (if (string-match-p "D" mode) "d" "-")
                    (mapconcat
                     (lambda (_x) "") "    "
-                    (concat "r" (if (string-match "R" mode) "-" "w") "x"))))
+                    (concat "r" (if (string-match "R" mode) "-" "w") "x")))
             line (substring line 0 -6))
          (cl-return))