GNU bug report logs -
#73302
TeX-find-closing-brace and verbatim macros
Previous Next
Reported by: Paul Nelson <ultrono <at> gmail.com>
Date: Mon, 16 Sep 2024 16:13:02 UTC
Severity: normal
Done: Arash Esbati <arash <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi again,
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}.
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.
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.
Paul
[0001-Fix-folding-of-verbatim-macros.patch (application/octet-stream, attachment)]
This bug report was last modified 231 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.