From ed543ca3e0c3c10cc0f7c0f4e8ce0ad514c10ec8 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Tue, 8 Mar 2022 17:28:30 +0100 Subject: [PATCH] Implement abbreviate-file-name in Tramp for Google drive * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-home-directory): Implement for Google drive. --- lisp/net/tramp-gvfs.el | 18 ++++++++++++++---- 1 file 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.