From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Glenn Morris Newsgroups: gmane.emacs.bugs Subject: bug#16160: [PATCH] define-derived-mode clobbers syntax tables Date: Mon, 12 Dec 2016 20:04:52 -0500 Message-ID: <58eg1cbpvv.fsf@fencepost.gnu.org> References: <52AEE02B.8060309@dancol.org> <52AFB453.5000300@dancol.org> <52B4BA87.8070200@dancol.org> <87oaaz2bs6.fsf@gnus.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1481591116 571 195.159.176.226 (13 Dec 2016 01:05:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 13 Dec 2016 01:05:16 +0000 (UTC) User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) To: 16160-done@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Dec 13 02:05:12 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cGbWo-0007jt-FC for geb-bug-gnu-emacs@m.gmane.org; Tue, 13 Dec 2016 02:05:11 +0100 Original-Received: from localhost ([::1]:34651 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cGbWs-0006K6-E2 for geb-bug-gnu-emacs@m.gmane.org; Mon, 12 Dec 2016 20:05:14 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42812) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cGbWh-0006JD-Lo for bug-gnu-emacs@gnu.org; Mon, 12 Dec 2016 20:05:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cGbWg-0005dZ-HD for bug-gnu-emacs@gnu.org; Mon, 12 Dec 2016 20:05:03 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:52657) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cGbWg-0005dN-F8 for bug-gnu-emacs@gnu.org; Mon, 12 Dec 2016 20:05:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cGbWg-0000P2-7q for bug-gnu-emacs@gnu.org; Mon, 12 Dec 2016 20:05:02 -0500 Resent-From: Glenn Morris Original-Sender: "Debbugs-submit" Resent-To: bug-gnu-emacs@gnu.org Resent-Date: Tue, 13 Dec 2016 01:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: cc-closed 16160 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Mail-Followup-To: 16160@debbugs.gnu.org, rgm@gnu.org, dancol@dancol.org Original-Received: via spool by 16160-done@debbugs.gnu.org id=D16160.14815911001533 (code D ref 16160); Tue, 13 Dec 2016 01:05:02 +0000 Original-Received: (at 16160-done) by debbugs.gnu.org; 13 Dec 2016 01:05:00 +0000 Original-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 Original-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 Original-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 Original-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 Original-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 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") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:126949 Archived-At: 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.