> That means the interesting bits in the example above are these:
> (set-mark (point))
> (beginning-of-line 0))
> ... set the mark and move point. (Using `push-mark' instead of
> `set-mark' doesn't seem to make a difference.)
Oh, I see it now:
% emacs -Q
M-x icomplete-mode RET
M-x transient-mark-mode RET
M-SPC .. move around to select text...
M-x ignore RET
And note how the mark is deactivated.
Note that if you instead do M-x ignore C-g, the mark stays active.
Better yet: you can reproduce the problem even if icomplete-mode is
turned off:
% emacs -Q
M-x transient-mark-mode RET
M-SPC .. move around to select text...
M-x ign RET
The problem is that the RET command modifies the minibuffer and thus sets
deactivate-mark (which is a global variable). And after the command is
finished (we're then back in the main buffer) the command-loop notices
deactivate-mark is non-nil and thus sets mark-active to nil.
I.e. deactivate-mark was set to non-nil in buffer A and it causes
mark-active to be set to nil in buffer B.
I think the right answer is to make deactivate-mark buffer-local.
Stefan
_______________________________________________
Emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug