emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 19fbef5: Fix Bug#34196


From: Michael Albinus
Subject: [Emacs-diffs] master 19fbef5: Fix Bug#34196
Date: Wed, 6 Feb 2019 03:07:49 -0500 (EST)

branch: master
commit 19fbef549a94ccf733367d29438204e94a00e911
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    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.
---
 lisp/autorevert.el         | 10 ++++++++++
 lisp/net/tramp-rclone.el   |  6 +++++-
 lisp/net/tramp-sudoedit.el |  5 ++++-
 lisp/net/tramp.el          | 20 +++++++-------------
 4 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index 16a742a..150693b 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 48adea0..3a0e002 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 80c63c1..04b0beb 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 82d2e5a..d000bbe 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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]