From: Michael Albinus Date: Wed, 1 Jul 2009 15:21:45 +0000 (+0000) Subject: * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Add X-Git-Tag: emacs-pretest-23.1.90~2357 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=99278f8a619664e55e814e6a5c5b6d3898b61214;p=emacs.git * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Add handler for `process-file', `shell-command' and `start-file-process'. (tramp-gvfs-handle-shell-command) (tramp-gvfs-handle-start-file-process) (tramp-gvfs-handle-process-file): New defuns. (tramp-synce-list-devices): Simplify check for existence of property. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c2d602380c1..068e8532dc5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2009-07-01 Michael Albinus + + * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Add + handler for `process-file', `shell-command' and + `start-file-process'. + (tramp-gvfs-handle-shell-command) + (tramp-gvfs-handle-start-file-process) + (tramp-gvfs-handle-process-file): New defuns. + (tramp-synce-list-devices): Simplify check for existence of + property. + 2009-07-01 Jan Djärv * startup.el (command-line-x-option-alist): Add -mm and --maximized. diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 3737628d2c9..7ac652eb0e9 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -361,11 +361,11 @@ Every entry is a list (NAME ADDRESS).") '( (access-file . ignore) (add-name-to-file . tramp-gvfs-handle-copy-file) - ;; `byte-compiler-base-file-name' performed by default handler + ;; `byte-compiler-base-file-name' performed by default handler. (copy-file . tramp-gvfs-handle-copy-file) (delete-directory . tramp-gvfs-handle-delete-directory) (delete-file . tramp-gvfs-handle-delete-file) - ;; `diff-latest-backup-file' performed by default handler + ;; `diff-latest-backup-file' performed by default handler. (directory-file-name . tramp-handle-directory-file-name) (directory-files . tramp-gvfs-handle-directory-files) (directory-files-and-attributes @@ -373,41 +373,44 @@ Every entry is a list (NAME ADDRESS).") (dired-call-process . ignore) (dired-compress-file . ignore) (dired-uncache . tramp-handle-dired-uncache) + ;; `executable-find' is not official yet. performed by default handler. (expand-file-name . tramp-gvfs-handle-expand-file-name) - ;; `file-accessible-directory-p' performed by default handler + ;; `file-accessible-directory-p' performed by default handler. (file-attributes . tramp-gvfs-handle-file-attributes) (file-directory-p . tramp-smb-handle-file-directory-p) (file-executable-p . tramp-gvfs-handle-file-executable-p) (file-exists-p . tramp-gvfs-handle-file-exists-p) (file-local-copy . tramp-gvfs-handle-file-local-copy) (file-remote-p . tramp-handle-file-remote-p) - ;; `file-modes' performed by default handler + ;; `file-modes' performed by default handler. (file-name-all-completions . tramp-gvfs-handle-file-name-all-completions) (file-name-as-directory . tramp-handle-file-name-as-directory) (file-name-completion . tramp-handle-file-name-completion) (file-name-directory . tramp-handle-file-name-directory) (file-name-nondirectory . tramp-handle-file-name-nondirectory) - ;; `file-name-sans-versions' performed by default handler + ;; `file-name-sans-versions' performed by default handler. (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) (file-ownership-preserved-p . ignore) (file-readable-p . tramp-gvfs-handle-file-readable-p) (file-regular-p . tramp-handle-file-regular-p) (file-symlink-p . tramp-handle-file-symlink-p) - ;; `file-truename' performed by default handler + ;; `file-truename' performed by default handler. (file-writable-p . tramp-gvfs-handle-file-writable-p) (find-backup-file-name . tramp-handle-find-backup-file-name) - ;; `find-file-noselect' performed by default handler - ;; `get-file-buffer' performed by default handler + ;; `find-file-noselect' performed by default handler. + ;; `get-file-buffer' performed by default handler. (insert-directory . tramp-gvfs-handle-insert-directory) (insert-file-contents . tramp-gvfs-handle-insert-file-contents) (load . tramp-handle-load) (make-directory . tramp-gvfs-handle-make-directory) (make-directory-internal . ignore) (make-symbolic-link . ignore) + (process-file . tramp-gvfs-handle-process-file) (rename-file . tramp-gvfs-handle-rename-file) (set-file-modes . tramp-gvfs-handle-set-file-modes) (set-visited-file-modtime . tramp-gvfs-handle-set-visited-file-modtime) - (shell-command . ignore) + (shell-command . tramp-gvfs-handle-shell-command) + (start-file-process . tramp-gvfs-handle-start-file-process) (substitute-in-file-name . tramp-handle-substitute-in-file-name) (unhandled-file-name-directory . tramp-handle-unhandled-file-name-directory) (vc-registered . ignore) @@ -649,6 +652,12 @@ is no information where to trace the message.") (tramp-gvfs-url-file-name dir))) (signal (car err) (cdr err))))))) +(defun tramp-gvfs-handle-process-file + (program &optional infile destination display &rest args) + "Like `process-file' for Tramp files." + (let ((default-directory (tramp-gvfs-fuse-file-name default-directory))) + (apply 'call-process program infile destination display args))) + (defun tramp-gvfs-handle-rename-file (filename newname &optional ok-if-already-exists) "Like `rename-file' for Tramp files." @@ -671,6 +680,17 @@ is no information where to trace the message.") (let ((buffer-file-name (tramp-gvfs-fuse-file-name (buffer-file-name)))) (set-visited-file-modtime time-list))) +(defun tramp-gvfs-handle-shell-command + (command &optional output-buffer error-buffer) + "Like `shell-command' for Tramp files." + (let ((default-directory (tramp-gvfs-fuse-file-name default-directory))) + (shell-command command output-buffer error-buffer))) + +(defun tramp-gvfs-handle-start-file-process (name buffer program &rest args) + "Like `start-file-process' for Tramp files." + (let ((default-directory (tramp-gvfs-fuse-file-name default-directory))) + (apply 'start-process name buffer program args))) + (defun tramp-gvfs-handle-verify-visited-file-modtime (buf) "Like `verify-visited-file-modtime' for Tramp files." (with-current-buffer buf @@ -1083,7 +1103,7 @@ connection if a previous connection has died for some reason." ;; D-Bus BLUEZ functions. (defun tramp-bluez-list-devices () - "Returns all discovered bluetooth devices as list. + "Return all discovered bluetooth devices as list. Every entry is a list (NAME ADDRESS). If `tramp-bluez-discover-devices-timeout' is an integer, and the last @@ -1197,19 +1217,16 @@ be used." ;; D-Bus SYNCE functions. (defun tramp-synce-list-devices () - "Returns all discovered synce devices as list. + "Return all discovered synce devices as list. They are retrieved from the hal daemon." (let (tramp-synce-devices) (dolist (device (with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t :system tramp-hal-service tramp-hal-path-manager tramp-hal-interface-manager "GetAllDevices")) - (when (and (with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t - :system tramp-hal-service device tramp-hal-interface-device - "PropertyExists" "sync.plugin") - (with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t - :system tramp-hal-service device tramp-hal-interface-device - "PropertyExists" "pda.pocketpc.name")) + (when (with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t + :system tramp-hal-service device tramp-hal-interface-device + "PropertyExists" "sync.plugin") (add-to-list 'tramp-synce-devices (with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t @@ -1232,8 +1249,6 @@ They are retrieved from the hal daemon." ;;; TODO: -;; * process-file and start-file-process on the local machine, but -;; with remote files. ;; * Host name completion via smb-server or smb-network. ;; * Check, how two shares of the same SMB server can be mounted in ;; parallel.