From unknown Mon Jun 23 22:06:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Resent-From: Daniel Colascione Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 16 Dec 2013 11:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 16160@debbugs.gnu.org X-Debbugs-Original-To: bug-emacs Received: via spool by submit@debbugs.gnu.org id=B.13871924293398 (code B ref -1); Mon, 16 Dec 2013 11:14:02 +0000 Received: (at submit) by debbugs.gnu.org; 16 Dec 2013 11:13:49 +0000 Received: from localhost ([127.0.0.1]:53062 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VsW7Q-0000sk-UZ for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:49 -0500 Received: from eggs.gnu.org ([208.118.235.92]:35604) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VsW7P-0000sc-2m for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsW7I-0000RK-Nw for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:46 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:41663) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsW7I-0000RG-Kn for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37300) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsW7C-0007sX-Fs for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 06:13:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsW76-0000Pi-Av for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 06:13:34 -0500 Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:46672) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsW75-0000PX-Q4 for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 06:13:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=vFIfUkEwuR6T3twe4JygH3Z5yQMdl8CWNT0FniqopT4=; b=cPgSazUK6h8EjcjBPBhEJ6rfwijsVrdSVKl1umEgof5LU0uEPlDgJgYQPf1ALgvg3NkkvUE7zgxox0+rV+ic//OABebiPJhCAsASrHEwfDPopL7JjFbQrz/5e+VKej1rGyQ/Ci5Mm+Zm5+P5Bb/Ru3z9n8bf+aPfY6d75GaKWX1jt01/MBKbfn7cMql8xp0dGlGIhAHrJLWKY41g3q0TqXu6D62hu4iUJlOJq5ng5y+RZ578YjwY/VWm3Kv8z052yU56cccSsrL/CXO9FkCNemUdqqBY/AIf/px0p0xNpnwUTqYYMOvN10fn0SZvIdCzxa5TKQ1QCUACSj9R4ku/ZA==; Received: from [173.252.71.189] (helo=[172.20.16.114]) by dancol.org with esmtpsa (TLS1.0:DHE_RSA_CAMELLIA_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1VsW75-0003zK-5t for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 03:13:27 -0800 Message-ID: <52AEE02B.8060309@dancol.org> Date: Mon, 16 Dec 2013 03:12:43 -0800 From: Daniel Colascione User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.1 (----) Repro: 1) Visit shell script with comments. See comments fontified properly. 2) M-x find-library sh-script RET 3) M-x eval-buffer 4) Return to shell script buffer 5) C-x C-v RET 6) Observe that comments are no longer fontified as comments. The define-derived-mode macro in sh-script.el emits code that clobbers sh-mode-syntax-table because we don't have a :syntax-table argument. I think the following patch changes the code to the expected behavior. ~/edev/trunk $ bzr diff === modified file 'lisp/emacs-lisp/derived.el' --- lisp/emacs-lisp/derived.el 2013-05-27 16:12:52 +0000 +++ lisp/emacs-lisp/derived.el 2013-12-16 11:09:41 +0000 @@ -206,11 +206,11 @@ ,(if declare-syntax `(progn (unless (boundp ',syntax) - (put ',syntax 'definition-name ',child)) - (defvar ,syntax (make-syntax-table)) - (unless (get ',syntax 'variable-documentation) - (put ',syntax 'variable-documentation - (purecopy ,(format "Syntax table for `%s'." child)))))) + (put ',syntax 'definition-name ',child) + (defvar ,syntax (make-syntax-table)) + (unless (get ',syntax 'variable-documentation) + (put ',syntax 'variable-documentation + (purecopy ,(format "Syntax table for `%s'." child))))))) ,(if declare-abbrev `(progn (put ',abbrev 'definition-name ',child) That is, we shouldn't touch the syntax table variable at all unless the variable is unbound. From unknown Mon Jun 23 22:06:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 16 Dec 2013 19:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Daniel Colascione Cc: 16160@debbugs.gnu.org Received: via spool by 16160-submit@debbugs.gnu.org id=B16160.13872214481889 (code B ref 16160); Mon, 16 Dec 2013 19:18:02 +0000 Received: (at 16160) by debbugs.gnu.org; 16 Dec 2013 19:17:28 +0000 Received: from localhost ([127.0.0.1]:54374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VsdfT-0000UO-NH for submit@debbugs.gnu.org; Mon, 16 Dec 2013 14:17:28 -0500 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:38687) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VsdfR-0000UG-To for 16160@debbugs.gnu.org; Mon, 16 Dec 2013 14:17:26 -0500 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.DIT.UMontreal.CA (8.14.1/8.14.1) with ESMTP id rBGJHKqD016844; Mon, 16 Dec 2013 14:17:21 -0500 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 019CEAE2BE; Mon, 16 Dec 2013 14:17:19 -0500 (EST) From: Stefan Monnier Message-ID: References: <52AEE02B.8060309@dancol.org> Date: Mon, 16 Dec 2013 14:17:19 -0500 In-Reply-To: <52AEE02B.8060309@dancol.org> (Daniel Colascione's message of "Mon, 16 Dec 2013 03:12:43 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 1 Rules triggered RV4794=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4794> : inlines <329> : streams <1091813> : uri <1625941> X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.9 (-) > 1) Visit shell script with comments. See comments fontified properly. > 2) M-x find-library sh-script RET > 3) M-x eval-buffer > 4) Return to shell script buffer > 5) C-x C-v RET > 6) Observe that comments are no longer fontified as comments. I can't reproduce it, starting from "emacs -Q". > - (put ',syntax 'definition-name ',child)) > - (defvar ,syntax (make-syntax-table)) > - (unless (get ',syntax 'variable-documentation) > - (put ',syntax 'variable-documentation > - (purecopy ,(format "Syntax table for `%s'." child)))))) > + (put ',syntax 'definition-name ',child) > + (defvar ,syntax (make-syntax-table)) > + (unless (get ',syntax 'variable-documentation) > + (put ',syntax 'variable-documentation > + (purecopy ,(format "Syntax table for `%s'." child))))))) > That is, we shouldn't touch the syntax table variable at all unless the > variable is unbound. But that shouldn't make much difference since none of the code you changed should affect the var's value when it is already bound. I'm not necessarily opposed to the change (haven't dug enough to try and remember why it's written this way), but I'd first like to understand why it fixes the problem you see. Stefan From unknown Mon Jun 23 22:06:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Resent-From: Daniel Colascione Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 17 Dec 2013 02:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Stefan Monnier Cc: 16160@debbugs.gnu.org Received: via spool by 16160-submit@debbugs.gnu.org id=B16160.138724670018398 (code B ref 16160); Tue, 17 Dec 2013 02:19:02 +0000 Received: (at 16160) by debbugs.gnu.org; 17 Dec 2013 02:18:20 +0000 Received: from localhost ([127.0.0.1]:54707 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VskEh-0004mc-FP for submit@debbugs.gnu.org; Mon, 16 Dec 2013 21:18:19 -0500 Received: from dancol.org ([96.126.100.184]:41787) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VskEZ-0004mN-2z for 16160@debbugs.gnu.org; Mon, 16 Dec 2013 21:18:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:Subject:CC:To:MIME-Version:From:Date:Message-ID; bh=pOqliFdlJ8N6YKvRNTFW271tx1HNROlpXxiCrTYrPls=; b=G6xnJ6yyG+iJbQ4uZfoyLLv040FHjP3585wSYCYEiVIItaCGknVcsu4x1sWukoyyFMXGCqHL6zTZKc9PtBSiZWM+NKqVosuCji5AFfKiOBhX6iUvA9PwH6S1aVqvS17mY1cYyf0T+Cn/d/ZekD2lI8ASbnlnKPZVBqZu8EPiQDwBhAmT8sD17jiaRXH4E7nGcy5svl8ZyDXE2x+pGxgsE6dL8fq2+XGfte+ripWTwhRXrifCiuTfo219gSyTsjKLQ7199vAwSd7cj5FJ2rf2BwQueYPqY3K+b5Zw1Qs/vrgdcuxIsqNnlB1LggCVgpGb77ofCj1/YXhidjiEzYIepA==; Received: from [2620:0:1cfe:a0:863a:4bff:fec8:e538] by dancol.org with esmtpsa (TLS1.0:DHE_RSA_CAMELLIA_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1VskEX-0005QP-GO; Mon, 16 Dec 2013 18:18:05 -0800 Message-ID: <52AFB453.5000300@dancol.org> Date: Mon, 16 Dec 2013 18:17:55 -0800 From: Daniel Colascione User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 References: <52AEE02B.8060309@dancol.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.5 (/) On 12/16/2013 11:17 AM, Stefan Monnier wrote: >> 1) Visit shell script with comments. See comments fontified properly. >> 2) M-x find-library sh-script RET >> 3) M-x eval-buffer >> 4) Return to shell script buffer >> 5) C-x C-v RET >> 6) Observe that comments are no longer fontified as comments. > > I can't reproduce it, starting from "emacs -Q". I can't repro it either now, with or without -Q. That was odd. I know what I saw, and I know that my patch resolved the problem in that instance of Emacs, but I have no idea how defvar was clobbering that variable. I was able to repro it over an dover again though. I can only conclude that Emacs was punishing me for my many sins. If I see it again, I'll try to hook Emacs up to a debugger. In the meantime, let's avoid changing fundamental infrastructure before a feature freeze. From unknown Mon Jun 23 22:06:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 17 Dec 2013 02:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo unreproducible To: Daniel Colascione Cc: 16160@debbugs.gnu.org Received: via spool by 16160-submit@debbugs.gnu.org id=B16160.138724779520519 (code B ref 16160); Tue, 17 Dec 2013 02:37:02 +0000 Received: (at 16160) by debbugs.gnu.org; 17 Dec 2013 02:36:35 +0000 Received: from localhost ([127.0.0.1]:54728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VskWR-0005Kq-2w for submit@debbugs.gnu.org; Mon, 16 Dec 2013 21:36:35 -0500 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:56221) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VskWO-0005Ki-Eb for 16160@debbugs.gnu.org; Mon, 16 Dec 2013 21:36:32 -0500 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.DIT.UMontreal.CA (8.14.1/8.14.1) with ESMTP id rBH2aStx010422; Mon, 16 Dec 2013 21:36:29 -0500 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 3587EAE2BE; Mon, 16 Dec 2013 21:36:28 -0500 (EST) From: Stefan Monnier Message-ID: References: <52AEE02B.8060309@dancol.org> <52AFB453.5000300@dancol.org> Date: Mon, 16 Dec 2013 21:36:28 -0500 In-Reply-To: <52AFB453.5000300@dancol.org> (Daniel Colascione's message of "Mon, 16 Dec 2013 18:17:55 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0.2 X-NAI-Spam-Rules: 2 Rules triggered GEN_SPAM_FEATRE=0.2, RV4794=0 X-NAI-Spam-Version: 2.3.0.9362 : core <4794> : inlines <330> : streams <1092019> : uri <1626334> X-Spam-Score: -1.9 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.9 (-) > I can only conclude that Emacs was punishing me for my many sins. I believe He may forgive you, if you fix a few bugs for penance. Stefan From unknown Mon Jun 23 22:06:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Resent-From: Daniel Colascione Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 20 Dec 2013 21:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: moreinfo unreproducible To: Stefan Monnier Cc: 16160@debbugs.gnu.org Received: via spool by 16160-submit@debbugs.gnu.org id=B16160.13875759504015 (code B ref 16160); Fri, 20 Dec 2013 21:46:01 +0000 Received: (at 16160) by debbugs.gnu.org; 20 Dec 2013 21:45:50 +0000 Received: from localhost ([127.0.0.1]:60514 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Vu7tG-00012h-CZ for submit@debbugs.gnu.org; Fri, 20 Dec 2013 16:45:50 -0500 Received: from dancol.org ([96.126.100.184]:57625) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Vu7tD-00012Y-IY for 16160@debbugs.gnu.org; Fri, 20 Dec 2013 16:45:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:Subject:CC:To:MIME-Version:From:Date:Message-ID; bh=k51jlMrGnca+gRUe0eVpu6gsVFeLmzci4s/lG3EfixE=; b=NGpLFoFNSUgpsMd/8cyCNIj/yZ+YLfLmUR5hQMcw8nKEDy9+oNXLhObcaAEXCMWizr6hrdTj/iqVVIk2FB/30msJMbaaCUh53Nn24Douya1xY300T7mpWOPySBQDp8UarOA9qApyEclP6EcMVcCNLFweKZFjNfJS+NtxhbzLaqbzH1h+SzHeN1cTbpufJ2F9BaLys1qsH6vosHgxnMfbTdILs6nYWRPLr8GqT5bPKT1lZPPIH1sKSZgq+OG1vZzLbpEUCPB6fi7bxUKs2xuFTBYzmjJs0HgMXh9aJQo/v41v/67AHRo4DTGUwQjDkq4ht6jQb13FOA78l0oCL6KsqQ==; Received: from c-76-22-66-162.hsd1.wa.comcast.net ([76.22.66.162] helo=[192.168.1.100]) by dancol.org with esmtpsa (TLS1.0:DHE_RSA_CAMELLIA_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1Vu7tB-0006pY-RT; Fri, 20 Dec 2013 13:45:45 -0800 Message-ID: <52B4BA87.8070200@dancol.org> Date: Fri, 20 Dec 2013 13:45:43 -0800 From: Daniel Colascione User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 References: <52AEE02B.8060309@dancol.org> <52AFB453.5000300@dancol.org> In-Reply-To: <52AFB453.5000300@dancol.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.5 (/) Actually... On 12/16/2013 06:17 PM, Daniel Colascione wrote: > On 12/16/2013 11:17 AM, Stefan Monnier wrote: >>> 1) Visit shell script with comments. See comments fontified properly. >>> 2) M-x find-library sh-script RET >>> 3) M-x eval-buffer >>> 4) Return to shell script buffer >>> 5) C-x C-v RET >>> 6) Observe that comments are no longer fontified as comments. The repro steps are incorrect. Try these: 1) emacs -Q 2) visit a shell script 3) M-x find-library sh-script RET 4) C-s define-derived-mode RET 5) C-M-x 6) switch to your shell script buffer 7) C-x C-v 8) Observe that the shell script is fontified incorrectly; the syntax table is now clobbered. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 25 20:35:08 2015 Received: (at control) by debbugs.gnu.org; 26 Dec 2015 01:35:08 +0000 Received: from localhost ([127.0.0.1]:36508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aCdlE-0003sJ-2G for submit@debbugs.gnu.org; Fri, 25 Dec 2015 20:35:08 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:51647) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aCdlC-0003sA-Lk for control@debbugs.gnu.org; Fri, 25 Dec 2015 20:35:06 -0500 Received: from 2.150.58.24.tmi.telenormobil.no ([2.150.58.24] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aCdkr-0008QQ-K5 for control@debbugs.gnu.org; Sat, 26 Dec 2015 02:34:45 +0100 Date: Sat, 26 Dec 2015 02:34:44 +0100 Message-Id: <874mf6f0wb.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #16160 X-MailScanner-ID: 1aCdkr-0008QQ-K5 X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1451698486.04756@qLqVnPxYsIx4pFGERXuk6g X-Spam-Status: No X-Spam-Score: -0.7 (/) 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.7 (/) tags 16160 - moreinfo From unknown Mon Jun 23 22:06:42 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 01 Mar 2016 02:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: unreproducible To: Daniel Colascione Cc: 16160@debbugs.gnu.org, Stefan Monnier Received: via spool by 16160-submit@debbugs.gnu.org id=B16160.14567982663473 (code B ref 16160); Tue, 01 Mar 2016 02:12:02 +0000 Received: (at 16160) by debbugs.gnu.org; 1 Mar 2016 02:11:06 +0000 Received: from localhost ([127.0.0.1]:54424 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aaZmE-0000tx-HJ for submit@debbugs.gnu.org; Mon, 29 Feb 2016 21:11:06 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:40155) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aaZmC-0000tp-PR for 16160@debbugs.gnu.org; Mon, 29 Feb 2016 21:11:05 -0500 Received: from 109.179.133.80.tmi.telenormobil.no ([109.179.133.80] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aaZlg-0004bq-RT; Tue, 01 Mar 2016 03:10:33 +0100 From: Lars Ingebrigtsen In-Reply-To: <52B4BA87.8070200@dancol.org> (Daniel Colascione's message of "Fri, 20 Dec 2013 13:45:43 -0800") Date: Tue, 01 Mar 2016 13:05:13 +1100 Message-ID: <87oaaz2bs6.fsf@gnus.org> References: <52AEE02B.8060309@dancol.org> <52AFB453.5000300@dancol.org> <52B4BA87.8070200@dancol.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-MailScanner-ID: 1aaZlg-0004bq-RT X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1457403034.65351@VwoAYO6HFbRibJg4HHUhzg X-Spam-Status: No X-Spam-Score: 0.0 (/) 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 (/) Daniel Colascione writes: > The repro steps are incorrect. Try these: > > 1) emacs -Q > 2) visit a shell script > 3) M-x find-library sh-script RET > 4) C-s define-derived-mode RET > 5) C-M-x > 6) switch to your shell script buffer > 7) C-x C-v > 8) Observe that the shell script is fontified incorrectly; the syntax > table is now clobbered. I can confirm that this bug still exists. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 29 21:11:16 2016 Received: (at control) by debbugs.gnu.org; 1 Mar 2016 02:11:16 +0000 Received: from localhost ([127.0.0.1]:54427 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aaZmO-0000uK-P3 for submit@debbugs.gnu.org; Mon, 29 Feb 2016 21:11:16 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:40170) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aaZmN-0000uC-CM for control@debbugs.gnu.org; Mon, 29 Feb 2016 21:11:15 -0500 Received: from 109.179.133.80.tmi.telenormobil.no ([109.179.133.80] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aaZlm-0004cP-Sh for control@debbugs.gnu.org; Tue, 01 Mar 2016 03:10:39 +0100 From: Lars Ingebrigtsen To: control@debbugs.gnu.org Subject: control message for bug #16160 Message-ID: <87mvqj2bs2.fsf@totally-fudged-out-message-id> Date: Tue, 01 Mar 2016 13:10:34 +1100 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) X-MailScanner-ID: 1aaZlm-0004cP-Sh X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1457403040.72941@ydPYjxhZWUioyLefSXeaPA X-Spam-Status: No 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: 0.0 (/) tags 16160 confirmed From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 29 21:11:23 2016 Received: (at control) by debbugs.gnu.org; 1 Mar 2016 02:11:23 +0000 Received: from localhost ([127.0.0.1]:54430 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aaZmU-0000ud-Tz for submit@debbugs.gnu.org; Mon, 29 Feb 2016 21:11:23 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:40175) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aaZmS-0000uU-SK for control@debbugs.gnu.org; Mon, 29 Feb 2016 21:11:21 -0500 Received: from 109.179.133.80.tmi.telenormobil.no ([109.179.133.80] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1aaZlt-0004d5-0N for control@debbugs.gnu.org; Tue, 01 Mar 2016 03:10:45 +0100 From: Lars Ingebrigtsen To: control@debbugs.gnu.org Subject: control message for bug #16160 Message-ID: <87lh632brw.fsf@totally-fudged-out-message-id> Date: Tue, 01 Mar 2016 13:10:40 +1100 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) X-MailScanner-ID: 1aaZlt-0004d5-0N X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1457403046.78716@N2/+447RjMDn6NLUh+DSWA X-Spam-Status: No 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: 0.0 (/) tags 16160 - unreproducible From unknown Mon Jun 23 22:06:42 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Daniel Colascione Subject: bug#16160: closed (Re: bug#16160: [PATCH] define-derived-mode clobbers syntax tables) Message-ID: References: <58eg1cbpvv.fsf@fencepost.gnu.org> <52AEE02B.8060309@dancol.org> X-Gnu-PR-Message: they-closed 16160 X-Gnu-PR-Package: emacs X-Gnu-PR-Keywords: confirmed Reply-To: 16160@debbugs.gnu.org Date: Tue, 13 Dec 2016 01:05:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1481591102-1545-1" This is a multi-part message in MIME format... ------------=_1481591102-1545-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #16160: [PATCH] define-derived-mode clobbers syntax tables which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 16160@debbugs.gnu.org. --=20 16160: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D16160 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1481591102-1545-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 16160-done) by debbugs.gnu.org; 13 Dec 2016 01:05:00 +0000 Received: from localhost ([127.0.0.1]:39822 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cGbWe-0000Of-K8 for submit@debbugs.gnu.org; Mon, 12 Dec 2016 20:05:00 -0500 Received: from eggs.gnu.org ([208.118.235.92]:51736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cGbWd-0000OR-Cc for 16160-done@debbugs.gnu.org; Mon, 12 Dec 2016 20:04:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cGbWX-0005YD-Fr for 16160-done@debbugs.gnu.org; Mon, 12 Dec 2016 20:04:54 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:37323) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cGbWX-0005Y5-CX for 16160-done@debbugs.gnu.org; Mon, 12 Dec 2016 20:04:53 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1cGbWW-00071t-Vo; Mon, 12 Dec 2016 20:04:53 -0500 From: Glenn Morris To: 16160-done@debbugs.gnu.org Subject: Re: bug#16160: [PATCH] define-derived-mode clobbers syntax tables References: <52AEE02B.8060309@dancol.org> <52AFB453.5000300@dancol.org> <52B4BA87.8070200@dancol.org> <87oaaz2bs6.fsf@gnus.org> X-Spook: Alcohol Tobacco and Firearms Afghanistan industrial X-Ran: *//t5n)B.:w;^N/!,3b"=%G=iHxh(/41B1k\Shq9d<|q[>2A (Lars Ingebrigtsen's message of "Tue, 01 Mar 2016 13:05:13 +1100") Message-ID: <58eg1cbpvv.fsf@fencepost.gnu.org> User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -8.1 (--------) X-Debbugs-Envelope-To: 16160-done 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: -8.1 (--------) Version: 26.1 >> The repro steps are incorrect. Try these: >> >> 1) emacs -Q >> 2) visit a shell script >> 3) M-x find-library sh-script RET >> 4) C-s define-derived-mode RET >> 5) C-M-x >> 6) switch to your shell script buffer >> 7) C-x C-v >> 8) Observe that the shell script is fontified incorrectly; the syntax >> table is now clobbered. Fixed in 8db7b65 along the suggested lines. So AIUI the issue is that define-derived-mode expands to (defvar ,syntax (make-syntax-table)) Normally this has no effect if ,syntax is already bound. But M-x eval-defun resets defvars to their default settings... Hence if you selectively re-evaluate only the mode definition from sh-script.el, you get the reported problem. So I changed it to explicitly check if ,syntax is bound. This will however now make things go wrong in the opposite way for someone who has been playing around with customizing a syntax table that was actually defined by define-derived-mode and wants to reset it by re-evaluating the derived mode definition. But AFAICS there's no way to fix both scenarios, and the second seems less likely (?) to me than the one reported here. ------------=_1481591102-1545-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 16 Dec 2013 11:13:49 +0000 Received: from localhost ([127.0.0.1]:53062 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VsW7Q-0000sk-UZ for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:49 -0500 Received: from eggs.gnu.org ([208.118.235.92]:35604) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1VsW7P-0000sc-2m for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsW7I-0000RK-Nw for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:46 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:41663) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsW7I-0000RG-Kn for submit@debbugs.gnu.org; Mon, 16 Dec 2013 06:13:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37300) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsW7C-0007sX-Fs for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 06:13:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsW76-0000Pi-Av for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 06:13:34 -0500 Received: from dancol.org ([2600:3c01::f03c:91ff:fedf:adf3]:46672) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsW75-0000PX-Q4 for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 06:13:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=dancol.org; s=x; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=vFIfUkEwuR6T3twe4JygH3Z5yQMdl8CWNT0FniqopT4=; b=cPgSazUK6h8EjcjBPBhEJ6rfwijsVrdSVKl1umEgof5LU0uEPlDgJgYQPf1ALgvg3NkkvUE7zgxox0+rV+ic//OABebiPJhCAsASrHEwfDPopL7JjFbQrz/5e+VKej1rGyQ/Ci5Mm+Zm5+P5Bb/Ru3z9n8bf+aPfY6d75GaKWX1jt01/MBKbfn7cMql8xp0dGlGIhAHrJLWKY41g3q0TqXu6D62hu4iUJlOJq5ng5y+RZ578YjwY/VWm3Kv8z052yU56cccSsrL/CXO9FkCNemUdqqBY/AIf/px0p0xNpnwUTqYYMOvN10fn0SZvIdCzxa5TKQ1QCUACSj9R4ku/ZA==; Received: from [173.252.71.189] (helo=[172.20.16.114]) by dancol.org with esmtpsa (TLS1.0:DHE_RSA_CAMELLIA_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1VsW75-0003zK-5t for bug-gnu-emacs@gnu.org; Mon, 16 Dec 2013 03:13:27 -0800 Message-ID: <52AEE02B.8060309@dancol.org> Date: Mon, 16 Dec 2013 03:12:43 -0800 From: Daniel Colascione User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: bug-emacs Subject: [PATCH] define-derived-mode clobbers syntax tables Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.1 (----) Repro: 1) Visit shell script with comments. See comments fontified properly. 2) M-x find-library sh-script RET 3) M-x eval-buffer 4) Return to shell script buffer 5) C-x C-v RET 6) Observe that comments are no longer fontified as comments. The define-derived-mode macro in sh-script.el emits code that clobbers sh-mode-syntax-table because we don't have a :syntax-table argument. I think the following patch changes the code to the expected behavior. ~/edev/trunk $ bzr diff === modified file 'lisp/emacs-lisp/derived.el' --- lisp/emacs-lisp/derived.el 2013-05-27 16:12:52 +0000 +++ lisp/emacs-lisp/derived.el 2013-12-16 11:09:41 +0000 @@ -206,11 +206,11 @@ ,(if declare-syntax `(progn (unless (boundp ',syntax) - (put ',syntax 'definition-name ',child)) - (defvar ,syntax (make-syntax-table)) - (unless (get ',syntax 'variable-documentation) - (put ',syntax 'variable-documentation - (purecopy ,(format "Syntax table for `%s'." child)))))) + (put ',syntax 'definition-name ',child) + (defvar ,syntax (make-syntax-table)) + (unless (get ',syntax 'variable-documentation) + (put ',syntax 'variable-documentation + (purecopy ,(format "Syntax table for `%s'." child))))))) ,(if declare-abbrev `(progn (put ',abbrev 'definition-name ',child) That is, we shouldn't touch the syntax table variable at all unless the variable is unbound. ------------=_1481591102-1545-1--