Subject: 24.3.50; `mouse-secondary-save-then-kill' should not affect the kill ring (+ regression)

From: "Drew Adams" <[email-masked]>
Date: Tue, 5 Mar 2013 15:19:52 -0800

Prior to Emacs 24, if you clicked `M-mouse-3' without first clicking
`M-mouse-1' you got a "Wrong buffer" error msg informing you that the
secondary selection was not in this buffer.  That was consistent and
reasonable behavior.
 
Starting with Emacs 24, if you do that Emacs moves the secondary
selection to the current buffer, from point to the clicked position. 
 
1. It could be argued that this is a regression, especially as:
 
a. This user-visible behavior change is not noted in the NEWS, AFAICT.
 
b. Point has nothing to do with the secondary selection, whereas it is
   always at one end of the region.
 
c. Now the user is no longer informed that s?he is in the wrong buffer.
   I.e., s?he is not told that there is no secondary selection in the
   current buffer.  If s?he has already defined the secondary selection
   in a different buffer, and, e.g., s?he thinks s?he is in that buffer,
   s?he will lose that selection and instead re-create the secondary
   selection in the current buffer.
 
This change in behavior is arguably a bad thing, not a good thing.
 
2. Be that as it may, if this behavior is to remain, there is
nevertheless the following bug, the main purpose of this report: In this
case (no start of secondary selection in current buffer, so using point
as the start position), the code mistakenly does this, in addition to
doing what it needs to do to establish the secondary selection:
 
(kill-ring-save (point) click-pt)
 
That code is a vestige, presumably.  In any case, it has no business
being there.  Setting the secondary selection should not in any way
affect the `kill-ring'.  The secondary selection is entirely separate
from the region and the kill ring.  This sexp should be removed.
 
In GNU Emacs 24.3.50.1 (i386-mingw-nt5.1.2600)
 of 2013-02-25 on ODIEONE
Bzr revision: 111879 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.7) --no-opt --enable-checking --cflags
 -IC:/Devel/emacs/build/include --ldflags -LC:/Devel/emacs/build/lib'