GNU bug report logs - #62997
13.1.10; LaTeX-xparse-macro-parse in xparse.el fails when opening a LaTeX file

Previous Next

Package: auctex;

Reported by: Yuki Nishida <nishida <at> rsworks.jp>

Date: Fri, 21 Apr 2023 15:05:02 UTC

Severity: normal

Found in version 13.1.10

Done: Arash Esbati <arash <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 62997 in the body.
You can then email your comments to 62997 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-auctex <at> gnu.org:
bug#62997; Package auctex. (Fri, 21 Apr 2023 15:05:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Yuki Nishida <nishida <at> rsworks.jp>:
New bug report received and forwarded. Copy sent to bug-auctex <at> gnu.org. (Fri, 21 Apr 2023 15:05:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Yuki Nishida <nishida <at> rsworks.jp>
To: bug-auctex <at> gnu.org
Subject: 13.1.10; LaTeX-xparse-macro-parse in xparse.el fails when opening a
 LaTeX file
Date: Fri, 21 Apr 2023 19:00:26 +0900
In a particular environment,  opening a LaTeX file for the first time fails with the *Backtrace* buffer that says LaTeX-xparse-macro-parse fails with (scan-error “Unbalanced parentheses” ...)

It seems to be caused by an xparse macro definition containing '(' as a token in an argument's specification like:

\NewDocumentCommand\FOO{>{\SplitArgument{1}{(}}m}

I suspect the implementation interprets '(}' as balanced parentheses and causes the scan-error.

Best regards,
Yuki

Emacs  : GNU Emacs 28.2 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 Version 10.14.6 (Build 18G95))
of 2022-09-13
Package: 13.1.10

current state:
==============
(setq
AUCTeX-date "2023-03-05"
window-system 'ns
LaTeX-version "2e"
TeX-style-path '("/usr/local/var/auctex" "/Users/nishida/.emacs.d/elpa/auctex-13.1.10/style"
                 "/Users/nishida/.emacs.d/auctex/auto" "/Users/nishida/.emacs.d/auctex/style"
                 "auto" "style")
TeX-auto-save t
TeX-parse-self t
TeX-master nil
TeX-command-list '(("Latexmk" "latexmk %t" TeX-run-TeX nil (latex-mode) :help "Run Latexmk")
                   ("Make" "make -j" TeX-run-TeX nil t)
                   ("TeX"
                    "%(PDF)%(tex) %(file-line-error) %`%(extraopts) %S%(PDFout)%(mode)%' %(output-dir) %t"
                    TeX-run-TeX nil (plain-tex-mode ams-tex-mode texinfo-mode) :help
                    "Run plain TeX")
                   ("LaTeX" "%`%l%(mode)%' %T" TeX-run-TeX nil (latex-mode doctex-mode) :help
                    "Run LaTeX")
                   ("Makeinfo" "makeinfo %(extraopts) %(o-dir) %t" TeX-run-compile nil
                    (texinfo-mode) :help "Run Makeinfo with Info output")
                   ("Makeinfo HTML" "makeinfo %(extraopts) %(o-dir) --html %t" TeX-run-compile
                    nil (texinfo-mode) :help "Run Makeinfo with HTML output")
                   ("AmSTeX" "amstex %(PDFout) %`%(extraopts) %S%(mode)%' %(output-dir) %t"
                    TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX")
                   ("ConTeXt" "%(cntxcom) --once --texutil %(extraopts) %(execopts)%t"
                    TeX-run-TeX nil (context-mode) :help "Run ConTeXt once")
                   ("ConTeXt Full" "%(cntxcom) %(extraopts) %(execopts)%t" TeX-run-TeX nil
                    (context-mode) :help "Run ConTeXt until completion")
                   ("BibTeX" "bibtex %(O?aux)" TeX-run-BibTeX nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode context-mode)
                    :help "Run BibTeX")
                   ("Biber" "biber %(output-dir) %s" TeX-run-Biber nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Run Biber")
                   ("Texindex" "texindex %s.??" TeX-run-command nil (texinfo-mode) :help
                    "Run Texindex")
                   ("Texi2dvi" "%(PDF)texi2dvi %t" TeX-run-command nil (texinfo-mode) :help
                    "Run Texi2dvi or Texi2pdf")
                   ("View" "%V" TeX-run-discard-or-function t t :help "Run Viewer")
                   ("Print" "%p" TeX-run-command t t :help "Print the file")
                   ("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible
                    TeX-queue-command)
                   ("File" "%(o?)dvips %d -o %f " TeX-run-dvips t
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Generate PostScript file")
                   ("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Convert DVI file to PostScript")
                   ("Dvipdfmx" "dvipdfmx -o %(O?pdf) %d" TeX-run-dvipdfmx nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Convert DVI file to PDF with dvipdfmx")
                   ("Ps2pdf" "ps2pdf %f %(O?pdf)" TeX-run-ps2pdf nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Convert PostScript file to PDF")
                   ("Glossaries" "makeglossaries %(d-dir) %s" TeX-run-command nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Run makeglossaries to create glossary file")
                   ("Index" "makeindex %(O?idx)" TeX-run-index nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Run makeindex to create index file")
                   ("upMendex" "upmendex %(O?idx)" TeX-run-index t
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Run upmendex to create index file")
                   ("Xindy" "texindy %s" TeX-run-command nil
                    (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
                    "Run xindy to create index file")
                   ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help
                    "Check LaTeX file for correctness")
                   ("ChkTeX" "chktex -v6 %s" TeX-run-compile nil (latex-mode) :help
                    "Check LaTeX file for common mistakes")
                   ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help
                    "Spell-check the document")
                   ("Clean" "TeX-clean" TeX-run-function nil t :help
                    "Delete generated intermediate files")
                   ("Clean All" "(TeX-clean t)" TeX-run-function nil t :help
                    "Delete generated intermediate and output files")
                   ("Other" "" TeX-run-command t t :help "Run an arbitrary command"))
)





Information forwarded to bug-auctex <at> gnu.org:
bug#62997; Package auctex. (Fri, 21 Apr 2023 18:30:02 GMT) Full text and rfc822 format available.

Message #8 received at 62997 <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Yuki Nishida <nishida <at> rsworks.jp>
Cc: 62997 <at> debbugs.gnu.org
Subject: Re: bug#62997: 13.1.10; LaTeX-xparse-macro-parse in xparse.el fails
 when opening a LaTeX file
Date: Fri, 21 Apr 2023 20:28:43 +0200
Yuki Nishida <nishida <at> rsworks.jp> writes:

> In a particular environment, opening a LaTeX file for the first time
> fails with the *Backtrace* buffer that says LaTeX-xparse-macro-parse
> fails with (scan-error “Unbalanced parentheses” ...)
>
> It seems to be caused by an xparse macro definition containing '(' as
> a token in an argument's specification like:
>
> \NewDocumentCommand\FOO{>{\SplitArgument{1}{(}}m}
>
> I suspect the implementation interprets '(}' as balanced parentheses
> and causes the scan-error.

Thanks for the report.  Can you please apply this patch to xparse.el and
report back if it solves the issue?

--8<---------------cut here---------------start------------->8---
diff --git a/style/xparse.el b/style/xparse.el
index 397a0c4b..ca70fd68 100644
--- a/style/xparse.el
+++ b/style/xparse.el
@@ -128,7 +128,8 @@ TYPE is one of the symbols mac or env."
                 ;; over [>=] and a balanced {}
                 ((looking-at-p "[>=]")
                  (forward-char 1)
-                 (forward-sexp))
+                 (with-syntax-table (TeX-search-syntax-table ?\{ ?\})
+                   (forward-sexp)))
                 ;; Mandatory arguments:
                 ;; m: Ask for input with "Text" as prompt
                 ((looking-at-p "m")
--8<---------------cut here---------------end--------------->8---

TIA.  Best, Arash




Reply sent to Arash Esbati <arash <at> gnu.org>:
You have taken responsibility. (Mon, 24 Apr 2023 08:00:02 GMT) Full text and rfc822 format available.

Notification sent to Yuki Nishida <nishida <at> rsworks.jp>:
bug acknowledged by developer. (Mon, 24 Apr 2023 08:00:02 GMT) Full text and rfc822 format available.

Message #13 received at 62997-done <at> debbugs.gnu.org (full text, mbox):

From: Arash Esbati <arash <at> gnu.org>
To: Yuki Nishida <nishida <at> rsworks.jp>
Cc: 62997-done <at> debbugs.gnu.org
Subject: Re: bug#62997: 13.1.10; LaTeX-xparse-macro-parse in xparse.el fails
 when opening a LaTeX file
Date: Mon, 24 Apr 2023 09:58:36 +0200
Yuki Nishida <nishida <at> rsworks.jp> writes:

> The patch works.  The issue is solved.
> Many thanks for the fix.

Thanks for testing and your feedback.  I've installed that change;
therefore I'm closing this report.

Best, Arash

P.S. In future, please keep ###@debbugs.gnu.org in CC when replying.
Thanks.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 22 May 2023 11:24:15 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 29 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.