Subject: bug#57516: closed (Re: bug#57516: Fontification of single brace in an optional argument)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 27 May 2024 15:27:03 +0000

Your bug report

#57516: Fontification of single brace in an optional argument

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 [email-masked].

-- 
57516: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57516
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#57516: Fontification of single brace in an optional argument
From: Arash Esbati <[email-masked]>
To: [email-masked]
Date: Mon, 27 May 2024 17:26:07 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Arash Esbati <[email-masked]> writes:

> I think we have a taker.  With the following patch:
>
> diff --git a/font-latex.el b/font-latex.el
> index ccddd8b1..d814642a 100644
> --- a/font-latex.el
> +++ b/font-latex.el
> @@ -1473,12 +1473,21 @@ ignored during the search."
>          ;; closing brace gets a comment end syntax.
>          ;; (2022 Mar) The latter half of the above paragraph no longer
>          ;; applies since we changed the way to fontify ^^A comment.
> -        (parse-sexp-lookup-properties nil))
> +        (parse-sexp-lookup-properties nil)
> +        (syntax (TeX-search-syntax-table openchar closechar)))
>      (or
>       (condition-case nil
>           (progn
> -           (goto-char (with-syntax-table
> -                          (TeX-search-syntax-table openchar closechar)
> +           ;; It is possible to have an opt. arg like \foo[key={]}].
> +           ;; Since braces are always balanced in opt. arguments, we
> +           ;; change the syntax to "generic comment delimiter".  For the
> +           ;; backslash, we switch to "/" in order to ignore things like
> +           ;; \{ and \}:
> +           (unless (and (= openchar ?\{) (= closechar ?\}))
> +             (modify-syntax-entry ?\{ "|" syntax)
> +             (modify-syntax-entry ?\} "|" syntax)
> +             (modify-syntax-entry ?\\ "/" syntax))
> +           (goto-char (with-syntax-table syntax
>                          (scan-sexps (point) 1)))
>             ;; No error code.  See if closechar is unquoted
>             (save-excursion
>
> the .tex file in the other message looks like this with "emacs -Q":
>
> The change also passes the tests.  Any comments welcome.

No further comments, so I installed the change, closing.

Best, Arash

Subject: Fontification of single brace in an optional argument
From: Arash Esbati <[email-masked]>
To: auctex-bugs <[email-masked]>
Date: Thu, 01 Sep 2022 11:31:25 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi all,

please consider this artificial but valid LaTeX code:

--8<---------------cut here---------------start------------->8---
\documentclass{article}

\usepackage{siunitx}

\begin{document}

\numlist[list-separator={[ }]{0.1;0.2;0.3}

Some text here

\numlist[list-separator={] }]{0.1;0.2;0.3}

\numlist[list-separator={; }]{0.1;0.2;0.3}

\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% End:
--8<---------------cut here---------------end--------------->8---

which looks like this with emacs -Q and vanilla AUCTeX:

Note how the first {[ } extends the fontification until the next {] }.
I think the issue is in the function `font-latex-find-matching-close',
but I don't have an idea how to fix this.  Any takers?

Best, Arash