]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/net/tramp.el (tramp-accept-process-output): Propagate `quit' signal.
authorMichael Albinus <michael.albinus@gmx.de>
Fri, 13 Mar 2020 09:54:56 +0000 (10:54 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Fri, 13 Mar 2020 09:54:56 +0000 (10:54 +0100)
lisp/net/tramp.el

index c498f8c25e78b992fdc0a4d6f6f5acb93c4893f4..3ce2225cb84a541202fe399411c9da0a1a882037 100644 (file)
@@ -4195,18 +4195,21 @@ performed successfully.  Any other value means an error."
 (defun tramp-accept-process-output (proc &optional timeout)
   "Like `accept-process-output' for Tramp processes.
 This is needed in order to hide `last-coding-system-used', which is set
-for process communication also."
+for process communication also.
+If the user quits via `C-g', it is propagated up to `tramp-file-name-handler'."
   (with-current-buffer (process-buffer proc)
     (let ((inhibit-read-only t)
          last-coding-system-used
          result)
-      ;; JUST-THIS-ONE is set due to Bug#12145.
-      (tramp-message
-       proc 10 "%s %s %s %s\n%s"
-       proc timeout (process-status proc)
-       (with-local-quit
-        (setq result (accept-process-output proc timeout nil t)))
-       (buffer-string))
+      ;; JUST-THIS-ONE is set due to Bug#12145.  `with-local-quit'
+      ;; returns t in order to report success.
+      (if (with-local-quit
+           (setq result (accept-process-output proc timeout nil t)) t)
+         (tramp-message
+          proc 10 "%s %s %s %s\n%s"
+          proc timeout (process-status proc) result (buffer-string))
+       ;; Propagate quit.
+       (keyboard-quit))
       result)))
 
 (defun tramp-search-regexp (regexp)