]> git.eshelyaron.com Git - emacs.git/commitdiff
Notify broken file notification from Tramp
authorMichael Albinus <michael.albinus@gmx.de>
Sat, 4 May 2019 20:29:27 +0000 (22:29 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Sat, 4 May 2019 20:29:27 +0000 (22:29 +0200)
* lisp/net/tramp.el (tramp-file-notify-process-sentinel): New defun.

* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Set process sentinel.

lisp/net/tramp-gvfs.el
lisp/net/tramp-sh.el
lisp/net/tramp.el

index 8fea82d97c4408da2fbda54d8d593588153897df..52eaf686eaafeff78312d5c7dda551e20e9b70dc 100644 (file)
@@ -1187,6 +1187,7 @@ If FILE-SYSTEM is non-nil, return file system attributes."
        (process-put p 'adjust-window-size-function #'ignore)
        (set-process-query-on-exit-flag p nil)
        (set-process-filter p #'tramp-gvfs-monitor-process-filter)
+       (set-process-sentinel p #'tramp-file-notify-process-sentinel)
        ;; There might be an error if the monitor is not supported.
        ;; Give the filter a chance to read the output.
        (while (tramp-accept-process-output p 0))
index 37ff14a5eb27fcfcc3af8ad2e613029710ca460a..c4c439885c6109737de1fabec48a1081978d1b4d 100644 (file)
@@ -3645,6 +3645,7 @@ Fall back to normal file name handler if no Tramp handler exists."
        (process-put p 'watch-name localname)
        (set-process-query-on-exit-flag p nil)
        (set-process-filter p filter)
+       (set-process-sentinel p #'tramp-file-notify-process-sentinel)
        ;; There might be an error if the monitor is not supported.
        ;; Give the filter a chance to read the output.
        (while (tramp-accept-process-output p 0))
@@ -5957,5 +5958,7 @@ function cell is returned to be applied on a buffer."
 ;; * Implement detaching/re-attaching remote sessions.  By this, a
 ;;   session could be reused after a connection loss.  Use dtach, or
 ;;   screen, or tmux, or mosh.
+;;
+;; * Implement `:stderr' of `make-process' as pipe process.
 
 ;;; tramp-sh.el ends here
index 427b3c41e3a43bab61e44046784f2f4ce80b6136..c1fe413e368e0febec3c955d7477d3a26e54c989 100644 (file)
@@ -9,6 +9,7 @@
 ;; Package: tramp
 ;; Version: 2.4.2-pre
 ;; Package-Requires: ((emacs "24.1"))
+;; URL: https://savannah.gnu.org/projects/tramp
 
 ;; This file is part of GNU Emacs.
 
@@ -3854,6 +3855,12 @@ of."
          (concat (file-remote-p default-directory)
                  (process-get proc 'watch-name))))))
 
+(defun tramp-file-notify-process-sentinel (proc event)
+  "Call `file-notify-rm-watch'."
+  (unless (process-live-p proc)
+    (tramp-message proc 5 "Sentinel called: `%S' `%s'" proc event)
+    (file-notify-rm-watch proc)))
+
 ;;; Functions for establishing connection:
 
 ;; The following functions are actions to be taken when seeing certain