From unknown Sun Sep 21 18:12:43 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#74307 <74307@debbugs.gnu.org> To: bug#74307 <74307@debbugs.gnu.org> Subject: Status: 30.0.92; emacs-lisp font-locking word regexp Reply-To: bug#74307 <74307@debbugs.gnu.org> Date: Mon, 22 Sep 2025 01:12:43 +0000 retitle 74307 30.0.92; emacs-lisp font-locking word regexp reassign 74307 emacs submitter 74307 Roland Winkler severity 74307 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 11 01:29:10 2024 Received: (at submit) by debbugs.gnu.org; 11 Nov 2024 06:29:10 +0000 Received: from localhost ([127.0.0.1]:57842 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tANvB-0006b7-Mo for submit@debbugs.gnu.org; Mon, 11 Nov 2024 01:29:09 -0500 Received: from lists.gnu.org ([209.51.188.17]:57996) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tANv8-0006az-KD for submit@debbugs.gnu.org; Mon, 11 Nov 2024 01:29:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tANv7-0004r7-UF for bug-gnu-emacs@gnu.org; Mon, 11 Nov 2024 01:29:06 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tANv7-0007uL-FF for bug-gnu-emacs@gnu.org; Mon, 11 Nov 2024 01:29:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=Xuol0NZ69iu8oLZ1HeVypKeCj7RHKpODivOaL8BJvBk=; b=pyHtb7KcKqFC/r n/4i5Nz4envcFnfv4y0KQUKRH8eb4qGWkvr8YPdNGKGI0MDVryErePdsrp2gxt8na6t80fgon5ZaE /0S7uxHpkr6mUQTJxFxMu30r7nxBi83/8mX99wYbJAEeQICrfx7gZcNlXfwSxfH38e9cBPCNOcpkj RcdKCWxFRUAU1GqtSa85+Asl1BTBqkDE1l4VeucsDg5kOCZtZNEJV0AuG0V5JxKkVHUZIJx62CEwB b2XuiNQnlcANDagoSm+3ggJ9s39nj+3VRGcxKf2odQz+9q30wFBKcSeaUiyziQ0bsm6hkNXj0DJV2 4GwgBbc+79z0ZhUgObyA==; From: Roland Winkler To: bug-gnu-emacs@gnu.org Subject: 30.0.92; emacs-lisp font-locking word regexp X-Debbugs-Cc: Date: Mon, 11 Nov 2024 00:28:34 -0600 Message-ID: <87jzdawagd.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain 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 (---) Starting from emacs -Q, put the following into a buffer with emacs-lisp-mode (setq foo "\\") The part "foo\\" of the string "\\" will get font-lock-variable-name-face, which looks odd. I believe, this is due to a clause in lisp-mode.el that says ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for ;; `substitute-command-keys'. But this assumption is not always correct, in particular if ">" is preceded by "\\", which happens when constructing regexps. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 11 07:30:48 2024 Received: (at control) by debbugs.gnu.org; 11 Nov 2024 12:30:48 +0000 Received: from localhost ([127.0.0.1]:58570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tATZ9-0005vt-Tx for submit@debbugs.gnu.org; Mon, 11 Nov 2024 07:30:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36678) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tATZ7-0005vR-0Z; Mon, 11 Nov 2024 07:30:45 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tATZ1-0002dA-NO; Mon, 11 Nov 2024 07:30:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=SjNfYHpO3+8WEZrx6u++pydzx935jXCb/6J4mv2+gpM=; b=E6K4NzYpGHL6 uP7RhaOBPOVG2ClH/0aeZvQf0bWVZ7j+m0w6EKLke/wBzFACCQLeFIF4Pl84Zqx0spkOAfmVss64a 6NzEqoidPY8ZKBymAO/EEmKTtZS3qcrdvNEdCj3Q8UTOrIna/+914OPqqSvVRBKnWHyZsxdus5tz/ rBFcgm+QEq53njOl9TCSGcnWoSYZCmR+pvk8xBC+GL6QzSwh5hJ3P45D56vbPkg3iOlKqVz3vcu5q 3rk+g+jqDXPd89vCgWTWhZ9Lwetq3Sr6sVwr2vJEpzNAr6Xqd8s74DQLqvEW94Bpm7AOpvC9lPlFD 9KmQk7Gwg42y19eZp0Q/gQ==; Date: Mon, 11 Nov 2024 14:30:35 +0200 Message-Id: <86zfm6j6l0.fsf@gnu.org> From: Eli Zaretskii To: Roland Winkler In-Reply-To: <87ed3iwacp.fsf@gnu.org> (message from Roland Winkler on Mon, 11 Nov 2024 00:30:46 -0600) Subject: Re: bug#74308: 30.0.92; emacs-lisp font-locking word regexp References: <87ed3iwacp.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control Cc: 74308@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 (---) merge 74308 74307 thanks > From: Roland Winkler > Date: Mon, 11 Nov 2024 00:30:46 -0600 > > Starting from emacs -Q, put the following into a buffer with > emacs-lisp-mode > > (setq foo "\\") > > The part "foo\\" of the string "\\" will get > font-lock-variable-name-face, which looks odd. > > I believe, this is due to a clause in lisp-mode.el that says > > ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for > ;; `substitute-command-keys'. > > But this assumption is not always correct, in particular if ">" is > preceded by "\\", which happens when constructing regexps. This is an exact duplicate of bug#74307 that you submitted just 2 minutes earlier, so I'm merging them. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 03:11:52 2024 Received: (at 74307) by debbugs.gnu.org; 14 Nov 2024 08:11:52 +0000 Received: from localhost ([127.0.0.1]:44886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBUxE-00008x-Gm for submit@debbugs.gnu.org; Thu, 14 Nov 2024 03:11:52 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBUxD-00008j-6T for 74307@debbugs.gnu.org; Thu, 14 Nov 2024 03:11:51 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBUx7-0005SA-0F; Thu, 14 Nov 2024 03:11:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=pK2kVx3VZGQa84INLLoOc+an7Imhamx0pFUdnCJOhDI=; b=aF30TOxvYPxy viJcoodZ0tNfLT01S3dfqCWHteU0InNKGvwFZBopHiqNWq7lwDA/8gvOjGv77QDb/YBi3jg3s4Ga6 2hUmU3WAI+eN7/qu1whVAeOx1MUFQRas39Q54UqiWw3yGzbVbleZ3DM7sWeOtORZNKUYjniYRQ+B7 Fpb/WzaVZ87WPJ+yVbebE0oOahnRYkqQ76CJETXQK4Xi18hg5EcXKT12D4ansrmaRFVwR9Tp3Z6Oz /xK6RwdjovByLa1J3rI9CFzIwwHf+1W4gdTIB5tILobUd40ODJAey94hqBG0M1NQ3tJa2xwaz4ScM OEhE0wT5//TGRP98MH3SLw==; Date: Thu, 14 Nov 2024 10:11:43 +0200 Message-Id: <868qtmkzeo.fsf@gnu.org> From: Eli Zaretskii To: Roland Winkler , Stefan Monnier In-Reply-To: <87jzdawagd.fsf@gnu.org> (message from Roland Winkler on Mon, 11 Nov 2024 00:28:34 -0600) Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp References: <87jzdawagd.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74307 Cc: 74307@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 (---) > From: Roland Winkler > Date: Mon, 11 Nov 2024 00:28:34 -0600 > > Starting from emacs -Q, put the following into a buffer with > emacs-lisp-mode > > (setq foo "\\") > > The part "foo\\" of the string "\\" will get > font-lock-variable-name-face, which looks odd. > > I believe, this is due to a clause in lisp-mode.el that says > > ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for > ;; `substitute-command-keys'. > > But this assumption is not always correct, in particular if ">" is > preceded by "\\", which happens when constructing regexps. I believe you are saying that in (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) ">") (seq "{" (group-n 1 lisp-mode-symbol) "}"))) (1 font-lock-variable-name-face prepend)) we should use something like the below instead? (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) (not "\\\\") ">") (seq "{" (group-n 1 lisp-mode-symbol) (not "\\\\") "}")) And similarly for \\[] etc.? From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 11:24:56 2024 Received: (at 74307) by debbugs.gnu.org; 14 Nov 2024 16:24:56 +0000 Received: from localhost ([127.0.0.1]:46901 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBceO-0007M5-5r for submit@debbugs.gnu.org; Thu, 14 Nov 2024 11:24:56 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:37507) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBceM-0007Lp-OT for 74307@debbugs.gnu.org; Thu, 14 Nov 2024 11:24:55 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 6100E8092E; Thu, 14 Nov 2024 11:24:49 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1731601488; bh=hqXP/Lr2iiTZg+Y09Ck3KYG0B/h5NOlRbQR5kSKOnu8=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=JGI/cFM41yAbeQ3HDsOLrkB2j7JzumFNDTvLpK5wEBhlpYurhKEy3bF/Ipur+V2gy zO6TsA6R7wC2tfciUNH7DtemaKkw5AdWHIQSO48xeoIeacl2RIT3AQMAV2sZEJP5cx 0LOcam3wucOoEW5SW6MwZsDQsYk1s5gRk09AE1ic9qh3ljfqSbGpzP+WE1kxavd87Q Bi9wVMDhxkbbNqTcuD+KFOdLTb+wYg7aqBROT/M5dyCG8fCfmM6Dxm+qlVcM40qRxF eGHKufsezRlb6wpZ4KRZ3y3qdHo1mpIZ1vLxOv432qzyt7VwkE87WHce/BaIbWZ0Mc 0s5EhZ9xW23bA== Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id A8FB68045E; Thu, 14 Nov 2024 11:24:48 -0500 (EST) Received: from alfajor (modemcable005.21-80-70.mc.videotron.ca [70.80.21.5]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 8A5FB1202EF; Thu, 14 Nov 2024 11:24:48 -0500 (EST) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp In-Reply-To: <868qtmkzeo.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Nov 2024 10:11:43 +0200") Message-ID: References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> Date: Thu, 14 Nov 2024 11:24:48 -0500 User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.348 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74307 Cc: 74307@debbugs.gnu.org, Roland Winkler 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 (---) > I believe you are saying that in > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) ">") > (seq "{" (group-n 1 lisp-mode-symbol) "}"))) > (1 font-lock-variable-name-face prepend)) > > we should use something like the below instead? > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) (not "\\\\") ">") > (seq "{" (group-n 1 lisp-mode-symbol) (not "\\\\") "}")) > > And similarly for \\[] etc.? Sounds good to me. Stefan From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 14 11:49:49 2024 Received: (at 74307) by debbugs.gnu.org; 14 Nov 2024 16:49:50 +0000 Received: from localhost ([127.0.0.1]:46945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBd2T-00005l-K5 for submit@debbugs.gnu.org; Thu, 14 Nov 2024 11:49:49 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51148) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tBd2R-00005W-SZ for 74307@debbugs.gnu.org; Thu, 14 Nov 2024 11:49:48 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tBd2M-00088s-Ej; Thu, 14 Nov 2024 11:49:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=d40XVdtansX4iCB6MoWQdgMztC90pYljJCVNM1Yfic0=; b=czdFHds0VEcx+qzQlRfk JWQ6J4DYqZ8nMau6nSH+4iAJzLR/dIyRtkkx0xOCy8TOWXzzxIx0y/BI5q08HvtkBJwqeroZWDzlV r0lj1bQXIL3gE20yYE2owVqJIdN7XV87y8HhziIC81tY6P1uhdeFRnPItNdFOwYauG5xLW20vb7bx vATjkmHlXE98vVTgVh8wW9Hh2R2UCkJNgFvF65+/Xd+6eQfqGlN5RKq/G5kc86zEvq4d0W6bSQyR7 t6zmPaDtnQlXMBpUTCK4xSxJNyBE6hZ30+9BL2u4wrg7Y2T97AB4Sft9ppvKIiSOhk4Sj/UY0N3Rl I/CzdS4mSRzMvQ==; From: Roland Winkler To: Eli Zaretskii Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp In-Reply-To: <868qtmkzeo.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Nov 2024 10:11:43 +0200") References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> Date: Thu, 14 Nov 2024 10:49:35 -0600 Message-ID: <87ikspbw0w.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74307 Cc: 74307@debbugs.gnu.org, Stefan Monnier 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 (---) On Thu, Nov 14 2024, Eli Zaretskii wrote: > we should use something like the below instead? > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) (not "\\\\") ">") > (seq "{" (group-n 1 lisp-mode-symbol) (not "\\\\") "q}")) Yes, thanks. (This is my first real-world encounter with rx. Otherwise I would have proposed it myself.) > And similarly for \\[] etc.? I do not know in what context backslash-quoted right square brackets may appear in regexps. But certainly, they do not make sense in the context of substitute-command-keys either. So excluding here backslash-quoted right square brackets is probably for the better, too. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 16 09:23:09 2024 Received: (at 74307-done) by debbugs.gnu.org; 16 Nov 2024 14:23:09 +0000 Received: from localhost ([127.0.0.1]:52620 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tCJhc-0005C7-Vi for submit@debbugs.gnu.org; Sat, 16 Nov 2024 09:23:09 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47168) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tCJhZ-0005BP-JX for 74307-done@debbugs.gnu.org; Sat, 16 Nov 2024 09:23:07 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tCJhT-0005XC-HS; Sat, 16 Nov 2024 09:22:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=SYAtRKUerLKvdW0+UOt03bQUmTS/Qnc0vsDAW8Z3AnQ=; b=CXyv+kBM1PzG pIVu2JLVYIETvJnE7Uu6p2dfBVA1flqn7OPnOq2HrIqjXjxMDv+B++U/NQlbB7EcaAtqMyf8V/C4A 6XaXrcLnJIKybKwqR7D65EdRbDs/GpV7zpr/pfyAsalPjkF73tjdt70NmU59yErbajJM3fVMicBj9 iR55Pp1VtwghcySiufeUcYvxq+7oNltXUDewMgyrwfhod/rbo2BgNYjlllDPCqdD6nsOe6TqCx6oQ 5Tuj0yGs0VvLBNwvZM03sON5OzGq2XjnS6XLIaT1AdehM4kc0hDEHKqO6/GvLSIbZRDNkWA1dc2VG gRgZt55T3E7AyC9ArigTMg==; Date: Sat, 16 Nov 2024 16:22:55 +0200 Message-Id: <865xongsw0.fsf@gnu.org> From: Eli Zaretskii To: Stefan Monnier In-Reply-To: (message from Stefan Monnier on Thu, 14 Nov 2024 11:24:48 -0500) Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74307-done Cc: 74307-done@debbugs.gnu.org, winkler@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 (---) > From: Stefan Monnier > Cc: Roland Winkler , 74307@debbugs.gnu.org > Date: Thu, 14 Nov 2024 11:24:48 -0500 > > > I believe you are saying that in > > > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) ">") > > (seq "{" (group-n 1 lisp-mode-symbol) "}"))) > > (1 font-lock-variable-name-face prepend)) > > > > we should use something like the below instead? > > > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) (not "\\\\") ">") > > (seq "{" (group-n 1 lisp-mode-symbol) (not "\\\\") "}")) > > > > And similarly for \\[] etc.? > > Sounds good to me. Thanks, installed on master, and closing the bug. From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 05 02:22:07 2024 Received: (at 74307) by debbugs.gnu.org; 5 Dec 2024 07:22:07 +0000 Received: from localhost ([127.0.0.1]:37940 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6Ba-0004Tn-Vi for submit@debbugs.gnu.org; Thu, 05 Dec 2024 02:22:07 -0500 Received: from relay8-d.mail.gandi.net ([217.70.183.201]:36825) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6BZ-0004TG-GZ for 74307@debbugs.gnu.org; Thu, 05 Dec 2024 02:22:05 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id BC6451BF207; Thu, 5 Dec 2024 07:21:55 +0000 (UTC) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp In-Reply-To: <868qtmkzeo.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 14 Nov 2024 10:11:43 +0200") Organization: LINKOV.NET References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> Date: Thu, 05 Dec 2024 09:20:16 +0200 Message-ID: <87mshak5hz.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74307 Cc: 74307@debbugs.gnu.org, Roland Winkler , Stefan Monnier 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.7 (-) >> (setq foo "\\") >> >> The part "foo\\" of the string "\\" will get >> font-lock-variable-name-face, which looks odd. >> >> I believe, this is due to a clause in lisp-mode.el that says >> >> ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for >> ;; `substitute-command-keys'. >> >> But this assumption is not always correct, in particular if ">" is >> preceded by "\\", which happens when constructing regexps. > > I believe you are saying that in > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) ">") > (seq "{" (group-n 1 lisp-mode-symbol) "}"))) > (1 font-lock-variable-name-face prepend)) > > we should use something like the below instead? > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) (not "\\\\") ">") > (seq "{" (group-n 1 lisp-mode-symbol) (not "\\\\") "}")) The problem is that this removes highlighting from the last character because it doesn't get into the group: (rx (seq "[" (group-n 1 lisp-mode-symbol) (not "\\") "]")) => "\\[\\(?1:\\(?:\\w\\|\\s_\\|\\\\.\\)+\\)[^\\]]" A possible solution is to move (not "\\") inside the group: (rx (seq "[" (group-n 1 (seq lisp-mode-symbol (not "\\"))) "]")) => "\\[\\(?1:\\(?:\\w\\|\\s_\\|\\\\.\\)+[^\\]\\)]" But this removes highlighting completely from the reported case of (setq foo "\\"). However, I guess it should not have highlighting anyway because this is an incorrect syntax of `substitute-command-keys' that should match only \\[], \\<>, \\{} or \\`' without the second \\ From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 05 02:39:01 2024 Received: (at 74307) by debbugs.gnu.org; 5 Dec 2024 07:39:01 +0000 Received: from localhost ([127.0.0.1]:37998 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6Rw-0005H4-NK for submit@debbugs.gnu.org; Thu, 05 Dec 2024 02:39:01 -0500 Received: from eggs.gnu.org ([209.51.188.92]:36060) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6Rv-0005Gr-7I for 74307@debbugs.gnu.org; Thu, 05 Dec 2024 02:38:59 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tJ6Ro-0003hX-ON; Thu, 05 Dec 2024 02:38:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=tn/wWiDjua8OZAD440cyj/t6HBIgr/gzke53olBhjdk=; b=C/X9NoBYFK0D v4Gsp9wkAP3K7GYVJto8rZD44GsEBtQBl2RtOW5OMr4Dbu24cs1N9pO//agXG2zQhjIm+cj/f+lqL fUMHg+HgtJGSBusuV/uz64fyLwYNyPoKDEh21NG+6dazeOVpKMr3jUOnJDJVj+l1soQIwgjEGivYE NeIMx4KFwzvw6F0pika8VYXgHGbIcB0rOzHJeOiT2SPl/vLR/m1ed6pvP0DeNY7nmP056T6v0boQm xmPYycj86ZuUz4QKmYqA8eM/eRbrCDGSCiyzxuPyDDH+4U5KWiqHpw5VLmBWtgg+GreDHe28PC+GY kvEiKiO4p5ZiYTIhEr7zZg==; Date: Thu, 05 Dec 2024 09:38:48 +0200 Message-Id: <86o71qy3xz.fsf@gnu.org> From: Eli Zaretskii To: Juri Linkov In-Reply-To: <87mshak5hz.fsf@mail.linkov.net> (message from Juri Linkov on Thu, 05 Dec 2024 09:20:16 +0200) Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> <87mshak5hz.fsf@mail.linkov.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74307 Cc: 74307@debbugs.gnu.org, winkler@gnu.org, monnier@iro.umontreal.ca 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 (---) > From: Juri Linkov > Cc: Roland Winkler , Stefan Monnier > , 74307@debbugs.gnu.org > Date: Thu, 05 Dec 2024 09:20:16 +0200 > > >> (setq foo "\\") > >> > >> The part "foo\\" of the string "\\" will get > >> font-lock-variable-name-face, which looks odd. > >> > >> I believe, this is due to a clause in lisp-mode.el that says > >> > >> ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for > >> ;; `substitute-command-keys'. > >> > >> But this assumption is not always correct, in particular if ">" is > >> preceded by "\\", which happens when constructing regexps. > > > > I believe you are saying that in > > > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) ">") > > (seq "{" (group-n 1 lisp-mode-symbol) "}"))) > > (1 font-lock-variable-name-face prepend)) > > > > we should use something like the below instead? > > > > (,(rx "\\\\" (or (seq "<" (group-n 1 lisp-mode-symbol) (not "\\\\") ">") > > (seq "{" (group-n 1 lisp-mode-symbol) (not "\\\\") "}")) > > The problem is that this removes highlighting from the last character > because it doesn't get into the group: > > (rx (seq "[" (group-n 1 lisp-mode-symbol) (not "\\") "]")) > => "\\[\\(?1:\\(?:\\w\\|\\s_\\|\\\\.\\)+\\)[^\\]]" > > A possible solution is to move (not "\\") inside the group: > > (rx (seq "[" (group-n 1 (seq lisp-mode-symbol (not "\\"))) "]")) > => "\\[\\(?1:\\(?:\\w\\|\\s_\\|\\\\.\\)+[^\\]\\)]" > > But this removes highlighting completely from the reported case of > (setq foo "\\"). However, I guess it should not have highlighting > anyway because this is an incorrect syntax of `substitute-command-keys' > that should match only \\[], \\<>, \\{} or \\`' without the second \\ Sorry, I don't understand: the change which was supposed to fix this was already installed. If you are saying it caused regressions, could you please show a recipe for reproducing those regressions? From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 05 02:48:24 2024 Received: (at 74307) by debbugs.gnu.org; 5 Dec 2024 07:48:24 +0000 Received: from localhost ([127.0.0.1]:38011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6b1-0005j9-VO for submit@debbugs.gnu.org; Thu, 05 Dec 2024 02:48:24 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:56549) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6b0-0005iu-1J for 74307@debbugs.gnu.org; Thu, 05 Dec 2024 02:48:22 -0500 Received: by mail.gandi.net (Postfix) with ESMTPSA id 9197E6000E; Thu, 5 Dec 2024 07:48:14 +0000 (UTC) From: Juri Linkov To: Eli Zaretskii Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp In-Reply-To: <86o71qy3xz.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 05 Dec 2024 09:38:48 +0200") Organization: LINKOV.NET References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> <87mshak5hz.fsf@mail.linkov.net> <86o71qy3xz.fsf@gnu.org> Date: Thu, 05 Dec 2024 09:47:05 +0200 Message-ID: <87zflainba.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-GND-Sasl: juri@linkov.net X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 74307 Cc: 74307@debbugs.gnu.org, winkler@gnu.org, monnier@iro.umontreal.ca 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.7 (-) >> The problem is that this removes highlighting from the last character >> because it doesn't get into the group: >> >> (rx (seq "[" (group-n 1 lisp-mode-symbol) (not "\\") "]")) >> => "\\[\\(?1:\\(?:\\w\\|\\s_\\|\\\\.\\)+\\)[^\\]]" >> >> A possible solution is to move (not "\\") inside the group: >> >> (rx (seq "[" (group-n 1 (seq lisp-mode-symbol (not "\\"))) "]")) >> => "\\[\\(?1:\\(?:\\w\\|\\s_\\|\\\\.\\)+[^\\]\\)]" >> >> But this removes highlighting completely from the reported case of >> (setq foo "\\"). However, I guess it should not have highlighting >> anyway because this is an incorrect syntax of `substitute-command-keys' >> that should match only \\[], \\<>, \\{} or \\`' without the second \\ > > Sorry, I don't understand: the change which was supposed to fix this > was already installed. Ah, so (setq foo "\\") should not be highlighted. Ok, then indeed (not "\\") should be inside the group. > If you are saying it caused regressions, could you please show > a recipe for reproducing those regressions? A recipe is to put the following two lines into a buffer with emacs-lisp-mode: (setq foo "\\") (setq foo "\\") The first foo should not be highlighted, the second currently is highlighted partially without the last character. Here is the fix: diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 99980a44ddf..95fbae48bb6 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el @@ -491,16 +491,16 @@ lisp-mode--search-key ;; Words inside \\[], \\<>, \\{} or \\`' tend to be for ;; `substitute-command-keys'. (,(rx "\\\\" (or (seq "[" - (group-n 1 lisp-mode-symbol) (not "\\") "]") + (group-n 1 (seq lisp-mode-symbol (not "\\"))) "]") (seq "`" (group-n 1 ;; allow multiple words, e.g. "C-x a" lisp-mode-symbol (* " " lisp-mode-symbol)) "'"))) (1 font-lock-constant-face prepend)) (,(rx "\\\\" (or (seq "<" - (group-n 1 lisp-mode-symbol) (not "\\") ">") + (group-n 1 (seq lisp-mode-symbol (not "\\"))) ">") (seq "{" - (group-n 1 lisp-mode-symbol) (not "\\") "}"))) + (group-n 1 (seq lisp-mode-symbol) (not "\\")) "}"))) (1 font-lock-variable-name-face prepend)) ;; Ineffective backslashes (typically in need of doubling). ("\\(\\\\\\)\\([^\"\\]\\)" From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 05 03:04:21 2024 Received: (at 74307) by debbugs.gnu.org; 5 Dec 2024 08:04:21 +0000 Received: from localhost ([127.0.0.1]:38040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6qS-0006U7-L6 for submit@debbugs.gnu.org; Thu, 05 Dec 2024 03:04:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tJ6qQ-0006Tt-EG for 74307@debbugs.gnu.org; Thu, 05 Dec 2024 03:04:19 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tJ6qJ-0007Qk-Gz; Thu, 05 Dec 2024 03:04:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=5Br3VuDFyEmvgizWjtnWakVA2l9Fd2XgxgqxT5yiD2g=; b=sbma/ULVVQeq Am6auL8Krs43rLdCWjgQiyEbu2UyqSV5dlEKna8YkgNnHubgyKFa1wRfR2OY8jb01FjNQs5Ro6jq6 H4P67pRFKjV3fasxm9LE2wGX9zgvcjle0kLgT7kSlu77cExNqGMDk6yGphndEJpYNrC/FDdrKYo8M Akz+cQDQoVCv/d+fRX7J7Mb1U071dBtZu2Ybys91jwrJ+IWfzy6Wr+NcGRxmQNqYwWxUAMVKBW76t 9PncJVN4Jk2IyaW7xqQHBEutSR5gkOrAG6P6/HaJHA85en4xUcl8nb/Z/OWy+l7/r0cidWm109o7P ghTJ1i43D9cYsYK7RurLDA==; Date: Thu, 05 Dec 2024 10:04:03 +0200 Message-Id: <86h67iy2rw.fsf@gnu.org> From: Eli Zaretskii To: Juri Linkov In-Reply-To: <87zflainba.fsf@mail.linkov.net> (message from Juri Linkov on Thu, 05 Dec 2024 09:47:05 +0200) Subject: Re: bug#74307: 30.0.92; emacs-lisp font-locking word regexp References: <87jzdawagd.fsf@gnu.org> <868qtmkzeo.fsf@gnu.org> <87mshak5hz.fsf@mail.linkov.net> <86o71qy3xz.fsf@gnu.org> <87zflainba.fsf@mail.linkov.net> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 74307 Cc: 74307@debbugs.gnu.org, winkler@gnu.org, monnier@iro.umontreal.ca 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 (---) > From: Juri Linkov > Cc: winkler@gnu.org, monnier@iro.umontreal.ca, 74307@debbugs.gnu.org > Date: Thu, 05 Dec 2024 09:47:05 +0200 > > > Sorry, I don't understand: the change which was supposed to fix this > > was already installed. > > Ah, so (setq foo "\\") should not be highlighted. Ok, then > indeed (not "\\") should be inside the group. > > > If you are saying it caused regressions, could you please show > > a recipe for reproducing those regressions? > > A recipe is to put the following two lines into a buffer with > emacs-lisp-mode: > > (setq foo "\\") > (setq foo "\\") > > The first foo should not be highlighted, the second currently is > highlighted partially without the last character. Here is the fix: Thanks, please install on master. From unknown Sun Sep 21 18:12:43 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 02 Jan 2025 12:24:06 +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