Subject: Re: bug#35177: 27.0.50; Binding deactivate-mark to nil unexpectedly deactivates the mark

From: Eli Zaretskii <[email-masked]>
Date: Mon, 08 Apr 2019 18:09:12 +0300

> From: Markus Triska <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 08 Apr 2019 12:03:11 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > None of your additional test cases do what I said I thought you should
> > do, though, do they?
> 
> In emacs -Q, please evaluate the following form with C-x C-e:
> 
>     (let (deactivate-mark)
>       (switch-to-buffer (get-buffer-create "t"))
>       (insert "hello")
>       (set-mark-command nil)
>       (move-beginning-of-line nil))
> 
> This does what you say. However, the mark is deactivated after the form
> is executed, which is the opposite of what I expect from this snippet.

I cannot reproduce your result: the above does show an active mark
after the execution, both in Emacs 26.2 and Emacs 27.0.50.

> Please also note that the documentation of deactivate-mark states
> "around the code that does the modification". If other preconditions are
> necessary to consistently retain the active mark, could you please
> document them? Thank you.

You seem to think that I know something you don't, and just withhold
it.  But that's not so: I'm exactly like you, trying to make sense of
the behavior and the documentation.  I just arrived at slightly
different conclusions, and saw that by modifying your examples I can
get the behavior described by the docs, while I cannot reproduce some
of your results, that's all.