branch: elpa/helm commit 6b95028425b5ac7567a046e762d2df2b6c443132 Author: Thierry Volpiatto <thie...@posteo.net> Commit: Thierry Volpiatto <thie...@posteo.net>
Remove all remote watchers and entries in helm-ff-* caches when tramp-cleanup-connection run manually or after timeout. --- helm-files.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/helm-files.el b/helm-files.el index d61ccce5e4..4c49892bef 100644 --- a/helm-files.el +++ b/helm-files.el @@ -3626,6 +3626,22 @@ in cache." (file-notify-rm-watch (gethash directory helm-ff--file-notify-watchers)) (remhash directory helm-ff--file-notify-watchers))))) +(defun helm-ff-tramp-cleanup-hook (vec) + "Remove remote directories related to VEC in helm-ff* caches. +Remove as well all related file-notify watchers. + +This is meant to run in `tramp-cleanup-connection-hook'." + (cl-loop for key being the hash-keys in helm-ff--list-directory-cache + when (equal (file-remote-p key 'method) (cadr vec)) + do (remhash key helm-ff--list-directory-cache)) + (cl-loop for key being the hash-keys in helm-ff--file-notify-watchers + when (equal (file-remote-p key 'method) (cadr vec)) + do (progn + (file-notify-rm-watch + (gethash key helm-ff--file-notify-watchers)) + (remhash key helm-ff--file-notify-watchers)))) +(add-hook 'tramp-cleanup-connection-hook #'helm-ff-tramp-cleanup-hook) + (defun helm-ff-handle-backslash (fname) ;; Allow creation of filenames containing a backslash. (cl-loop with bad = '((92 . ""))