Fix regression in erc-keep-place-indicator-mode

* lisp/erc/erc-goodies.el (erc-keep-place): Revert portion of
65735efdca "Improve multi-window erc-keep-place-indicator-mode" that
skipped modifying `window-prev-buffers' when the indicator's minor
mode was enabled.
* test/lisp/erc/erc-scenarios-keep-place-indicator.el: Modify test to
assert that point's place is preserved after switching away from a
buffer with the indicator enabled.
* test/lisp/erc/resources/keep-place/follow.eld: Update.
This feature was originally introduced by bug#59943.
This commit is contained in:
F. Jason Park 2023-12-30 17:09:17 -08:00
parent 91f316d293
commit 4eda77ed33
3 changed files with 14 additions and 3 deletions

View file

@ -471,8 +471,7 @@ For use with `keep-place-indicator' module."
;; if `switch-to-buffer-preserve-window-point' is set,
;; we cannot rely on point being saved, and must commit
;; it to window-prev-buffers.
(when (and switch-to-buffer-preserve-window-point
(not erc-keep-place-indicator-mode))
(when switch-to-buffer-preserve-window-point
(dolist (frame (frame-list))
(walk-window-tree
(lambda (window)

View file

@ -107,6 +107,7 @@
(switch-to-buffer "#spam") ; lower follows, speaks to sync
(erc-scenarios-common-say "two")
(funcall expect 10 "<bob> Cause they take")
(goto-char (point-max))
;; Upper switches back first, finds indicator gone.
(other-window 1)
@ -126,7 +127,13 @@
(should (looking-back (rx "you can cog")))
(should (= (pos-bol) (window-start)))
(should (= (overlay-start erc--keep-place-indicator-overlay)
(pos-bol))))))
(pos-bol)))))
(ert-info ("description")
(erc-send-input-line "#spam" "three")
(save-excursion (erc-d-t-search-for 10 "Ready"))
(switch-to-buffer "#spam")
(should (< (point) erc-input-marker))))
(erc-keep-place-mode -1)
(erc-scrolltobottom-mode -1)))

View file

@ -71,3 +71,8 @@
(0.03 ":bob!~u@2q6ysndq32az6.irc PRIVMSG #chan :alice: No egma, no riddle, no l'envoy; no salve in the mail, sir. O! sir, plantain, a plain plantain: no l'envoy, no l'envoy: no salve, sir, but a plantain.")
(0.03 ":alice!~u@2q6ysndq32az6.irc PRIVMSG #chan :Signior Iachimo will not from it. Pray, let us follow 'em."))
((privmsg 10 "PRIVMSG #spam :three")
;; Third check point.
(0.01 ":bob!~u@2q6ysndq32az6.irc PRIVMSG #spam :Moved.")
(0.01 ":bob!~u@2q6ysndq32az6.irc PRIVMSG #chan :Ready."))