bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#19513: shift-select-mode fails to be fully buffer-local


From: Kelly Dean
Subject: bug#19513: shift-select-mode fails to be fully buffer-local
Date: Mon, 05 Jan 2015 01:06:04 +0000

With Emacs 24.4, do emacs -Q, get two windows in your frame, and different 
buffers in the windows, and some text in each buffer.
In one of them, (setq-local shift-select-mode nil).
In each of them, try shifted motion followed by non-shifted motion, and you get 
the expected result. That indicates that shift-select-mode is buffer-local.
You trigger the bug like this:
Switch to the window with the buffer with shift-select-mode on. Do shifted 
motion, but not non-shifted, so the selection remains.
C-x o
Do any motion (shifted or non-shifted), and you get the expected result (no 
selection).
C-x o
Do non-shifted motion, which is supposed to turn off the selection. However, 
the selection remains.

I know you'll consider it weird to want to buffer-locally disable 
shift-select-mode. But the mode is enabled and disabled by setting a variable, 
Emacs supports buffer-local variables (which aren't supposed to affect other 
buffers), and I don't see anything in the docs that says the shift-select-mode 
variable is an exception to buffer-locality. So the above behavior is a bug.

The reason I want to do that is I have a minor mode that depends on 
shift-select-mode being disabled. I never use shift-select-mode myself, so I 
always have it disabled, but I'm trying to enhance my mode so it will work for 
everybody else. I could simply disable shift-select-mode globally while my mode 
is enabled (and restore the former setting when my mode is disabled), but that 
would affect all buffers, not just the buffer in which my mode is enabled. The 
right way to do it is to buffer-locally disable shift-select-mode, but the bug 
above prevents that.

The easy solution is to remove shift-select-mode from Emacs. That's what I vote 
for, but I guess I'm in the minority. ;-)





reply via email to

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