From ef7a6eec20a59b338e18aea4f8a805dcfc8dfc96 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 20 May 2021 21:02:27 +0300 Subject: [PATCH] Fix off-by-one inconsistency of 'M-y C-y' (bug#48478). * lisp/simple.el (read-from-kill-ring): Increment kill-ring-yank-pointer by 1. (yank-from-kill-ring): Don't increment kill-ring-yank-pointer by 1. --- lisp/simple.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/simple.el b/lisp/simple.el index 5e3172326f9..f139555dd34 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5734,7 +5734,7 @@ PROMPT is a string to prompt with." (complete-with-action action completions string pred))) nil nil nil (if history-pos - (cons 'read-from-kill-ring-history history-pos) + (cons 'read-from-kill-ring-history (1+ history-pos)) 'read-from-kill-ring-history))))) (defcustom yank-from-kill-ring-rotate t @@ -5773,7 +5773,7 @@ When called from Lisp, insert STRING like `insert-for-yank' does." (when yank-from-kill-ring-rotate (let ((pos (seq-position kill-ring string))) (setq kill-ring-yank-pointer - (or (and pos (nthcdr (1+ pos) kill-ring)) + (or (and pos (nthcdr pos kill-ring)) kill-ring)))) (if (consp arg) ;; Swap point and mark like in `yank' and `yank-pop'. -- 2.39.5