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 08:42:43 +0100

> Consistency is a good design principle to follow, unless there is good
> reason not to.  And frankly, I don't see a good reason here.

...and I'll explain why:

Well-known movement commands like `M-<', `M->' or the search commands
set the mark (IMO) because they meet two criteria:
1. They may move point to a distant location.
2. There is not an "inverse" command to move point back to the
original position (or near it):  commands like `forward-list' or
`forward-page' meet criterion #1, but they don't set the mark because
you have `backward-list' and `backward-page' to move to the original
position.

And when command meet these two criteria, it should set the mark, but
only if it is inactive, because when the mark is active, the user
surely wants to extend the _current_ region, i.e., "leave the mark
alone where I've set it, and just move the point".

IMO, this is the behavior users expect, and are used to.

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.

-- 
Dani Moncayo