summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2017-01-07 18:51:30 +0100
committerMichael Albinus <michael.albinus@gmx.de>2017-01-07 18:51:30 +0100
commit77f35363fd9bb743716a196a3168fa94d896c28e (patch)
tree75f50a240bec0c6049d560d5c64f8805469a5bb3
parent75cdf429179c6459c10f15578fb32236a8821e4b (diff)
downloademacs-77f35363fd9bb743716a196a3168fa94d896c28e.tar.gz
Fix a problem with `start-file-process' in Tramp
* lisp/net/tramp-sh.el (tramp-maybe-open-connection): `start-file-process' shall work when `non-essential' is non-nil, but there is already an established connection. <https://github.com/company-mode/company-mode/issues/462>
-rw-r--r--lisp/net/tramp-sh.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index fec9f10d704..71a388767d0 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -4655,7 +4655,11 @@ connection if a previous connection has died for some reason."
;; If `non-essential' is non-nil, don't reopen a new connection.
;; This variable has been introduced with Emacs 24.1.
- (when (and (boundp 'non-essential) (symbol-value 'non-essential))
+ ;; We check this for the process related to
+ ;; `tramp-buffer-name'; otherwise `start-file-process'
+ ;; wouldn't run ever when `non-essential' is non-nil.
+ (when (and (boundp 'non-essential) (symbol-value 'non-essential)
+ (null (get-process (tramp-buffer-name vec))))
(throw 'non-essential 'non-essential))
(with-tramp-progress-reporter