]> git.eshelyaron.com Git - emacs.git/commit
Preserve prompt in erc-cmd-CLEAR
authorF. Jason Park <jp@neverwas.me>
Mon, 29 May 2023 04:16:39 +0000 (21:16 -0700)
committerF. Jason Park <jp@neverwas.me>
Tue, 30 May 2023 04:46:23 +0000 (21:46 -0700)
commit31a80f61ec03bcbb79720c0dc640272aba160865
tree5695dfd273d872e84cee6cdcb2d570373fb08966
parent4f93c52f7fd1b7c5f75a0d049e5a1015a268265a
Preserve prompt in erc-cmd-CLEAR

* etc/ERC-NEWS: Mention behavioral changes to functionality provided
by the `truncate' and `log' modules and also the "/CLEAR" command.
* lisp/erc/erc-log.el (erc-truncate-buffer-on-save): Deprecate option
because three's a crowd, and ERC already has a dedicated module as
well as a slash command for this purpose.  And although this commit
restores functionality, this option has been unusable since at least
the release of ERC 5.5, with no known complaints received thus far.
Also, the doc string of `erc-save-buffer-in-logs' makes no mention of
this feature WRT interactive invocations or otherwise.
(erc-log-mode, erc-log-enable, erc-log-disable): Subscribe to
new internal hook `erc--pre-clear-functions'.
(erc-log--save-in-progress-p): New variable to help restore
`erc-truncate-buffer-on-save' and promote code reuse.
(erc-logging-enabled): Guard with `erc-log--saved-in-progress-p'.
(erc-save-buffer-in-logs): Overload `buffer' parameter to allow
various hooks to supply a non-buffer as well.  Warn when people use
`erc-truncate-buffer-on-save', which is now deprecated.
* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable,
erc-stamp-disable): Subscribe to `erc--pre-clear-functions'.
(erc-stamp--update-saved-position): New function for updating
last-logged marker on `erc-stamp--insert-date-function'.
(erc-stamp--reset-on-clear): New function to forget last inserted
stamps when truncating.
* lisp/erc/erc-truncate.el (erc-truncate-mode, erc-truncate-enable,
erc-truncate-disable): Use `erc-insert-done-hook' instead of
`erc-insert-post-hook', as implicitly suggested by an ancient comment,
which ponders whether truncating the buffer at the insertion phase may
be harmful to other hook members.
(erc-truncate-buffer-to-size): Set truncation boundary at message
break instead of line break.  Run `erc--pre-clear-functions'.
(erc-truncate-buffer): Save excursion.  This should probably be
handled by `erc-truncate-buffer-to-size' instead, but that's
likelier to cause breakage in third-party code.
* lisp/erc/erc.el (erc--pre-clear-functions): New internal hook.
(erc-cmd-CLEAR): Run `erc--pre-clear-functions' before clearing, and
don't blow away prompt.  The latter was a regression caused by
05f6fdb9e78 "Preserve ERC prompt and its bounding markers".
* test/lisp/erc/erc-scenarios-log.el: New file.  (Bug#60936)
etc/ERC-NEWS
lisp/erc/erc-log.el
lisp/erc/erc-stamp.el
lisp/erc/erc-truncate.el
lisp/erc/erc.el
test/lisp/erc/erc-scenarios-log.el [new file with mode: 0644]