[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master dc6ff142bc 3/8: Make erc--server-reconnecting non-buffer-local
From: |
Amin Bandali |
Subject: |
master dc6ff142bc 3/8: Make erc--server-reconnecting non-buffer-local |
Date: |
Wed, 23 Nov 2022 21:24:34 -0500 (EST) |
branch: master
commit dc6ff142bc1c1a8596436e08ddbccb39d8fdcf39
Author: F. Jason Park <jp@neverwas.me>
Commit: Amin Bandali <bandali@gnu.org>
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.)
---
lisp/erc/erc-backend.el | 17 ++++++++++-------
lisp/erc/erc.el | 6 ++----
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index f899b866f0..30b53dfd8e 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -311,8 +311,13 @@ current IRC process is still alive.")
(make-obsolete-variable 'erc-server-reconnecting
"see `erc--server-reconnecting'" "29.1")
-(defvar-local erc--server-reconnecting nil
- "Non-nil when reconnecting.")
+(defvar erc--server-reconnecting nil
+ "An alist of buffer-local vars and their values when reconnecting.
+This is for the benefit of local modules and `erc-mode-hook'
+members so they can access buffer-local data from the previous
+session when reconnecting. Once `erc-reuse-buffers' is retired
+and fully removed, modules can switch to leveraging the
+`permanent-local' property instead.")
(defvar-local erc-server-timed-out nil
"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)."
(setq erc-server-process process)
(setq erc-server-quitting nil)
(setq erc-server-reconnecting nil
- erc--server-reconnecting nil
erc--server-reconnect-timer nil)
(setq erc-server-timed-out nil)
(setq erc-server-banned nil)
@@ -706,11 +710,11 @@ Make sure you are in an ERC buffer when running this."
(with-current-buffer buffer
(erc-update-mode-line)
(erc-set-active-buffer (current-buffer))
- (setq erc--server-reconnecting t)
(setq erc-server-last-sent-time 0)
(setq erc-server-lines-sent 0)
(let ((erc-server-connect-function (or erc-session-connector
- #'erc-open-network-stream)))
+ #'erc-open-network-stream))
+ (erc--server-reconnecting (buffer-local-variables)))
(erc-open erc-session-server erc-session-port erc-server-current-nick
erc-session-user-full-name t erc-session-password
nil nil nil erc-session-client-certificate
@@ -824,8 +828,7 @@ When `erc-server-reconnect-attempts' is a number, increment
(if (not reconnect-p)
;; terminate, do not reconnect
(progn
- (setq erc--server-reconnecting nil
- erc--server-reconnect-timer nil)
+ (setq erc--server-reconnect-timer nil)
(erc-display-message nil 'error (current-buffer)
'terminated ?e event)
(set-buffer-modified-p nil))
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 1052c8c4c0..352f72e617 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -3834,10 +3834,8 @@ the message given by REASON."
(with-suppressed-warnings ((obsolete erc-server-reconnecting)
(obsolete erc-reuse-buffers))
(if erc-reuse-buffers
- (progn (cl-assert (not erc--server-reconnecting))
- (cl-assert (not erc-server-reconnecting)))
- (setq erc--server-reconnecting nil
- erc-server-reconnecting nil)))))
+ (cl-assert (not erc-server-reconnecting))
+ (setq erc-server-reconnecting nil)))))
t)
(defun erc-cmd-RECONNECT (&rest args)
- master updated (d47e05219f -> f8b410f4a1), Amin Bandali, 2022/11/23
- master dc6ff142bc 3/8: Make erc--server-reconnecting non-buffer-local,
Amin Bandali <=
- master 5258f36168 7/8: Accept functions in place of passwords in ERC, Amin Bandali, 2022/11/23
- master 71397175aa 1/8: Add GS2 authorization to sasl-scram-rfc, Amin Bandali, 2022/11/23
- master ae254a65cd 5/8: Call erc-login indirectly via new generic wrapper, Amin Bandali, 2022/11/23
- master ed8862c404 6/8: Add non-IRCv3 SASL module to ERC, Amin Bandali, 2022/11/23
- master da30a4908e 2/8: Don't set erc-networks--id until network is known, Amin Bandali, 2022/11/23
- master f8b410f4a1 8/8: Add test scenarios for local ERC modules, Amin Bandali, 2022/11/23
- master 4c4936fab2 4/8: Support local ERC modules in erc-mode buffers, Amin Bandali, 2022/11/23