From unknown Fri Jun 20 07:16:05 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#51762 <51762@debbugs.gnu.org> To: bug#51762 <51762@debbugs.gnu.org> Subject: Status: 13.0.14; environment formating Reply-To: bug#51762 <51762@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:16:05 +0000 retitle 51762 13.0.14; environment formating reassign 51762 auctex submitter 51762 "Pierre L. Nageoire" severity 51762 normal tag 51762 confirmed thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 11 02:14:34 2021 Received: (at submit) by debbugs.gnu.org; 11 Nov 2021 07:14:34 +0000 Received: from localhost ([127.0.0.1]:40032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ml4I6-0005cq-1s for submit@debbugs.gnu.org; Thu, 11 Nov 2021 02:14:34 -0500 Received: from lists.gnu.org ([209.51.188.17]:41628) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ml4I4-0005ci-Vw for submit@debbugs.gnu.org; Thu, 11 Nov 2021 02:14:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:60882) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ml4I4-0004rq-S2 for bug-auctex@gnu.org; Thu, 11 Nov 2021 02:14:32 -0500 Received: from smtp09.smtpout.orange.fr ([80.12.242.131]:62517 helo=smtp.smtpout.orange.fr) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ml4I2-0004UG-JE for bug-auctex@gnu.org; Thu, 11 Nov 2021 02:14:32 -0500 Received: from jabberwocky ([86.247.163.76]) by smtp.orange.fr with ESMTP id l4HymJkHzUujjl4HymmoTe; Thu, 11 Nov 2021 08:14:27 +0100 X-ME-Helo: jabberwocky X-ME-Date: Thu, 11 Nov 2021 08:14:27 +0100 X-ME-IP: 86.247.163.76 From: "Pierre L. Nageoire" To: bug-auctex@gnu.org Subject: 13.0.14; environment formating Date: Thu, 11 Nov 2021 07:22:59 +0100 Message-ID: <86ilwzmcsc.fsf@pollock-nageoire.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: none client-ip=80.12.242.131; envelope-from=devel@pollock-nageoire.net; helo=smtp.smtpout.orange.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi here is the environment before hitting C-c C-q C-e %% \begin{exoenonce} On note alors $$ \fundefline p{A \times B}{A}{(x,y)}{x}\ %% \et\ \fundefline q{A \times B}{B}{(x,y)}{y}\ %% \text{les projections canoniques}\ .$$ \end{exoenonce} And after formating operation I get : %% \begin{exoenonce} On note alors $$ \fundefline p{A \times B}{A}{(x,y)}{x}\ %% \et\ \fundefline q{A \times B}{B}{(x,y)}{y}\ %% \text{les projections canoniques}\ .$$ \end{exoenonce} Causing a part of code to be commented that should not and for instance here an unbalanced dollar that makes the code completly unexecutable ! Best regards Emacs : GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu) of 2021-09-22 Package: 13.0.14 current state: ============== (setq AUCTeX-date "2021-08-26" window-system nil LaTeX-version "2e" TeX-style-path '("~/.emacs.d/auctex" "/home/devel/.emacs.d/elpa/auctex-13.0.11/style" "/usr/local/share/texmf/tex/latex/auto/" "/usr/local/share/texmf/tex/latex/style/" "auto" "style") TeX-auto-save t TeX-parse-self t TeX-master nil TeX-command-list '(("pdf" "ps2pdf13 %s.ps" TeX-run-command nil t) ("mp" "mpost %s.mp" TeX-run-command nil t) ("Hacha" "hacha %s.html" TeX-run-command nil t) ("PHPindex" "hacha -o index.php %s.html" TeX-run-command nil t) ("PHP" "hevea -fix -o %s.php %t" TeX-run-command nil t) ("Info" "hevea -fix -info %t" TeX-run-command nil t) ("Txt" "hevea -fix -text %t" TeX-run-command nil t) ("Hevea" "hevea -fix %t" TeX-run-command nil t) ("TeX" "%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run plain TeX") ("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX") ("Makeinfo" "makeinfo %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output") ("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with HTML output") ("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX") ("ConTeXt" "texexec --once --texutil %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt once") ("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until completion") ("BibTeX" "%(bibtex) %s" TeX-run-BibTeX nil t :help "Run BibTeX") ("View" "dvi2tty -q -w 132 %s" TeX-run-command t t :help "Run Text 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-command t t :help "Generate PostScript file") ("Index" "%(makeindex) %s" TeX-run-command nil t :help "Create index file") ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for correctness") ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help "Spell-check the document") ("Browse" "(plnltx-browse)" TeX-run-function nil t) ("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") ) ) From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 12 01:49:12 2021 Received: (at control) by debbugs.gnu.org; 12 Nov 2021 06:49:12 +0000 Received: from localhost ([127.0.0.1]:43239 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlQN5-0007a8-Uq for submit@debbugs.gnu.org; Fri, 12 Nov 2021 01:49:12 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:54448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlQN4-0007Zq-0I for control@debbugs.gnu.org; Fri, 12 Nov 2021 01:49:11 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 67C0C74 for ; Fri, 12 Nov 2021 15:49:07 +0900 (JST) To: control@debbugs.gnu.org From: Ikumi Keita Subject: control message for bug #51762 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <80746.1636699742.1@localhost> Date: Fri, 12 Nov 2021 15:49:03 +0900 Message-ID: <80747.1636699743@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 51762 + confirmed quit From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 12 05:19:21 2021 Received: (at 51762) by debbugs.gnu.org; 12 Nov 2021 10:19:21 +0000 Received: from localhost ([127.0.0.1]:43518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlTeT-00016E-Aj for submit@debbugs.gnu.org; Fri, 12 Nov 2021 05:19:21 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:55244) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlTeQ-000161-TW for 51762@debbugs.gnu.org; Fri, 12 Nov 2021 05:19:19 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id D1FB562; Fri, 12 Nov 2021 19:19:16 +0900 (JST) From: Ikumi Keita To: "Pierre L. Nageoire" Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <86ilwzmcsc.fsf@pollock-nageoire.net> References: <86ilwzmcsc.fsf@pollock-nageoire.net> Comments: In-reply-to "Pierre L. Nageoire" message dated "Thu, 11 Nov 2021 07:22:59 +0100." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <81174.1636712355.1@localhost> Date: Fri, 12 Nov 2021 19:19:15 +0900 Message-ID: <81175.1636712355@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Pierre, >>>>> "Pierre L. Nageoire" writes: > Hi here is the environment before hitting C-c C-q C-e > %% > \begin{exoenonce} > On note alors > $$ \fundefline p{A \times B}{A}{(x,y)}{x}\ %% > \et\ \fundefline q{A \times B}{B}{(x,y)}{y}\ %% > \text{les projections canoniques}\ .$$ > \end{exoenonce} > And after formating operation I get : > %% > \begin{exoenonce} > On note alors > $$ \fundefline p{A \times B}{A}{(x,y)}{x}\ %% > \et\ \fundefline q{A \times > B}{B}{(x,y)}{y}\ %% \text{les projections canoniques}\ .$$ > \end{exoenonce} > Causing a part of code to be commented that should not and for > instance here an unbalanced dollar that makes the code completly > unexecutable ! Thanks for the report. I can repoduce the issue. It seems that the regexp in `LaTeX-fill-region-as-paragraph' to identify a code comment isn't wise enough: ---------------------------------------------------------------------- (if (re-search-forward (concat "\\(" ;; Code comments. "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" TeX-comment-start-regexp "\\|" [...] ---------------------------------------------------------------------- This doesn't match lines which end with "\ %%". I'll try to find something better. Regards, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 12 10:28:12 2021 Received: (at 51762) by debbugs.gnu.org; 12 Nov 2021 15:28:12 +0000 Received: from localhost ([127.0.0.1]:45767 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlYTL-0005dU-U2 for submit@debbugs.gnu.org; Fri, 12 Nov 2021 10:28:12 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:55704) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlYTK-0005dL-7I for 51762@debbugs.gnu.org; Fri, 12 Nov 2021 10:28:11 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id EF1A662; Sat, 13 Nov 2021 00:28:07 +0900 (JST) From: Ikumi Keita To: "Pierre L. Nageoire" Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <81175.1636712355@localhost> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> Comments: In-reply-to Ikumi Keita message dated "Fri, 12 Nov 2021 19:19:15 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Date: Sat, 13 Nov 2021 00:28:08 +0900 Message-ID: <83300.1636730888@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain >>>>> Ikumi Keita writes: > It seems that the regexp in `LaTeX-fill-region-as-paragraph' to identify > a code comment isn't wise enough: > ---------------------------------------------------------------------- > (if (re-search-forward > (concat "\\(" > ;; Code comments. > "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" > TeX-comment-start-regexp > "\\|" > [...] > ---------------------------------------------------------------------- > This doesn't match lines which end with "\ %%". I'll try to find > something better. I think the attached patch fixes the problem. Could you test whether it works on your side? I confirmed this fix passes regression test, but would appreciate if others also could have a look to find any possible regression. Regards, Ikumi Keita --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=patch Content-Description: augment regexp diff --git a/latex.el b/latex.el index 05238344..6b464d50 100644 --- a/latex.el +++ b/latex.el @@ -4022,7 +4022,7 @@ performed in that case." (if (re-search-forward (concat "\\(" ;; Code comments. - "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" + "\\([^ \r\n%\\]\\|\\\\[% ]\\)\\([ \t]\\|\\\\\\\\\\)*" TeX-comment-start-regexp "\\|" ;; Lines ending with `\par'. --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 12 23:37:42 2021 Received: (at 51762) by debbugs.gnu.org; 13 Nov 2021 04:37:42 +0000 Received: from localhost ([127.0.0.1]:46365 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlknO-0000tx-99 for submit@debbugs.gnu.org; Fri, 12 Nov 2021 23:37:42 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:56664) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlknK-0000th-5X for 51762@debbugs.gnu.org; Fri, 12 Nov 2021 23:37:40 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id A55FA5C; Sat, 13 Nov 2021 13:37:34 +0900 (JST) From: Ikumi Keita To: "Pierre L. Nageoire" Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <83300.1636730888@localhost> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> Comments: In-reply-to Ikumi Keita message dated "Sat, 13 Nov 2021 00:28:08 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <85875.1636778236.1@localhost> Date: Sat, 13 Nov 2021 13:37:16 +0900 Message-ID: <85876.1636778236@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> Ikumi Keita writes: > I think the attached patch fixes the problem. Could you test whether it > works on your side? Hmm, the patch also fails to identify the following form of code comment: \\% This is a code comment. That is, a line beginning with 0 or more whitespaces, followed by even number of back slashes, followed by percent sign(s) and comment body. Maybe we should give up regexp-based approach to find out code comments accurately. Regards, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 13 11:05:03 2021 Received: (at 51762) by debbugs.gnu.org; 13 Nov 2021 16:05:03 +0000 Received: from localhost ([127.0.0.1]:47944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlvWZ-0001AY-3i for submit@debbugs.gnu.org; Sat, 13 Nov 2021 11:05:03 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlvWU-00019y-K5 for 51762@debbugs.gnu.org; Sat, 13 Nov 2021 11:05:02 -0500 Received: from [2001:470:142:3::e] (port=54698 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mlvWO-00065a-73; Sat, 13 Nov 2021 11:04:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=p+gikssrtfcbQFDZTaV6Kka7E9j3+yc4X9Qfb0Fl7lk=; b=iDtVwStJjGLpfhutFrC7 5BErWlwqJEM2fQ+uN+oYfy8nbpsM8tM/yfkHK78aJfmzmRrAAO+hAFUFNFTBjBpp/Vu9VBv3vYS5P x270AdqOF3kcKu/WO4Uz4a4NcpBaZ4ezp3740W1tOpUPHrB9Z6gHTccbEmtd4oHwddrFtLElaCpwA shscxpJtID5Wj9/igwZo+BoQEDk+CZ5uRU7/4vEL7K9Uk9p+YnwZTiJivOt8OlWbkfJmn70iUWMbn AU24DFb1JzpZPvuShq0I58AEwvQqdZYriEUE9OCNx54ucSoka3TFXXNwUBLPUSkRKkmCVkpYHzhoC Xqn1BqqAruOx2Q==; Received: from p5b326e61.dip0.t-ipconnect.de ([91.50.110.97]:56281 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mlvWN-0004yz-RY; Sat, 13 Nov 2021 11:04:52 -0500 From: Arash Esbati To: Ikumi Keita Subject: Re: bug#51762: 13.0.14; environment formating References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> Date: Sat, 13 Nov 2021 17:04:33 +0100 In-Reply-To: <85876.1636778236@localhost> (Ikumi Keita's message of "Sat, 13 Nov 2021 13:37:16 +0900") Message-ID: <86pmr4t52m.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org, "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Keita, Ikumi Keita writes: >>>>>> Ikumi Keita writes: >> I think the attached patch fixes the problem. Could you test whether it >> works on your side? > > Hmm, the patch also fails to identify the following form of code > comment: > \\% This is a code comment. > That is, a line beginning with 0 or more whitespaces, followed by even > number of back slashes, followed by percent sign(s) and comment body. Thank you for looking into this. The way I understand this regexp: "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" ^^^^^^^ is there to exclude the control symbol \%, i.e., being parsed as comment start. Would it help if we generlize the control symbol idea by saying: "\\([^ \r\n%\\]\\|\\\\[^a-zA-Z0-9\\]\\)\\([ \t]\\|\\\\\\\\\\)*" ^^^^^^^^^^^^^^ > Maybe we should give up regexp-based approach to find out code comments > accurately. Are you thinking about `syntax-ppss'? Best, Arash From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 14 01:19:54 2021 Received: (at 51762) by debbugs.gnu.org; 14 Nov 2021 06:19:54 +0000 Received: from localhost ([127.0.0.1]:48871 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mm8rq-0005oh-A7 for submit@debbugs.gnu.org; Sun, 14 Nov 2021 01:19:54 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:58712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mm8rn-0005oX-2Y for 51762@debbugs.gnu.org; Sun, 14 Nov 2021 01:19:52 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id F0C7960; Sun, 14 Nov 2021 15:19:48 +0900 (JST) From: Ikumi Keita To: Arash Esbati Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <86pmr4t52m.fsf@gnu.org> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> Comments: In-reply-to Arash Esbati message dated "Sat, 13 Nov 2021 17:04:33 +0100." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Date: Sun, 14 Nov 2021 15:19:48 +0900 Message-ID: <92583.1636870788@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org, "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hi Arash, thanks for your comment. >>>>> Arash Esbati writes: > Thank you for looking into this. The way I understand this regexp: > "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" > ^^^^^^^ > is there to exclude the control symbol \%, i.e., being parsed as comment > start. I think so, too. Tassilo added it to fix bug#48937 this June. > Would it help if we generlize the control symbol idea by saying: > "\\([^ \r\n%\\]\\|\\\\[^a-zA-Z0-9\\]\\)\\([ \t]\\|\\\\\\\\\\)*" > ^^^^^^^^^^^^^^ I'm afraid that it doesn't match a line \\% This is a code comment. , either. Try typing M-q on the following paragraph in latex mode buffer: ---------------------------------------------------------------------- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, \\% This is a code comment. mattis eget, convallis nec, purus. ---------------------------------------------------------------------- >> Maybe we should give up regexp-based approach to find out code comments >> accurately. > Are you thinking about `syntax-ppss'? No, other parts of latex.el ideintify code comments by a different logic like: ;; A line with some code, followed by a comment? ((and (setq code-comment-start (save-excursion (beginning-of-line) (TeX-search-forward-comment-start (line-end-position)))) (> (point) code-comment-start) (not (TeX-in-commented-line)) (save-excursion (goto-char code-comment-start) ;; See if there is at least one non-whitespace character ;; before the comment starts. (re-search-backward "[^ \t\n]" (line-beginning-position) t))) So it would be better to follow this logic than to rely on regexp. In addition, regexp-based approach is easily fooled by percent sign in \verb, while `TeX-search-forward-comment-start' (which in turn calls `LaTeX-search-forward-comment-start') takes care of such cases. I ended up with the attached tentative patch. I hope this doesn't slow down the filling loop significantly. What do you think about it? Regards, Ikumi Keita --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=patch Content-Description: tentative fix diff --git a/latex.el b/latex.el index 05238344..97bada66 100644 --- a/latex.el +++ b/latex.el @@ -4019,12 +4019,24 @@ performed in that case." (save-restriction (goto-char from) (while (< (point) end-marker) - (if (re-search-forward + (if (or + ;; Code comments. + (let ((p (point))) + (when (TeX-search-forward-comment-start end-marker) + (goto-char (match-beginning 0)) + ;; Pretend as if there were no match to tell later + ;; code that there is a code comment. + (set-match-data nil) + ;; See if there is at least one non-whitespace + ;; character before the comment starts. + (or (save-excursion + (skip-chars-backward " \t" (line-beginning-position)) + (not (bolp))) + (progn + (goto-char p) + nil)))) + (re-search-forward (concat "\\(" - ;; Code comments. - "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" - TeX-comment-start-regexp - "\\|" ;; Lines ending with `\par'. "\\(\\=\\|[^" TeX-esc "\n]\\)\\(" (regexp-quote (concat TeX-esc TeX-esc)) @@ -4038,7 +4050,7 @@ performed in that case." "\\(\\s-*\\*\\)?" "\\(\\s-*\\[[^]]*\\]\\)?" "\\s-*$\\)") - end-marker t) + end-marker t)) (progn (goto-char (line-end-position)) (delete-horizontal-space) @@ -4052,7 +4064,7 @@ performed in that case." ;; Code comments and lines ending with `\par' are ;; included in filling. Lines ending with `\\' are ;; skipped. - (if (match-string 1) + (if (not (match-beginning 0)) ; code comment (LaTeX-fill-region-as-para-do from (point) justify-flag) (LaTeX-fill-region-as-para-do from (line-beginning-position 0) justify-flag) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 15 12:58:27 2021 Received: (at 51762) by debbugs.gnu.org; 15 Nov 2021 17:58:27 +0000 Received: from localhost ([127.0.0.1]:56079 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmgFO-0004GO-Ra for submit@debbugs.gnu.org; Mon, 15 Nov 2021 12:58:27 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmgFJ-0004G5-Ov for 51762@debbugs.gnu.org; Mon, 15 Nov 2021 12:58:25 -0500 Received: from [2001:470:142:3::e] (port=43924 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mmgFD-0000Kp-4b; Mon, 15 Nov 2021 12:58:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=xLnvXA6tqalU79/SyWaO3ljbvAdzGe2SP6nYFhswV7g=; b=RZkzU3XoZacTecxICPMX uJUS3bdfEbZ5+eiK1ppf84DrhUAi1S32C6D0hGC919Q83bICJNCRvvDahDkL4CxBZMonwcSfcr9rG e+lKr47QVPzGA64oFVeiorP6hyMZou+b0JpK0t3DKaUSJzX8EuOX21jUDmykvnq04PBUA1y4988aH RjszrJsQRW0E6tkZsJSxlT8GPhJPD/ACWFKJ+bifooY2N9NGUH800HbBYUl5f++2ZBPFlYsz46lMM tJCBp2JAwZmipnnmxDRqlwUT36mNGNbS3uahGxOXeMUJuZR++/2OBbHTyRaOKOqQ3WiqB8kaR1rSJ f/rROamICjnsZQ==; Received: from p5b326e61.dip0.t-ipconnect.de ([91.50.110.97]:62118 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mmgFC-0000Qd-RO; Mon, 15 Nov 2021 12:58:15 -0500 From: Arash Esbati To: Ikumi Keita Subject: Re: bug#51762: 13.0.14; environment formating References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> Date: Mon, 15 Nov 2021 18:57:33 +0100 In-Reply-To: <92583.1636870788@localhost> (Ikumi Keita's message of "Sun, 14 Nov 2021 15:19:48 +0900") Message-ID: <86czn1uws2.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org, "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Keita, Ikumi Keita writes: >>>>>> Arash Esbati writes: >> Thank you for looking into this. The way I understand this regexp: > >> "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" >> ^^^^^^^ > >> is there to exclude the control symbol \%, i.e., being parsed as comment >> start. > > I think so, too. Tassilo added it to fix bug#48937 this June. > >> Would it help if we generlize the control symbol idea by saying: > >> "\\([^ \r\n%\\]\\|\\\\[^a-zA-Z0-9\\]\\)\\([ \t]\\|\\\\\\\\\\)*" >> ^^^^^^^^^^^^^^ > > I'm afraid that it doesn't match a line > \\% This is a code comment. > , either. Try typing M-q on the following paragraph in latex mode > buffer: > ---------------------------------------------------------------------- > Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit > tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, > \\% This is a code comment. > mattis eget, convallis nec, purus. > ---------------------------------------------------------------------- I agree; it's hard to come up with a regexp to catch all possible comment lines. >>> Maybe we should give up regexp-based approach to find out code comments >>> accurately. > >> Are you thinking about `syntax-ppss'? > > No, other parts of latex.el ideintify code comments by a different logic > like: > ;; A line with some code, followed by a comment? > ((and (setq code-comment-start (save-excursion > (beginning-of-line) > (TeX-search-forward-comment-start > (line-end-position)))) > (> (point) code-comment-start) > (not (TeX-in-commented-line)) > (save-excursion > (goto-char code-comment-start) > ;; See if there is at least one non-whitespace character > ;; before the comment starts. > (re-search-backward "[^ \t\n]" (line-beginning-position) t))) > > So it would be better to follow this logic than to rely on regexp. In > addition, regexp-based approach is easily fooled by percent sign in > \verb, while `TeX-search-forward-comment-start' (which in turn calls > `LaTeX-search-forward-comment-start') takes care of such cases. > > I ended up with the attached tentative patch. I hope this doesn't slow > down the filling loop significantly. What do you think about it? Do you have an idea about the performance hit? I'd say we have to bite the bullet and use the code. Our current approach is not the best. And while we're at it, we'll have to take care of this comment in `LaTeX-verbatim-macro-boundaries': ;; XXX: Here we assume we are dealing with \verb which ;; expects the delimiter right behind the command. ;; However, \lstinline can also cope with whitespace as ;; well as an optional argument after the command. Other packages like fancyvrb and minted do the same: Inline verb macros can have an optional and a mandatory argument. So the regexp fun will continue :-) Best, Arash From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 16 01:29:39 2021 Received: (at 51762) by debbugs.gnu.org; 16 Nov 2021 06:29:39 +0000 Received: from localhost ([127.0.0.1]:56822 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmryN-0000jK-4k for submit@debbugs.gnu.org; Tue, 16 Nov 2021 01:29:39 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:36118) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmryK-0000j8-MS for 51762@debbugs.gnu.org; Tue, 16 Nov 2021 01:29:37 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 666186A; Tue, 16 Nov 2021 15:29:34 +0900 (JST) From: Ikumi Keita To: Arash Esbati Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <86czn1uws2.fsf@gnu.org> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> Comments: In-reply-to Arash Esbati message dated "Mon, 15 Nov 2021 18:57:33 +0100." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Date: Tue, 16 Nov 2021 15:29:30 +0900 Message-ID: <5222.1637044170@localhost> X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org, "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable >>>>> Arash Esbati writes: >>> Would it help if we generlize the control symbol idea by saying: >>=20 >>> "\\([^ \r\n%\\]\\|\\\\[^a-zA-Z0-9\\]\\)\\([ \t]\\|\\\\\\\\\\)*" >>> ^^^^^^^^^^^^^^ >>=20 >> I'm afraid that it doesn't match a line >> \\% This is a code comment. >> , either. Try typing M-q on the following paragraph in latex mode >> buffer: >> ---------------------------------------------------------------------- >> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit >> tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt = et, >> \\% This is a code comment. >> mattis eget, convallis nec, purus. >> ---------------------------------------------------------------------- > I agree; it's hard to come up with a regexp to catch all possible > comment lines. Indeed. >> I ended up with the attached tentative patch. I hope this doesn't slow >> down the filling loop significantly. What do you think about it? First of all, my previous propoal doesn't work correctly for lines ending with "\par". The first regexp group in the current code spans the highlighted interval in the attached screenshot actually, so the criterion "(not (match-beginning 0))" in the previous proposal is wrong. I attach the revised patch at last of this message. > Do you have an idea about the performance hit? Unfortunatetly, no. I just tried several examples by hand and checked that "make check" passes. They worked smoothly so I expect there isn't serious performance problem. > And while we're at it, we'll have to take care of this comment in > `LaTeX-verbatim-macro-boundaries': > ;; XXX: Here we assume we are dealing with \verb which > ;; expects the delimiter right behind the command. > ;; However, \lstinline can also cope with whitespace as > ;; well as an optional argument after the command. > Other packages like fancyvrb and minted do the same: Inline verb macros > can have an optional and a mandatory argument. So the regexp fun will > continue :-) OMG! =F0=9F=98=96 Anyway, I'd like to commit the attached revised fix along with some additional regression tests if no one objects. Regards, Ikumi Keita --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=screenshot.png Content-Transfer-Encoding: base64 Content-Description: regexp group coverage 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 pdviVwAoPJ/MgZkLyD54At+bmuMeEYLS3c22vqmwiOMLlpD81xbMxXpCb+lJh1eeQuXl4dD6V6N9 7O1/1t7DAOya/AIAgT062eao2tu+q1zdv6KLacTPmE92/DF827XEIzIMhUZdb+ZCurp/9s4vY66O +JkLyNwRj9LdjSb33UmLJ+5FUjg2CGevfnvx2Tu/6/L4rus7js5vPU9Q77L3Pj2zdDkZ2/bRfcm8 KuPTnTzLhqEP235f0dz6eNorH+FamJTC1jFTHX7/VTa8f2UiKsvWbe16ZDbNHh+PytO93OuaTRrD rkdfoNmj41F6aMvVWVqPNVm1zkl0RtHFNE68u5SM7fuRlEoiht9Cm9hJZUZe9j75Cmp/X4qSUsg5 eAKLwcjN78wiLLovpqIiTr73Janrt2MuNhDcP4p2sx9H5enhVByC8+x9KbHNM5Vl9MV61q1aT05O 5Y/39ff347Zhg9BoNVgq+NIjElXhutVw1O00HHW77WKGiiT/uYnun76G2s+H7ROeJfH7P2jx+HgA cg4eZ9fk2XScN53wwX0pTEohdd02hxNVe/ZNex3PJpFEfzSXnEMn2PXIbCJHRNvKD85+h+K0TPou W4jSw40Ds9/hyLyP6DTvWYfWt8fV9rGnz7KFAKy/ZQLtXvoPoYN6Ob19V7i6f/ufnYc2OIDorT+S d/wMOyfNpMGdt9Z4nNXl6v7ZO78SlizDkJHNLeu+AouFc9/8j4Iz5/Fq0dih+OzVby8+e+d3XR7f gKiOZO8/Wi5RzY4/RkBUB7vxebdqSkzCetK37iX+uflEb1vmdPyOKk0ul65ZWb7wjUf5bsfGyld+ 8zF+3L256g0MuxmAnZv/diouAO6Msv4D0oED2zaULR/Xr+SHjsBgADagh9Jt9W1p/QdkAMf2bXc+ BqEWpQDQPKqR3VeeSTsFwPHzR8qVdbyttUhUhbpV2Ye0o+WuiBwZbfvDGzqoF7pT52xliT+sJHzo ABrebf2A9GndDJ/Wzj+7uCL69Cyy9x/l5rjZqH28CO7TlZCBPWzlRl0BSSvWM2DVEtwbhALQauoD bL93Gp3mPWt3/ZpSVftcDyrbP31GNpm7DjLo769Q+3oT2KMTIQO612Gk1VPZ/tk7vwAkpRJJrUKh UqL29aP1tIkOb9eR+quKr6bO79o6vgHdOpD2zw4Att8/Hd92LWk78zGy9x+h6UN3Ox2ns/FXpOoe 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 RK5CYII= --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=patch Content-Description: revised patch diff --git a/latex.el b/latex.el index 05238344..1b4346f6 100644 --- a/latex.el +++ b/latex.el @@ -4004,7 +4004,8 @@ You can disable filling inside a specific environment by adding it to `LaTeX-indent-environment-list', only indentation is performed in that case." (interactive "*r\nP") - (let ((end-marker (save-excursion (goto-char to) (point-marker)))) + (let ((end-marker (save-excursion (goto-char to) (point-marker))) + has-code-comment) (if (or (assoc (LaTeX-current-environment) LaTeX-indent-environment-list) (member (TeX-current-macro) LaTeX-fill-excluded-macros) ;; This could be generalized, if there are more cases where @@ -4019,12 +4020,24 @@ performed in that case." (save-restriction (goto-char from) (while (< (point) end-marker) - (if (re-search-forward + (if (or + ;; Code comments. + (when (setq has-code-comment + (TeX-search-forward-comment-start end-marker)) + (goto-char has-code-comment) + (when + ;; See if there is at least one non-whitespace + ;; character before the comment starts. + (save-excursion + (skip-chars-backward " \t" (line-beginning-position)) + (bolp)) + ;; Not a code comment. Go back to the former + ;; point. + (setq has-code-comment nil) + (goto-char from)) + has-code-comment) + (re-search-forward (concat "\\(" - ;; Code comments. - "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" - TeX-comment-start-regexp - "\\|" ;; Lines ending with `\par'. "\\(\\=\\|[^" TeX-esc "\n]\\)\\(" (regexp-quote (concat TeX-esc TeX-esc)) @@ -4038,7 +4051,7 @@ performed in that case." "\\(\\s-*\\*\\)?" "\\(\\s-*\\[[^]]*\\]\\)?" "\\s-*$\\)") - end-marker t) + end-marker t)) (progn (goto-char (line-end-position)) (delete-horizontal-space) @@ -4052,7 +4065,8 @@ performed in that case." ;; Code comments and lines ending with `\par' are ;; included in filling. Lines ending with `\\' are ;; skipped. - (if (match-string 1) + (if (or has-code-comment + (match-beginning 1)) (LaTeX-fill-region-as-para-do from (point) justify-flag) (LaTeX-fill-region-as-para-do from (line-beginning-position 0) justify-flag) --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 17 05:18:09 2021 Received: (at 51762) by debbugs.gnu.org; 17 Nov 2021 10:18:09 +0000 Received: from localhost ([127.0.0.1]:60240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnI12-0000Cb-OA for submit@debbugs.gnu.org; Wed, 17 Nov 2021 05:18:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:48102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnI0y-0000Bh-IM for 51762@debbugs.gnu.org; Wed, 17 Nov 2021 05:18:07 -0500 Received: from [2001:470:142:3::e] (port=54674 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mnI0r-0000Nt-Mu; Wed, 17 Nov 2021 05:17:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=WMvjjNm2zVzyQKLvG5L7M0oZ9bou1EzkAYxjIhbv93E=; b=mDxBecpgTBPxH858Moon RTqdX6+pZNyO8FRaFfw5GN5ZQaFJxPiOBcHIPjemzWVj4arUEMOw1/iqAG4qcEKhoFsP12wRVwYnS CeY31kpYIFoG3pJjp1n5l89jNhw5VfqR5mYqUkfybuIWLkjS7i/uCf8yHflaQ6olJM1XFJjNk6qXu fTFwRvoKKprQHJxqKMuYTxThLKS0As7L5fPkbfvqHBhl1cWh++Ja4EUz+yFT3MXHCCsuDmBTeR3vB /8llOUbhcYzpTBe+IksXW4EO1CaDy4qgScmHy2XIkklx8pwKWn/5K5e3y8RXqwJdrXVFCnBo8tT9+ XrWzyBBLPNw1yg==; Received: from p5b326e61.dip0.t-ipconnect.de ([91.50.110.97]:49631 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mnI0p-0001ar-FY; Wed, 17 Nov 2021 05:17:55 -0500 From: Arash Esbati To: Ikumi Keita Subject: Re: bug#51762: 13.0.14; environment formating References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> Date: Wed, 17 Nov 2021 11:17:41 +0100 In-Reply-To: <5222.1637044170@localhost> (Ikumi Keita's message of "Tue, 16 Nov 2021 15:29:30 +0900") Message-ID: <86v90rhyre.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51762 Cc: 51762@debbugs.gnu.org, "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ikumi Keita writes: >>>>>> Arash Esbati writes: > >> Do you have an idea about the performance hit? > > Unfortunatetly, no. I just tried several examples by hand and checked > that "make check" passes. They worked smoothly so I expect there isn't > serious performance problem. There is `benchmark-run' but I don't think the performance hit is big enough to go through the trouble and benchmark it. >> And while we're at it, we'll have to take care of this comment in >> `LaTeX-verbatim-macro-boundaries': > >> ;; XXX: Here we assume we are dealing with \verb which >> ;; expects the delimiter right behind the command. >> ;; However, \lstinline can also cope with whitespace as >> ;; well as an optional argument after the command. > >> Other packages like fancyvrb and minted do the same: Inline verb macros >> can have an optional and a mandatory argument. So the regexp fun will >> continue :-) > > OMG! =F0=9F=98=96 :-) > Anyway, I'd like to commit the attached revised fix along with some > additional regression tests if no one objects. Yes, please go ahead. Best, Arash From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 17 09:24:39 2021 Received: (at control) by debbugs.gnu.org; 17 Nov 2021 14:24:39 +0000 Received: from localhost ([127.0.0.1]:60508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnLrb-0002dY-N9 for submit@debbugs.gnu.org; Wed, 17 Nov 2021 09:24:39 -0500 Received: from snd01012-jc.im.kddi.ne.jp ([27.86.105.156]:49667 helo=mgw1.mx.zaq.ne.jp) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnLra-0002dN-1i for control@debbugs.gnu.org; Wed, 17 Nov 2021 09:24:38 -0500 Received: from localhost by dmta1004-jc.im.kddi.ne.jp with ESMTP id <20211117142435726.XWFE.115252.localhost@dmta1004.jcom.zaq.ne.jp> for ; Wed, 17 Nov 2021 23:24:35 +0900 To: control@debbugs.gnu.org From: Ikumi Keita Subject: control message for bug #51762 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <19131.1637159074.1@localhost> Date: Wed, 17 Nov 2021 23:24:34 +0900 Message-ID: <19132.1637159074@localhost> X-VC-DATE: Wed, 17 Nov 2021 23:24:35 +0900 X-Spam-Score: 1.4 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 51762 quit Content analysis details: (1.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.4 KHOP_HELO_FCRDNS Relay HELO differs from its IP's reverse DNS X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) close 51762 quit From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 17 11:19:30 2021 Received: (at 51762) by debbugs.gnu.org; 17 Nov 2021 16:19:30 +0000 Received: from localhost ([127.0.0.1]:33613 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnNei-0005Cc-7W for submit@debbugs.gnu.org; Wed, 17 Nov 2021 11:19:30 -0500 Received: from snd00003-jc.im.kddi.ne.jp ([27.86.105.131]:46561 helo=mgw1.mx.zaq.ne.jp) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnLqz-0002bj-TX for 51762@debbugs.gnu.org; Wed, 17 Nov 2021 09:24:05 -0500 Received: from localhost by dmta0009-jc.im.kddi.ne.jp with ESMTP id <20211117142358711.QIWH.55105.localhost@dmta0009.jcom.zaq.ne.jp>; Wed, 17 Nov 2021 23:23:58 +0900 From: Ikumi Keita To: Arash Esbati Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <86v90rhyre.fsf@gnu.org> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> <86v90rhyre.fsf@gnu.org> Comments: In-reply-to Arash Esbati message dated "Wed, 17 Nov 2021 11:17:41 +0100." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <19114.1637159037.1@localhost> Date: Wed, 17 Nov 2021 23:23:57 +0900 Message-ID: <19116.1637159037@localhost> X-VC-DATE: Wed, 17 Nov 2021 23:23:58 +0900 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 X-Mailman-Approved-At: Wed, 17 Nov 2021 11:19:27 -0500 Cc: 51762@debbugs.gnu.org, "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> Arash Esbati writes: >> Anyway, I'd like to commit the attached revised fix along with some >> additional regression tests if no one objects. > Yes, please go ahead. Pushed. Pierre, I'll close this bug. Bye, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 18 02:17:59 2021 Received: (at 51762) by debbugs.gnu.org; 18 Nov 2021 07:17:59 +0000 Received: from localhost ([127.0.0.1]:34521 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnbgF-0003BL-Gy for submit@debbugs.gnu.org; Thu, 18 Nov 2021 02:17:59 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:42206) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnbgD-0003B9-8n for 51762@debbugs.gnu.org; Thu, 18 Nov 2021 02:17:58 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 1C1A05C; Thu, 18 Nov 2021 16:17:55 +0900 (JST) From: Ikumi Keita To: Arash Esbati , 51762@debbugs.gnu.org Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <19116.1637159037@localhost> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> <86v90rhyre.fsf@gnu.org> <19116.1637159037@localhost> Comments: In-reply-to Ikumi Keita message dated "Wed, 17 Nov 2021 23:23:57 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <22195.1637219873.1@localhost> Date: Thu, 18 Nov 2021 16:17:53 +0900 Message-ID: <22196.1637219873@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: "Pierre L. Nageoire" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> Ikumi Keita writes: >>>>> Arash Esbati writes: >>> Anyway, I'd like to commit the attached revised fix along with some >>> additional regression tests if no one objects. >> Yes, please go ahead. > Pushed. Pierre, I'll close this bug. Ah, no, the logic is incomplete. If there is a line matching the regexp before the first code comment, my code skips it. So we always have to perform both code comment detection and regexp search, and take up the earlier match if both exists. I'll revise my code... Regards, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 18 12:02:22 2021 Received: (at 51762) by debbugs.gnu.org; 18 Nov 2021 17:02:22 +0000 Received: from localhost ([127.0.0.1]:37041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnknm-0005F2-7H for submit@debbugs.gnu.org; Thu, 18 Nov 2021 12:02:22 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:43362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnkng-00059o-OI for 51762@debbugs.gnu.org; Thu, 18 Nov 2021 12:02:20 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 1FA1A5C; Fri, 19 Nov 2021 02:02:14 +0900 (JST) From: Ikumi Keita To: Arash Esbati Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <22196.1637219873@localhost> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> <86v90rhyre.fsf@gnu.org> <19116.1637159037@localhost> <22196.1637219873@localhost> Comments: In-reply-to Ikumi Keita message dated "Thu, 18 Nov 2021 16:17:53 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <25948.1637254933.1@localhost> Date: Fri, 19 Nov 2021 02:02:13 +0900 Message-ID: <25949.1637254933@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: "Pierre L. Nageoire" , 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> Ikumi Keita writes: > Ah, no, the logic is incomplete. If there is a line matching the regexp > before the first code comment, my code skips it. So we always have to > perform both code comment detection and regexp search, and take up the > earlier match if both exists. > I'll revise my code... Done. Bye, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 18 15:41:33 2021 Received: (at 51762) by debbugs.gnu.org; 18 Nov 2021 20:41:33 +0000 Received: from localhost ([127.0.0.1]:37315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnoDt-0006C5-Hh for submit@debbugs.gnu.org; Thu, 18 Nov 2021 15:41:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnoDq-0006Bp-J1 for 51762@debbugs.gnu.org; Thu, 18 Nov 2021 15:41:32 -0500 Received: from [2001:470:142:3::e] (port=37814 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mnoDj-0007tM-PW; Thu, 18 Nov 2021 15:41:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=yEbjJDn/fMKnStswoXVg/i8i4S8UARqBw1LoUWK+cCw=; b=ZJXziW/czFE0bEF7V4Ru 1wlt8QzrMrGZDGGAfCADnXkh0FhCK3ZhiumLfDiuS7J41BUnkfaP0bj4nJp8gnKAPEveOBe6sjkGx MaN454/iAVPxNMG2WuRaqf8kwWwMF96QA3cs1aWyS3GXFroE3wQl9H4gQRGiU4PAoVF6YCCa+dT1F gkKBioVC12rpuVVjbU9lUPiTFr5259KOS6wOKSkGvdpHBIrfZjebkM063gkQIvUYkCdxN9x2iuyE2 bI1lvH7C88kfuhytYdx7LjzrOauqCk+dRYqVXg+NjKTM23uccFbHKHfAGzeIohligXDhMb6Ss7jq1 A8ceKOh5PH+zng==; Received: from p5b326e61.dip0.t-ipconnect.de ([91.50.110.97]:52506 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mnoDj-0004Uz-Hg; Thu, 18 Nov 2021 15:41:23 -0500 From: Arash Esbati To: Ikumi Keita Subject: Re: bug#51762: 13.0.14; environment formating References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> <86v90rhyre.fsf@gnu.org> <19116.1637159037@localhost> <22196.1637219873@localhost> <25949.1637254933@localhost> Date: Thu, 18 Nov 2021 21:40:28 +0100 In-Reply-To: <25949.1637254933@localhost> (Ikumi Keita's message of "Fri, 19 Nov 2021 02:02:13 +0900") Message-ID: <867dd5nqo3.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51762 Cc: "Pierre L. Nageoire" , 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Keita, Ikumi Keita writes: >>>>>> Ikumi Keita writes: >> Ah, no, the logic is incomplete. If there is a line matching the regexp >> before the first code comment, my code skips it. So we always have to >> perform both code comment detection and regexp search, and take up the >> earlier match if both exists. > >> I'll revise my code... > > Done. Thanks for the update. I have a question, though: You have also expanded the `LaTeX-filling' ert test. bug#51762-5 test turns this: --8<---------------cut here---------------start------------->8--- % bug#51762-5 "\\" before code comment shouldn't be skipped. Mauris ac felis vel velit tristique imperdiet. Vestibulum convallis, lorem a tempus semper, dui dui euismod elit, vitae placerat urna tortor vitae lacus.\\ Fusce sagittis, libero non molestie mollis, magna orci ultrices dolor, at vulputate neque nulla lacinia eros. Aliquam posuere. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.% --8<---------------cut here---------------end--------------->8--- into this: --8<---------------cut here---------------start------------->8--- % bug#51762-5 "\\" before code comment shouldn't be skipped. Mauris ac felis vel velit tristique imperdiet. Vestibulum convallis, lorem a tempus semper, dui dui euismod elit, vitae placerat urna tortor vitae lacus.\\ Fusce sagittis, libero non molestie mollis, magna orci ultrices dolor, at vulputate neque nulla lacinia eros. Aliquam posuere. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.% --8<---------------cut here---------------end--------------->8--- I would have expected something like this: --8<---------------cut here---------------start------------->8--- % bug#51762-5 "\\" before code comment shouldn't be skipped. Mauris ac felis vel velit tristique imperdiet. Vestibulum convallis, lorem a tempus semper, dui dui euismod elit, vitae placerat urna tortor vitae lacus.\\ Fusce sagittis, libero non molestie mollis, magna orci ultrices dolor, at vulputate neque nulla lacinia eros. Aliquam posuere. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.% --8<---------------cut here---------------end--------------->8--- Am I missing something? I works fine if I replace \\ with \par. Best, Arash From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 18 22:08:44 2021 Received: (at 51762) by debbugs.gnu.org; 19 Nov 2021 03:08:44 +0000 Received: from localhost ([127.0.0.1]:37520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnuGa-0008GV-9d for submit@debbugs.gnu.org; Thu, 18 Nov 2021 22:08:44 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:44558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mnuGX-0008GJ-TU for 51762@debbugs.gnu.org; Thu, 18 Nov 2021 22:08:43 -0500 Received: from localhost (110-133-201-220.rev.home.ne.jp [110.133.201.220]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 1711E5C; Fri, 19 Nov 2021 12:08:40 +0900 (JST) From: Ikumi Keita To: Arash Esbati Subject: Re: bug#51762: 13.0.14; environment formating In-reply-to: <867dd5nqo3.fsf@gnu.org> References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> <86v90rhyre.fsf@gnu.org> <19116.1637159037@localhost> <22196.1637219873@localhost> <25949.1637254933@localhost> <867dd5nqo3.fsf@gnu.org> Comments: In-reply-to Arash Esbati message dated "Thu, 18 Nov 2021 21:40:28 +0100." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <27521.1637291317.1@localhost> Date: Fri, 19 Nov 2021 12:08:37 +0900 Message-ID: <27522.1637291317@localhost> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: "Pierre L. Nageoire" , 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Arash, > Thanks for the update. I have a question, though: You have also > expanded the `LaTeX-filling' ert test. [...] > I would have expected something like this: > % bug#51762-5 "\\" before code comment shouldn't be skipped. > Mauris ac felis vel velit tristique imperdiet. Vestibulum convallis, > lorem a tempus semper, dui dui euismod elit, vitae placerat urna > tortor vitae lacus.\\ > Fusce sagittis, libero non molestie mollis, magna orci ultrices dolor, > at vulputate neque nulla lacinia eros. Aliquam posuere. Cum sociis > natoque penatibus et magnis dis parturient montes, nascetur ridiculus > mus.% > Am I missing something? I works fine if I replace \\ with \par. I agree it looks odd, but it seems an intended behavior. In `LaTeX-fill-region-as-paragraph', we have: ---------------------------------------------------------------------- ;; Code comments and lines ending with `\par' are ;; included in filling. Lines ending with `\\' are ;; skipped. (if (or has-code-comment (match-beginning 1)) (LaTeX-fill-region-as-para-do from (point) justify-flag) (LaTeX-fill-region-as-para-do from (line-beginning-position 0) justify-flag) ;; At least indent the line ending with `\\'. (indent-according-to-mode))) ---------------------------------------------------------------------- According to the comment, lines ending with `\\' are excluded from filling on purpose, though I'm not sure why. Perhaps for the cases inside environments like tabular, array, align etc.? By the way, detection of code comments still needs revision to mimic the regexp search. ---------------------------------------------------------------------- ;; Code comments. (when (setq has-code-comment (TeX-search-forward-comment-start end-marker)) ;; See if there is at least one non-whitespace ;; character before the comment starts. (goto-char has-code-comment) (skip-chars-backward " \t" (line-beginning-position)) (if (bolp) ;; Not a code comment. (setq has-code-comment nil))) ---------------------------------------------------------------------- It's OK to skip when `TeX-search-forward-comment-start' finds no match, but we must continue searching when the found candidate turns out to be non code comment. That's what regexp search would have done. I'll fix this later. Regards, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 19 14:06:01 2021 Received: (at 51762) by debbugs.gnu.org; 19 Nov 2021 19:06:01 +0000 Received: from localhost ([127.0.0.1]:40518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mo9Cz-0003sy-5c for submit@debbugs.gnu.org; Fri, 19 Nov 2021 14:06:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49770) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mo9Cw-0003si-3d for 51762@debbugs.gnu.org; Fri, 19 Nov 2021 14:06:00 -0500 Received: from [2001:470:142:3::e] (port=51436 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo9Co-0006hh-Gn; Fri, 19 Nov 2021 14:05:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=RNWYNkanmtGqT7QJrUb8TzFT2MgQ1mC1x1BjVSwBnSg=; b=KEu+ycTVxrpvWrgFA1bG UVOVqYJgwBPRJwuHu+6kVg9fcMPbKm7j/3jvz7aqDkWEX4Y995hK4KRlPXFFeatWErCIyvfrpSsUg ukj8AHKvfPwZ3UO7qDY/McHDccEyDc2XVOvln0Idcfe4FC9fzJtqYOtttvUUMD64GTKkEleJVMctz te5jO80jBct9HikcND1Byzz2q/7nVcpUQrrNQq2GvKlRTIVIrmoEcnyHG2/QoefanR91JhaL2aPCH QG2KExkZ9OiUHCUzTxz02QoSccW9K5+jT3/ItzTROnTgbM0Fx6b/UWKr9Yltw685HU3cpoye7n3tY Toy12xNCDvT/bA==; Received: from p5b326e61.dip0.t-ipconnect.de ([91.50.110.97]:52965 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo9Ci-0004wp-00; Fri, 19 Nov 2021 14:05:49 -0500 From: Arash Esbati To: Ikumi Keita Subject: Re: bug#51762: 13.0.14; environment formating References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> <5222.1637044170@localhost> <86v90rhyre.fsf@gnu.org> <19116.1637159037@localhost> <22196.1637219873@localhost> <25949.1637254933@localhost> <867dd5nqo3.fsf@gnu.org> <27522.1637291317@localhost> Date: Fri, 19 Nov 2021 20:05:26 +0100 In-Reply-To: <27522.1637291317@localhost> (Ikumi Keita's message of "Fri, 19 Nov 2021 12:08:37 +0900") Message-ID: <864k88uft5.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51762 Cc: "Pierre L. Nageoire" , 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Keita, Ikumi Keita writes: > I agree it looks odd, but it seems an intended behavior. In > `LaTeX-fill-region-as-paragraph', we have: > ---------------------------------------------------------------------- > ;; Code comments and lines ending with `\par' are > ;; included in filling. Lines ending with `\\' are > ;; skipped. > (if (or has-code-comment > (match-beginning 1)) > (LaTeX-fill-region-as-para-do from (point) justify-flag) > (LaTeX-fill-region-as-para-do > from (line-beginning-position 0) justify-flag) > ;; At least indent the line ending with `\\'. > (indent-according-to-mode))) > ---------------------------------------------------------------------- > According to the comment, lines ending with `\\' are excluded from > filling on purpose, though I'm not sure why. Perhaps for the cases > inside environments like tabular, array, align etc.? Ah, I see. Sorry for missing that. While we're at it, should we also cater for \newline and \linebreak? Currently, they handled as normal macro. It should be easy to add them to the regexp. WDYT? Best, Arash From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 20 04:42:30 2021 Received: (at 51762) by debbugs.gnu.org; 20 Nov 2021 09:42:30 +0000 Received: from localhost ([127.0.0.1]:41722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1moMtB-0000Xv-SW for submit@debbugs.gnu.org; Sat, 20 Nov 2021 04:42:30 -0500 Received: from smtp05.smtpout.orange.fr ([80.12.242.127]:59697 helo=smtp.smtpout.orange.fr) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1moMtA-0000Xl-5N for 51762@debbugs.gnu.org; Sat, 20 Nov 2021 04:42:28 -0500 Received: from jabberwocky ([86.247.163.76]) by smtp.orange.fr with ESMTP id oMt6mGNpconYgoMt6m3kaT; Sat, 20 Nov 2021 10:42:26 +0100 X-ME-Helo: jabberwocky X-ME-Date: Sat, 20 Nov 2021 10:42:26 +0100 X-ME-IP: 86.247.163.76 From: "Pierre L. Nageoire" To: Arash Esbati Subject: Re: bug#51762: 13.0.14; environment formating References: <86ilwzmcsc.fsf@pollock-nageoire.net> <81175.1636712355@localhost> <83300.1636730888@localhost> <85876.1636778236@localhost> <86pmr4t52m.fsf@gnu.org> <92583.1636870788@localhost> <86czn1uws2.fsf@gnu.org> Date: Sat, 20 Nov 2021 09:50:51 +0100 In-Reply-To: <86czn1uws2.fsf@gnu.org> (Arash Esbati's message of "Mon, 15 Nov 2021 18:57:33 +0100") Message-ID: <86mtlzb47o.fsf@pollock-nageoire.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51762 Cc: Ikumi Keita , 51762@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Anyway thanks having taken care of this question ! I hope you ll find a good solution ; I have unfortunately no time to investigate this subtle regexp question. Moreover I am not familiar with this part of auctex code. So thanks again to do it for me and hopefully for the rest of the community ! Arash Esbati writes: > Hi Keita, > > Ikumi Keita writes: > >>>>>>> Arash Esbati writes: >>> Thank you for looking into this. The way I understand this regexp: >> >>> "\\([^ \r\n%\\]\\|\\\\%\\)\\([ \t]\\|\\\\\\\\\\)*" >>> ^^^^^^^ >> >>> is there to exclude the control symbol \%, i.e., being parsed as comment >>> start. >> >> I think so, too. Tassilo added it to fix bug#48937 this June. >> >>> Would it help if we generlize the control symbol idea by saying: >> >>> "\\([^ \r\n%\\]\\|\\\\[^a-zA-Z0-9\\]\\)\\([ \t]\\|\\\\\\\\\\)*" >>> ^^^^^^^^^^^^^^ >> >> I'm afraid that it doesn't match a line >> \\% This is a code comment. >> , either. Try typing M-q on the following paragraph in latex mode >> buffer: >> ---------------------------------------------------------------------- >> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit >> tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, >> \\% This is a code comment. >> mattis eget, convallis nec, purus. >> ---------------------------------------------------------------------- > > I agree; it's hard to come up with a regexp to catch all possible > comment lines. > >>>> Maybe we should give up regexp-based approach to find out code comments >>>> accurately. >> >>> Are you thinking about `syntax-ppss'? >> >> No, other parts of latex.el ideintify code comments by a different logic >> like: >> ;; A line with some code, followed by a comment? >> ((and (setq code-comment-start (save-excursion >> (beginning-of-line) >> (TeX-search-forward-comment-start >> (line-end-position)))) >> (> (point) code-comment-start) >> (not (TeX-in-commented-line)) >> (save-excursion >> (goto-char code-comment-start) >> ;; See if there is at least one non-whitespace character >> ;; before the comment starts. >> (re-search-backward "[^ \t\n]" (line-beginning-position) t))) >> >> So it would be better to follow this logic than to rely on regexp. In >> addition, regexp-based approach is easily fooled by percent sign in >> \verb, while `TeX-search-forward-comment-start' (which in turn calls >> `LaTeX-search-forward-comment-start') takes care of such cases. >> >> I ended up with the attached tentative patch. I hope this doesn't slow >> down the filling loop significantly. What do you think about it? > > Do you have an idea about the performance hit? I'd say we have to bite > the bullet and use the code. Our current approach is not the best. And > while we're at it, we'll have to take care of this comment in > `LaTeX-verbatim-macro-boundaries': > > ;; XXX: Here we assume we are dealing with \verb which > ;; expects the delimiter right behind the command. > ;; However, \lstinline can also cope with whitespace as > ;; well as an optional argument after the command. > > Other packages like fancyvrb and minted do the same: Inline verb macros > can have an optional and a mandatory argument. So the regexp fun will > continue :-) > > Best, Arash From unknown Fri Jun 20 07:16:05 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 18 Dec 2021 12:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator