Subject: Re: bug#73302: TeX-find-closing-brace and verbatim macros

From: Ikumi Keita <[email-masked]>
Date: Fri, 20 Sep 2024 16:43:00 +0900

Hi Paul,

>>>>> Paul Nelson <[email-masked]> writes:
> I noticed just now that my patch can break the folding of
> \end{verbatim} environments when called via TeX-fold-region.  Steps to
> reproduce:

> 1. After loading AUCTeX and tex-fold, evaluate

>    (add-to-list 'TeX-fold-macro-spec-list '(identity ("end")))

> 2. Create a LaTeX file containing

> \begin{verbatim}
> blah
> \end{verbatim}

> 3. Make the region contain the line "\end{verbatim}", but none of the
> line "\begin{verbatim}"

> 4. C-c C-o C-r (TeX-fold-region).

> This results in [Error: No content or function found], resulting from
> a failure for TeX-fold-macro-nth-arg to recover the first argument to
> \end{verbatim}.

Confirmed.

> One can trace the issue to the following discrepancy:

> a. With point on the "{" in "\end{verbatim}", (TeX-verbatim-p) returns
> nil (as expected).

> b. If we repeat (a) after narrowing to a region that contains the line
> "\end{verbatim}" but none of the line "\begin{verbatim}", then it
> instead returns t.

Indeed.

> As a fix, we could either:

> (i) Do (save-restriction (widen) ...) in TeX-fold-macro-nth-arg before
> (TeX-verbatim-p).

> (ii) Do (save-restriction (widen) ...) in LaTeX-verbatim-p.

> The advantage of (ii) is that it arguably fixes the root cause rather
> than just patching it at the source.  The disadvantage is that I don't
> know off hand whether this would affect other calls to
> LaTeX-verbatim-p in an undesired way.  I lean in favor of (i) for now,
> and have updated my patch accordingly, but would welcome other
> feedback.

I don't have particular preference, so I think we can install your
change, provided that no objection is raised.

Thank you for your contribution!

Regards,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine
#Gaza #StopMassiveKilling #CeasefireNOW