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

Re: `insert' deactivates active region

>> I'll write a report my investigation about this bug.
> Is it really a bug?  The docstring for the deactivate-mark
> variable says:

>   If an editing command sets this to t, deactivate the mark afterward.
>   The command loop sets this to nil before each command,
>   and tests the value when the command returns.
>   Buffer modification stores t in this variable.

I do think it is a bug.  The problem is that deactivate-mark is global
whereas mark-active (which is deactivated through the deactivate-mark
variable) is buffer-local.

If you grep fo deactivate-mark in the elisp and C code you'll see that there
are several places where we need to workaround the mismatch.  The most
recent one I remember happens when leaving the minibuffer, where the
minibuffer has been modified and it caused the other buffer's mark to
be deactivated.