Subject: Re: bug#10899: 24.0.93; c-forward-conditional should not move the mark

From: Dani Moncayo <[email-masked]>
Date: Tue, 28 Feb 2012 12:12:32 +0100

>> Summarizing:
>> a. `c-forward-conditional' and `c-backward-conditional' should not set
>> the mark, because each one has an inverse movement command.
>> b. Even if you disagree, those commands should not set the mark when
>> it is active.
>
> All similar movement commands like `c-beginning-of-defun' and `c-end-of-defun'
> take precautions against the behavior you found.  They do this by using
> the following condition before leaving mark behind:
>
>  (and transient-mark-mode mark-active)
>
> The patch below fixes the remaining movement commands to do the same,
> except `c-mark-function' that needs to be rewritten to follow the logic
> of `mark-defun' for setting the mark.

Thanks Juri, for working on this and many other fixes/improvements to Emacs.

Regarding your patch, I think it clearly improve the current behavior,
but I want to emphasize again that, IMO, setting the mark in too many
commands is bad, because it overfills the mark ring, thus making
harder to return to earlier positions.

-- 
Dani Moncayo