summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorMichael Albinus <michael.albinus@gmx.de>2023-05-29 11:22:54 +0200
committerMichael Albinus <michael.albinus@gmx.de>2023-05-29 11:22:54 +0200
commit53dc7bec8303584772e0922acb64aa6e1625b556 (patch)
tree4bccc613a08f6fc426dcc85a30423a3d10ef40d0 /lisp
parent3f4415256793ea0bdb99f8a67f795e68676b6be1 (diff)
downloademacs-53dc7bec8303584772e0922acb64aa6e1625b556.tar.gz
emacs-53dc7bec8303584772e0922acb64aa6e1625b556.tar.bz2
emacs-53dc7bec8303584772e0922acb64aa6e1625b556.zip
Fix regression when saving tramp-default-proxies-alist (Do not merge)
* lisp/net/tramp.el (tramp-add-hops): Suppress `signal-hook-function'. Save `tramp-default-proxies-alist' only when changed.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/net/tramp.el42
1 files changed, 23 insertions, 19 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 9f868ccdaa0..7df455954d8 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -4624,25 +4624,29 @@ Do not set it manually, it is used buffer-local in `tramp-get-lock-pid'.")
"Add ad-hoc proxy definitions to `tramp-default-proxies-alist'."
(when-let ((hops (tramp-file-name-hop vec))
(item vec))
- (dolist (proxy (reverse (split-string hops tramp-postfix-hop-regexp 'omit)))
- (let* ((host-port (tramp-file-name-host-port item))
- (user-domain (tramp-file-name-user-domain item))
- (proxy (concat
- tramp-prefix-format proxy tramp-postfix-host-format))
- (entry
- (list (and (stringp host-port)
- (tramp-compat-rx bol (literal host-port) eol))
- (and (stringp user-domain)
- (tramp-compat-rx bol (literal user-domain) eol))
- (propertize proxy 'tramp-ad-hoc t))))
- (tramp-message vec 5 "Add %S to `tramp-default-proxies-alist'" entry)
- ;; Add the hop.
- (add-to-list 'tramp-default-proxies-alist entry)
- (setq item (tramp-dissect-file-name proxy))))
- ;; Save the new value.
- (when tramp-save-ad-hoc-proxies
- (customize-save-variable
- 'tramp-default-proxies-alist tramp-default-proxies-alist))))
+ (let (signal-hook-function changed)
+ (dolist
+ (proxy (reverse (split-string hops tramp-postfix-hop-regexp 'omit)))
+ (let* ((host-port (tramp-file-name-host-port item))
+ (user-domain (tramp-file-name-user-domain item))
+ (proxy (concat
+ tramp-prefix-format proxy tramp-postfix-host-format))
+ (entry
+ (list (and (stringp host-port)
+ (tramp-compat-rx bol (literal host-port) eol))
+ (and (stringp user-domain)
+ (tramp-compat-rx bol (literal user-domain) eol))
+ (propertize proxy 'tramp-ad-hoc t))))
+ ;; Add the hop.
+ (unless (member entry tramp-default-proxies-alist)
+ (tramp-message vec 5 "Add %S to `tramp-default-proxies-alist'" entry)
+ (add-to-list 'tramp-default-proxies-alist entry)
+ (setq changed t))
+ (setq item (tramp-dissect-file-name proxy))))
+ ;; Save the new value.
+ (when (and tramp-save-ad-hoc-proxies changed)
+ (customize-save-variable
+ 'tramp-default-proxies-alist tramp-default-proxies-alist)))))
(defun tramp-compute-multi-hops (vec)
"Expands VEC according to `tramp-default-proxies-alist'."