summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2022-03-08 17:28:30 +0100
committerMichael Albinus <michael.albinus@gmx.de>2022-03-08 17:28:30 +0100
commited543ca3e0c3c10cc0f7c0f4e8ce0ad514c10ec8 (patch)
treeb5dd0f0d79c1347bfdfde95e7d015ef8ed66d532
parent6dc51d4cca3a0507d4212616ce1b24147dee54cb (diff)
downloademacs-ed543ca3e0c3c10cc0f7c0f4e8ce0ad514c10ec8.tar.gz
Implement abbreviate-file-name in Tramp for Google drive
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-home-directory): Implement for Google drive.
-rw-r--r--lisp/net/tramp-gvfs.el18
1 files changed, 14 insertions, 4 deletions
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index acded25292a..d6120d2bee1 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1604,10 +1604,20 @@ If USER is a string, return its home directory instead of the
user identified by VEC. If there is no user specified in either
VEC or USER, or if there is no home directory, return nil."
(let ((localname
- (tramp-get-connection-property vec "default-location" nil)))
- (if (zerop (length localname))
- (tramp-get-connection-property (tramp-get-process vec) "share" nil)
- localname)))
+ (tramp-get-connection-property vec "default-location" nil))
+ result)
+ (cond
+ ((zerop (length localname))
+ (tramp-get-connection-property (tramp-get-process vec) "share" nil))
+ ;; Google-drive.
+ ((not (string-prefix-p "/" localname))
+ (dolist (item
+ (tramp-gvfs-get-directory-attributes
+ (tramp-make-tramp-file-name vec "/"))
+ result)
+ (when (string-equal (cdr (assoc "name" item)) localname)
+ (setq result (concat "/" (car item))))))
+ (t localname))))
(defun tramp-gvfs-handle-get-remote-uid (vec id-format)
"The uid of the remote connection VEC, in ID-FORMAT.