emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 37a3b4e: Fix erc keep-place module with new defau


From: Martin Rudalics
Subject: [Emacs-diffs] emacs-26 37a3b4e: Fix erc keep-place module with new defaults (Bug#29111)
Date: Tue, 21 Nov 2017 02:32:27 -0500 (EST)

branch: emacs-26
commit 37a3b4ea40095ea1d47ed61d6c0c6f9d32f79e60
Author: Jay Kamat <address@hidden>
Commit: Martin Rudalics <address@hidden>

    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
---
 lisp/erc/erc-goodies.el | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index a655d48..8906da1 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]