GNU bug report logs -
#63441
Wrong Indentation with backslash in verb macros with braces
Previous Next
Reported by: Arash Esbati <arash <at> gnu.org>
Date: Thu, 11 May 2023 08:37: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)]
Your bug report
#63441: Wrong Indentation with backslash in verb macros with braces
which was filed against the auctex package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 63441 <at> debbugs.gnu.org.
--
63441: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=63441
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hi Keita,
Ikumi Keita <ikumi <at> ikumi.que.jp> writes:
> I don't think `fboundp' test is a right approach because it calls
> `LaTeX-verbatim-p' even in non-LaTeX mode buffers after the session
> loads latex.el. How about just
> (TeX-verbatim-p)
> instead of
> (and (fboundp 'LaTeX-verbatim-p)
> (LaTeX-verbatim-p))
> ?
Thanks for reminding me, you're right, that's the way to go. I
installed the change per your suggestion (commit 715a88a5f2). Closing
this report.
Best, Arash
[Message part 3 (message/rfc822, inline)]
Hi all,
I just installed a change (commit 0cb158fd96) which improves
fontification of arguments of verb macros with braces. One addition is
also handling of backslash(es) as last character(s) in the argument.
There is a downside, though. Consider the following file:
--8<---------------cut here---------------start------------->8---
\documentclass{article}
\usepackage{url}
\begin{document}
This is text with \textbf{foo\}
bar}
\path{foobar\}
next line
\end{document}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
--8<---------------cut here---------------end--------------->8---
Now mark the text body and indent with 'M-x indent-region RET' or with
C-M-\ and you get:
--8<---------------cut here---------------start------------->8---
This is text with \textbf{foo\}
bar}
\path{foobar\}
next line
--8<---------------cut here---------------end--------------->8---
which is wrong. This is due to the implementation of
`TeX-brace-count-line' which presumes that ?\\ always escapes the next
char, which is wrong in verb macros. I can think of a solution like
this:
--8<---------------cut here---------------start------------->8---
diff --git a/tex.el b/tex.el
index b862d3c2..4663b217 100644
--- a/tex.el
+++ b/tex.el
@@ -5485,7 +5485,9 @@ additional characters."
(setq count (- count TeX-brace-indent-level)))
((eq char ?\\)
(when (< (point) limit)
- (forward-char)
+ (unless (and (fboundp 'LaTeX-verbatim-p)
+ (LaTeX-verbatim-p))
+ (forward-char))
t))))))
count)))
--8<---------------cut here---------------end--------------->8---
Any comments oder better approaches?
Best, Arash
This bug report was last modified 2 years and 13 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.