Subject: Re: bug#62892: proposal to extend mark-sexp to go forward and backward on command

From: Eli Zaretskii <[email-masked]>
Date: Wed, 26 Apr 2023 09:28:47 +0300

> Cc: Ruijie Yu <[email-masked]>, Stefan Monnier <[email-masked]>,
>  [email-masked]
> From: Zachary Kanfer <[email-masked]>
> Date: Wed, 26 Apr 2023 00:41:45 -0400
> 
> The documentation for mark-sexp says:
> 
> > Set mark ARG sexps from point.
> > The place mark goes is the same place C-M-<right> would
> > move to with the same argument.
> 
> This is correct but misleading.

Please elaborate: how could it mislead?

> Worse still is the next part:
> 
> > Interactively, if this command is repeated
> > or (in Transient Mark mode) if the mark is active,
> > it marks the next ARG sexps after the ones already marked.
> 
> This says it marks sexps *after* the ones already marked. This is incorrect; if point is *after* mark, and
> mark is active, this function marks sexps *before* the ones already marked.

I cannot reproduce this behavior, if I understand your description
correctly.  Please show a recipe, starting from "emacs -Q", to
reproduce.

> > In my opinion, the description of that feature should not be part of the
> > mark-sexp command documentation, because the feature is actually
> > provided by C-x C-x (exchange-point-and-mark).
> 
> One way for this situation to occur is by using C-x C-x, yes, but it's not the only way. You can set point,
> move forward sexps, and then calling mark-sexp will mark sexps backwards.
> 
> There is specific code in mark-sexp to check which direction to move; it should be documented as
> such.

Please also demonstrate this behavior and point to that code, so we
will know what you are alluding to.

Thanks.