Fix erc keep-place module with new defaults (Bug#29111)

* lisp/erc/erc-goodies.el (erc-keep-place): Allow erc
keep-place to continue working with
switch-to-buffer-preserve-window-point set to t, the new default.

Copyright-paperwork-exempt: yes
This commit is contained in:
Jay Kamat 2017-11-21 08:31:40 +01:00 committed by Martin Rudalics
parent 6c312605bf
commit 37a3b4ea40

View file

@ -147,7 +147,19 @@ Put this function on `erc-insert-post-hook' and/or `erc-send-post-hook'."
(>= (point) erc-insert-marker))
(deactivate-mark)
(goto-char (erc-beg-of-input-line))
(forward-line -1)))
(forward-line -1)
;; 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 switch-to-buffer-preserve-window-point
(dolist (frame (frame-list))
(walk-window-tree
(lambda (window)
(let ((prev (assq (current-buffer)
(window-prev-buffers window))))
(when prev
(setf (nth 2 prev) (point-marker)))))
frame nil 'nominibuf)))))
;;; Distinguish non-commands
(defvar erc-noncommands-list '(erc-cmd-ME