Subject: bug#56325: [REGRESSION] (clipboard-yank) always pastes from kill-ring after text copy

From: Konstantin Kharlamov <[email-masked]>
Date: Thu, 30 Jun 2022 16:48:19 +0300

After upgrade to latest development version at:

      fb0d95984b: Put the obsoletion earlier in the *Help* buffer

I found out that using (clipboard-yank) and (x-clipboard-yank) when
`select-enable-clipboard` is set to t, after copying a text to
clipboard once, results in them pasting from kill-ring instead of
clipboard.

# Steps to reproduce

1. Create /tmp/.emacs file with the following content:

    (setq select-enable-clipboard nil
          inhibit-startup-screen t)

    (defun clipboard-yank-test ()
      (interactive)
      (let ((select-enable-clipboard t))
        (clipboard-yank)))
    (global-set-key "\C-y" 'clipboard-yank-test)

    (defun clipboard-copy-fixed ()
      (interactive)
      (let ((select-enable-clipboard t))
        (clipboard-kill-ring-save (region-beginning)(region-end))))
    (global-set-key "\M-w" 'clipboard-copy-fixed)

2. Launch `HOME=/tmp/ emacs`
3. [you're in a *scratch* buffer] Move caret till word "create" on the
2nd line, select it by pressing M-f, then copy to the system clipboard
by pressing M-w
4. Move caret to another word, e.g. "file"
5. Delete the word "file" by pressing M-d
5. Press C-y to paste the current clipboard content

## Expected

A word "create" will be inserted as it is in the system clipboard.

Note: (clipboard-yank-test) pastes from the system clipboard not the
kill-ring due to `select-enable-clipboard` being set locally to t.

## Actual

The word you deleted in *scratch* buffer will be inserted instead of
"create".