summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2019-02-06 09:07:39 +0100
committerMichael Albinus <michael.albinus@gmx.de>2019-02-06 09:07:39 +0100
commit19fbef549a94ccf733367d29438204e94a00e911 (patch)
tree10aebb1165418dc807dfbc38fab5ddf298561296 /lisp
parentd087dcf140ed1dafff4d64aee75d8becc621b848 (diff)
downloademacs-19fbef549a94ccf733367d29438204e94a00e911.tar.gz
emacs-19fbef549a94ccf733367d29438204e94a00e911.tar.bz2
emacs-19fbef549a94ccf733367d29438204e94a00e911.zip
Fix Bug#34196
* lisp/autorevert.el (auto-revert-buffers): Handle buffers with a remote default-directory only, when they are connected. (Bug#34196) * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection): Set "connected" property. * lisp/net/tramp.el (tramp-process-actions): Revert change from 2019-02-04. Bug#34196 will be solved in autorevert.el.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/autorevert.el10
-rw-r--r--lisp/net/tramp-rclone.el6
-rw-r--r--lisp/net/tramp-sudoedit.el5
-rw-r--r--lisp/net/tramp.el20
4 files changed, 26 insertions, 15 deletions
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 16a742a458f..150693baf13 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -767,6 +767,16 @@ the timer when no buffers need to be checked."
(buffer-list)
auto-revert-buffer-list))
remaining new)
+ ;; Buffers with remote contents shall be reverted only if the
+ ;; connection is established already.
+ (setq bufs (delq nil
+ (mapcar
+ (lambda (buf)
+ (with-current-buffer buf
+ (and (or (not (file-remote-p default-directory))
+ (file-remote-p default-directory nil t))
+ buf)))
+ bufs)))
;; Partition `bufs' into two halves depending on whether or not
;; the buffers are in `auto-revert-remaining-buffers'. The two
;; halves are then re-joined with the "remaining" buffers at the
diff --git a/lisp/net/tramp-rclone.el b/lisp/net/tramp-rclone.el
index 48adea06898..3a0e002bc67 100644
--- a/lisp/net/tramp-rclone.el
+++ b/lisp/net/tramp-rclone.el
@@ -568,7 +568,11 @@ connection if a previous connection has died for some reason."
;; This could be nil.
,(tramp-get-method-parameter vec 'tramp-mount-args))))
(while (not (file-exists-p (tramp-make-tramp-file-name vec 'localname)))
- (tramp-cleanup-connection vec 'keep-debug 'keep-password)))))
+ (tramp-cleanup-connection vec 'keep-debug 'keep-password))
+
+ ;; Mark it as connected.
+ (tramp-set-connection-property
+ (tramp-get-connection-process vec) "connected" t))))
;; In `tramp-check-cached-permissions', the connection properties
;; "{uid,gid}-{integer,string}" are used. We set them to proper values.
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el
index 80c63c16edb..04b0bebabd4 100644
--- a/lisp/net/tramp-sudoedit.el
+++ b/lisp/net/tramp-sudoedit.el
@@ -785,7 +785,10 @@ connection if a previous connection has died for some reason."
(set-process-query-on-exit-flag p nil)
;; Set connection-local variables.
- (tramp-set-connection-local-variables vec))
+ (tramp-set-connection-local-variables vec)
+
+ ;; Mark it as connected.
+ (tramp-set-connection-property p "connected" t))
;; In `tramp-check-cached-permissions', the connection properties
;; "{uid,gid}-{integer,string}" are used. We set them to proper values.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 82d2e5a4d34..d000bbe3d65 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -4060,23 +4060,17 @@ performed successfully. Any other value means an error."
(save-restriction
(with-tramp-progress-reporter
proc 3 "Waiting for prompts from remote shell"
- ;; `global-auto-revert-mode' could activate remote operations
- ;; while we aren't ready. We disable it temporarily.
- (let ((garm (bound-and-true-p global-auto-revert-mode))
- exit)
- (when garm (global-auto-revert-mode -1))
- (unwind-protect
- (if timeout
- (with-timeout (timeout (setq exit 'timeout))
- (while (not exit)
- (setq exit
- (catch 'tramp-action
- (tramp-process-one-action proc vec actions)))))
+ (let (exit)
+ (if timeout
+ (with-timeout (timeout (setq exit 'timeout))
(while (not exit)
(setq exit
(catch 'tramp-action
(tramp-process-one-action proc vec actions)))))
- (when garm (global-auto-revert-mode)))
+ (while (not exit)
+ (setq exit
+ (catch 'tramp-action
+ (tramp-process-one-action proc vec actions)))))
(with-current-buffer (tramp-get-connection-buffer vec)
(widen)
(tramp-message vec 6 "\n%s" (buffer-string)))