From d04bc496debb1183a2a8b1cd6864cdb4799e044b Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 2 Jul 2009 15:27:37 +0000 Subject: [PATCH] * net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted) (tramp-gvfs-connection-mounted-p): Handle changed mount-info interface. --- lisp/ChangeLog | 6 ++++++ lisp/net/tramp-gvfs.el | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2efcf47f1eb..1f20980de5e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2009-07-02 Michael Albinus + + * net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted) + (tramp-gvfs-connection-mounted-p): Handle changed mount-info + interface. + 2009-07-02 Kenichi Handa * international/mule.el (set-keyboard-coding-system): Force *-unix diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 7ac652eb0e9..e46727216d6 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -869,7 +869,10 @@ ADDRESS can have the form \"xx:xx:xx:xx:xx:xx\" or \"[xx:xx:xx:xx:xx:xx]\"." \"org.gtk.vfs.MountTracker.unmounted\" signals." (ignore-errors (let* ((signal-name (dbus-event-member-name last-input-event)) - (mount-spec (nth 1 (nth 9 mount-info))) + ;; The interface of mount-info has been changed. We must + ;; handle both cases. + (last-nth (if (nth 9 mount-info) 9 8)) + (mount-spec (nth 1 (nth last-nth mount-info))) (method (dbus-byte-array-to-string (cadr (assoc "type" mount-spec)))) (user (dbus-byte-array-to-string (cadr (assoc "user" mount-spec)))) (domain (dbus-byte-array-to-string @@ -898,7 +901,7 @@ ADDRESS can have the form \"xx:xx:xx:xx:xx:xx\" or \"[xx:xx:xx:xx:xx:xx]\"." (tramp-set-file-property v "/" "fuse-mountpoint" (file-name-nondirectory - (dbus-byte-array-to-string (nth 8 mount-info))))))))) + (dbus-byte-array-to-string (nth (1- last-nth) mount-info))))))))) (dbus-register-signal :session nil tramp-gvfs-path-mounttracker @@ -920,7 +923,10 @@ ADDRESS can have the form \"xx:xx:xx:xx:xx:xx\" or \"[xx:xx:xx:xx:xx:xx]\"." :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker tramp-gvfs-interface-mounttracker "listMounts")) nil) - (let* ((mount-spec (nth 1 (nth 9 elt))) + ;; The interface of mount-info has been changed. We must handle + ;; both cases. + (let* ((last-nth (if (nth 9 mount-info) 9 8)) + (mount-spec (nth 1 (nth last-nth elt))) (method (dbus-byte-array-to-string (cadr (assoc "type" mount-spec)))) (user (dbus-byte-array-to-string @@ -950,7 +956,8 @@ ADDRESS can have the form \"xx:xx:xx:xx:xx:xx\" or \"[xx:xx:xx:xx:xx:xx]\"." (string-equal host (tramp-file-name-host vec))) (tramp-set-file-property vec "/" "fuse-mountpoint" - (file-name-nondirectory (dbus-byte-array-to-string (nth 8 elt)))) + (file-name-nondirectory + (dbus-byte-array-to-string (nth (1- last-nth) elt)))) (throw 'mounted t)))))) (defun tramp-gvfs-mount-spec (vec) -- 2.39.2