Mercurial > emacs
changeset 109626:1d90000011f0
* net/tramp.el (tramp-handle-dired-uncache): Flush directory
cache, not only file cache.
(tramp-process-sentinel): New defun.
(tramp-handle-start-file-process): Use it, in order to invalidate
file caches.
author | Michael Albinus <michael.albinus@gmx.de> |
---|---|
date | Thu, 05 Aug 2010 10:15:22 +0200 |
parents | 0447f8223078 |
children | fe57b65085f9 |
files | lisp/ChangeLog lisp/net/tramp.el |
diffstat | 2 files changed, 23 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu Aug 05 17:18:55 2010 +1200 +++ b/lisp/ChangeLog Thu Aug 05 10:15:22 2010 +0200 @@ -1,3 +1,11 @@ +2010-08-05 Michael Albinus <michael.albinus@gmx.de> + + * net/tramp.el (tramp-handle-dired-uncache): Flush directory + cache, not only file cache. + (tramp-process-sentinel): New defun. + (tramp-handle-start-file-process): Use it, in order to invalidate + file caches. + 2010-08-03 Leo <sdl.web@gmail.com> * server.el (server-start): Simplify loop.
--- a/lisp/net/tramp.el Thu Aug 05 17:18:55 2010 +1200 +++ b/lisp/net/tramp.el Thu Aug 05 10:15:22 2010 +0200 @@ -4234,7 +4234,7 @@ ;; DIR-P is valid for XEmacs only. (with-parsed-tramp-file-name (if (or dir-p (file-directory-p dir)) dir (file-name-directory dir)) nil - (tramp-flush-file-property v localname))) + (tramp-flush-directory-property v localname))) ;; Pacify byte-compiler. The function is needed on XEmacs only. I'm ;; not sure at all that this is the right way to do it, but let's hope @@ -4503,6 +4503,14 @@ (with-parsed-tramp-file-name default-directory nil (tramp-find-executable v command (tramp-get-remote-path v) t))) +(defun tramp-process-sentinel (proc event) + "Flush file caches." + (unless (memq (process-status proc) '(run open)) + (with-current-buffer (process-buffer proc) + (with-parsed-tramp-file-name default-directory nil + (tramp-message v 5 "Sentinel called: `%s' `%s'" proc event) + (tramp-flush-directory-property v ""))))) + ;; We use BUFFER also as connection buffer during setup. Because of ;; this, its original contents must be saved, and restored once ;; connection has been setup. @@ -4546,11 +4554,12 @@ (unless (process-get (tramp-get-connection-process v) 'remote-tty) (tramp-error v 'file-error "pty association is not supported for `%s'" name))) - ;; Set query flag for this process. - (tramp-set-process-query-on-exit-flag - (tramp-get-connection-process v) t) - ;; Return process. - (tramp-get-connection-process v)) + (let ((p (tramp-get-connection-process v))) + ;; Set sentinel and query flag for this process. + (set-process-sentinel p 'tramp-process-sentinel) + (tramp-set-process-query-on-exit-flag p t) + ;; Return process. + p)) ;; Save exit. (with-current-buffer (tramp-get-connection-buffer v) (if (string-match tramp-temp-buffer-name (buffer-name))