]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix erc keep-place module with new defaults (Bug#29111)
authorJay Kamat <jaygkamat@gmail.com>
Tue, 21 Nov 2017 07:31:40 +0000 (08:31 +0100)
committerMartin Rudalics <rudalics@gmx.at>
Tue, 21 Nov 2017 07:31:40 +0000 (08:31 +0100)
* 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

lisp/erc/erc-goodies.el

index a655d48a6acf1335a366f971812146f740ab788d..8906da1e47d295e7c40463aa17e333d224a74a03 100644 (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