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

From: Juri Linkov <[email-masked]>
Date: Wed, 29 Feb 2012 02:14:05 +0200

> 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.

What I wanted to achieve is to make C movement commands to behave exactly
as their Lisp counterparts.  I see the following correspondence:

                                              leaves mark behind?
c-beginning-of-defun     beginning-of-defun   yes
c-end-of-defun           end-of-defun         yes
c-mark-function          mark-defun           yes
c-up-conditional         backward-up-list     no
c-down-conditional       down-list            no
c-backward-conditional   backward-list        no
c-forward-conditional    forward-list         no

So I agree that `c-forward-conditional' and `c-backward-conditional'
should not push the mark.

Regarding bug#10906, I think `c-mark-function' should be rewritten
to follow the logic of `mark-defun'.