Subject: bug#76679: 31.0.50; forward-sentence not working in the narrowed buffer under c-ts-mode

From: Eli Zaretskii <[email-masked]>
Date: Tue, 11 Mar 2025 13:59:59 +0200

> From: Juri Linkov <[email-masked]>
> Cc: lorniu <[email-masked]>,  Yuan Fu <[email-masked]>,
>   [email-masked]
> Date: Mon, 10 Mar 2025 20:28:12 +0200
> 
> >> The code `(forward-thing 'sentence)' is not working in narrowed region
> >> under c-ts-mode.
> >> 
> >> For example, open file `test.c`, then turn on `c-ts-mode', what in the
> >> buffer is:
> >> 
> >>     int main () { return 0; }
> >>   
> >> Now select word `return' and execute `narrow-to-region', then in buffer:
> >> 
> >>     Ireturn
> >> 
> >> where `I' represent the cursor. Now execute:
> >> 
> >>     (forward-thing 'sentence)
> >> 
> >> Then you will find that the cursor is stay still, not moving to the
> >> end. This behavior is not like the ones anywhere else, I think it's a bug.
> >
> > I'm not sure the notion of a "sentence" is well defined in C-like
> > languages.
> >
> > Yuan and Juri, any comments or suggestions?
> 
> We agreed that a "sentence" in C-like languages is a thing that
> ends with a semicolon (or a comma that separates arguments).
> 
> However, this report raises a different question: whether forward-sentence
> should navigate to the end of the narrowed region when the semicolon is hidden?

Nothing else would make sense.  Almost all Emacs commands behave like
there's nothing beyond the end of the narrowed region.  The few
exceptions are only in very specialized cases, which this one isn't,
because it's just a movement command.