diff options
| author | F. Jason Park | 2022-11-18 22:42:15 -0800 |
|---|---|---|
| committer | Amin Bandali | 2022-11-23 19:55:39 -0500 |
| commit | dc6ff142bc1c1a8596436e08ddbccb39d8fdcf39 (patch) | |
| tree | cbb59b7d77359ec0abd615c03634d1424a2d56d1 | |
| parent | da30a4908ec1482c6d86150a197655fb99f8d68a (diff) | |
| download | emacs-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.el | 17 | ||||
| -rw-r--r-- | 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 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. |
| 316 | This is for the benefit of local modules and `erc-mode-hook' | ||
| 317 | members so they can access buffer-local data from the previous | ||
| 318 | session when reconnecting. Once `erc-reuse-buffers' is retired | ||
| 319 | and 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) |