GNU bug report logs - #63441
Wrong Indentation with backslash in verb macros with braces

Previous Next

Package: auctex;

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

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Arash Esbati <arash <at> gnu.org>
Subject: bug#63441: closed (Re: bug#63441: Wrong Indentation with
 backslash in verb macros with braces)
Date: Thu, 11 May 2023 19:43:02 +0000
[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)]
From: Arash Esbati <arash <at> gnu.org>
To: Ikumi Keita <ikumi <at> ikumi.que.jp>
Cc: 63441-done <at> debbugs.gnu.org
Subject: Re: bug#63441: Wrong Indentation with backslash in verb macros with
 braces
Date: Thu, 11 May 2023 21:42:22 +0200
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)]
From: Arash Esbati <arash <at> gnu.org>
To: auctex-bugs <bug-auctex <at> gnu.org>
Subject: Wrong Indentation with backslash in verb macros with braces
Date: Thu, 11 May 2023 10:36:06 +0200
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.