]> git.eshelyaron.com Git - emacs.git/commit
Improve auto-reconnect visibility in ERC
authorF. Jason Park <jp@neverwas.me>
Thu, 27 Oct 2022 07:21:10 +0000 (00:21 -0700)
committerF. Jason Park <jp@neverwas.me>
Thu, 17 Nov 2022 05:34:36 +0000 (21:34 -0800)
commite7f2f6cd92b924ecdfcf1356560d4a168546677d
tree9c78b73432be06b9ae1c9fab27e4e29b064dd8db
parent4351fb7161f9490f21281b0b0abfd5854dc2f2ea
Improve auto-reconnect visibility in ERC

* lisp/erc/erc-backend.el (erc--server-reconnect-timer): New variable.
(erc-server-reconnect-function): New user option.
(erc-process-sentinel-2): Display time remaining until next
reconnection attempt.  Also remove condition case and move bulk of
else condition logic to `erc-schedule-reconnect'.  More importantly,
no longer set `erc--server-reconnecting here').
(erc-server-connect): Initialize `erc--server-reconnect-timer' to nil.
(erc-server-reconnect): Set `erc-server--reconnecting' here.
(erc--mode-line-process-reconnecting): New constant to store value for
"reconnect" state of `mode-line-process'.
(erc--cancel-auto-reconnect-timer): New function to cancel
auto-reconnect timer and print message.
(erc-schedule-reconnect): New function for scheduling another
reconnect attempt.

* lisp/erc/erc.el (erc-open): Only update mode line for target
buffers. For server buffers, let `erc-login' and/or process sentinels
take care of it.
(erc--cmd-reconnect, erc-cmd-RECONNECT): Rename latter to former, a
new function, but repurpose existing to recognize newly allowed
additional arguments and act accordingly.  In new internal function,
cancel an existing auto-reconnect timer, if any, before proceeding.
Defer to `erc-server-reconnect' to set `erc--server-reconnecting'.
Fix `with-suppressed-warnings' form.
(erc-update-mode-line-buffer): Show "reconnecting in Ns" for
`mode-line-process' when awaiting an automatic reconnect attempt.
(erc-message-english-reconnecting,
erc-message-english-reconnect-canceled): Add new message functions to
English catalog.

* lisp/erc/erc-pcomplete.el (pcomplete/erc-mode/RECONNECT): Perform
completion for newly subcommand-aware `erc-cmd-RECONNECT'.

* lisp/erc/erc-scenarios-base-reconnect
(erc-scenarios-base-cancel-reconnect): Add new test case for canceling
reconnect timers.  (Bug#58840.)
lisp/erc/erc-backend.el
lisp/erc/erc-pcomplete.el
lisp/erc/erc.el
test/lisp/erc/erc-scenarios-base-reconnect.el