aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorF. Jason Park2022-11-18 22:42:15 -0800
committerAmin Bandali2022-11-23 19:55:39 -0500
commitdc6ff142bc1c1a8596436e08ddbccb39d8fdcf39 (patch)
treecbb59b7d77359ec0abd615c03634d1424a2d56d1
parentda30a4908ec1482c6d86150a197655fb99f8d68a (diff)
downloademacs-dc6ff142bc1c1a8596436e08ddbccb39d8fdcf39.tar.gz
emacs-dc6ff142bc1c1a8596436e08ddbccb39d8fdcf39.zip
Make erc--server-reconnecting non-buffer-local
* lisp/erc/erc-backend.el (erc--server-reconnecting): Mention expected non-nil value type in doc string. (erc-server-connect): Don't set `erc--server-reconnecting'. (erc-server--reconnect): Let-bind `erc--server-reconnecting' instead of setting it locally in the server buffer. Set it to an alist containing the current buffer's local variables. (erc-process-sentinel-2): Don't set `erc--server-reconnect'. * lisp/erc/erc.el (erc--cmd-reconnect): Clean up some assertions. (Bug#57955.)
-rw-r--r--lisp/erc/erc-backend.el17
-rw-r--r--lisp/erc/erc.el6
2 files changed, 12 insertions, 11 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index f899b866f04..30b53dfd8ed 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -311,8 +311,13 @@ current IRC process is still alive.")
311(make-obsolete-variable 'erc-server-reconnecting 311(make-obsolete-variable 'erc-server-reconnecting
312 "see `erc--server-reconnecting'" "29.1") 312 "see `erc--server-reconnecting'" "29.1")
313 313
314(defvar-local erc--server-reconnecting nil 314(defvar erc--server-reconnecting nil
315 "Non-nil when reconnecting.") 315 "An alist of buffer-local vars and their values when reconnecting.
316This is for the benefit of local modules and `erc-mode-hook'
317members so they can access buffer-local data from the previous
318session when reconnecting. Once `erc-reuse-buffers' is retired
319and fully removed, modules can switch to leveraging the
320`permanent-local' property instead.")
316 321
317(defvar-local erc-server-timed-out nil 322(defvar-local erc-server-timed-out nil
318 "Non-nil if the IRC server failed to respond to a ping.") 323 "Non-nil if the IRC server failed to respond to a ping.")
@@ -664,7 +669,6 @@ TLS (see `erc-session-client-certificate' for more details)."
664 (setq erc-server-process process) 669 (setq erc-server-process process)
665 (setq erc-server-quitting nil) 670 (setq erc-server-quitting nil)
666 (setq erc-server-reconnecting nil 671 (setq erc-server-reconnecting nil
667 erc--server-reconnecting nil
668 erc--server-reconnect-timer nil) 672 erc--server-reconnect-timer nil)
669 (setq erc-server-timed-out nil) 673 (setq erc-server-timed-out nil)
670 (setq erc-server-banned nil) 674 (setq erc-server-banned nil)
@@ -706,11 +710,11 @@ Make sure you are in an ERC buffer when running this."
706 (with-current-buffer buffer 710 (with-current-buffer buffer
707 (erc-update-mode-line) 711 (erc-update-mode-line)
708 (erc-set-active-buffer (current-buffer)) 712 (erc-set-active-buffer (current-buffer))
709 (setq erc--server-reconnecting t)
710 (setq erc-server-last-sent-time 0) 713 (setq erc-server-last-sent-time 0)
711 (setq erc-server-lines-sent 0) 714 (setq erc-server-lines-sent 0)
712 (let ((erc-server-connect-function (or erc-session-connector 715 (let ((erc-server-connect-function (or erc-session-connector
713 #'erc-open-network-stream))) 716 #'erc-open-network-stream))
717 (erc--server-reconnecting (buffer-local-variables)))
714 (erc-open erc-session-server erc-session-port erc-server-current-nick 718 (erc-open erc-session-server erc-session-port erc-server-current-nick
715 erc-session-user-full-name t erc-session-password 719 erc-session-user-full-name t erc-session-password
716 nil nil nil erc-session-client-certificate 720 nil nil nil erc-session-client-certificate
@@ -824,8 +828,7 @@ When `erc-server-reconnect-attempts' is a number, increment
824 (if (not reconnect-p) 828 (if (not reconnect-p)
825 ;; terminate, do not reconnect 829 ;; terminate, do not reconnect
826 (progn 830 (progn
827 (setq erc--server-reconnecting nil 831 (setq erc--server-reconnect-timer nil)
828 erc--server-reconnect-timer nil)
829 (erc-display-message nil 'error (current-buffer) 832 (erc-display-message nil 'error (current-buffer)
830 'terminated ?e event) 833 'terminated ?e event)
831 (set-buffer-modified-p nil)) 834 (set-buffer-modified-p nil))
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 1052c8c4c03..352f72e6178 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -3834,10 +3834,8 @@ the message given by REASON."
3834 (with-suppressed-warnings ((obsolete erc-server-reconnecting) 3834 (with-suppressed-warnings ((obsolete erc-server-reconnecting)
3835 (obsolete erc-reuse-buffers)) 3835 (obsolete erc-reuse-buffers))
3836 (if erc-reuse-buffers 3836 (if erc-reuse-buffers
3837 (progn (cl-assert (not erc--server-reconnecting)) 3837 (cl-assert (not erc-server-reconnecting))
3838 (cl-assert (not erc-server-reconnecting))) 3838 (setq erc-server-reconnecting nil)))))
3839 (setq erc--server-reconnecting nil
3840 erc-server-reconnecting nil)))))
3841 t) 3839 t)
3842 3840
3843(defun erc-cmd-RECONNECT (&rest args) 3841(defun erc-cmd-RECONNECT (&rest args)