From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 25 00:10:15 2018 Received: (at submit) by debbugs.gnu.org; 25 Sep 2018 04:10:15 +0000 Received: from localhost ([127.0.0.1]:52690 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4efv-0004JJ-0N for submit@debbugs.gnu.org; Tue, 25 Sep 2018 00:10:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35605) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4efs-0004J0-GJ for submit@debbugs.gnu.org; Tue, 25 Sep 2018 00:10:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g4efm-0005bZ-AN for submit@debbugs.gnu.org; Tue, 25 Sep 2018 00:10:07 -0400 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 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:58530) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g4efl-0005bR-S1 for submit@debbugs.gnu.org; Tue, 25 Sep 2018 00:10:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45206) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g4efk-0002ae-Nj for bug-gnu-emacs@gnu.org; Tue, 25 Sep 2018 00:10:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g4efh-0005a9-JL for bug-gnu-emacs@gnu.org; Tue, 25 Sep 2018 00:10:04 -0400 Received: from mout01.posteo.de ([185.67.36.141]:37596) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g4efh-0005ZN-Cb for bug-gnu-emacs@gnu.org; Tue, 25 Sep 2018 00:10:01 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id CAB7121148 for ; Tue, 25 Sep 2018 06:09:58 +0200 (CEST) Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 42K6zT40SRz6tm5 for ; Tue, 25 Sep 2018 06:09:57 +0200 (CEST) From: andrew@schwartzmeyer.com To: bug-gnu-emacs@gnu.org Subject: [PATCH] Fix 'provided-mode-derived-p' when the parent is an alias Date: Mon, 24 Sep 2018 21:09:39 -0700 Message-Id: <20180925040939.66376-1-andrew@schwartzmeyer.com> X-Mailer: git-send-email 2.19.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) 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: -5.0 (-----) From: Andrew Schwartzmeyer Authors of Emacs packages often derive from an alias of a mode instead of the mode directly. This is especially the case when deriving from 'prog-mode' as it is relatively new. Unfortunately, using 'derived-mode-p' to check if some mode is derived from an alias of 'prog-mode' does not work as expected. The bug is that 'provided-mode-derived-p' should not only return non-nil when MODE is one of MODES, but also when MODE is an alias of one of MODES. * lisp/subr.el (provided-mode-derived-p): Return non-nil when MODE is an alias of any of MODES (Bug#32795). * test/lisp/subr-tests.el: Add tests for the above. --- lisp/subr.el | 9 +++++++-- test/lisp/subr-tests.el | 12 ++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lisp/subr.el b/lisp/subr.el index 7582b6cdb..6c625b40d 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1919,9 +1919,14 @@ delay-mode-hooks (defun provided-mode-derived-p (mode &rest modes) "Non-nil if MODE is derived from one of MODES. Uses the `derived-mode-parent' property of the symbol to trace backwards= . +Non-nil even if MODE is derived from an alias of any of MODES. If you just want to check `major-mode', use `derived-mode-p'." - (while (and (not (memq mode modes)) - (setq mode (get mode 'derived-mode-parent)))) + (while + (and + (not (memq mode modes)) + (let* ((parent (get mode 'derived-mode-parent)) + (parentfn (symbol-function parent))) + (setq mode (if (and parentfn (symbolp parentfn)) parentfn paren= t))))) mode) =20 (defun derived-mode-p (&rest modes) diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el index 430d71903..a9f72c26d 100644 --- a/test/lisp/subr-tests.el +++ b/test/lisp/subr-tests.el @@ -62,6 +62,18 @@ (quote (0 font-lock-keyword-face)))))))) =20 +(ert-deftest provided-mode-derived-p () + ;; base case: `derived-mode' directly derives `prog-mode' + (should (progn + (define-derived-mode derived-mode prog-mode "test") + (provided-mode-derived-p 'derived-mode 'prog-mode))) + ;; edge case: `derived-mode' derives an alias of `prog-mode' + (should (progn + (defalias 'parent-mode + (if (fboundp 'prog-mode) 'prog-mode 'fundamental-mode)) + (define-derived-mode derived-mode parent-mode "test") + (provided-mode-derived-p 'derived-mode 'prog-mode)))) + (ert-deftest number-sequence-test () (should (=3D (length (number-sequence (1- most-positive-fixnum) most-positive-f= ixnum)) --=20 2.19.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 26 01:10:40 2018 Received: (at 32832) by debbugs.gnu.org; 26 Sep 2018 05:10:40 +0000 Received: from localhost ([127.0.0.1]:54300 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g525w-0000ky-C9 for submit@debbugs.gnu.org; Wed, 26 Sep 2018 01:10:40 -0400 Received: from mout02.posteo.de ([185.67.36.142]:50033) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g525t-0000jP-1s for 32832@debbugs.gnu.org; Wed, 26 Sep 2018 01:10:37 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 5907321192 for <32832@debbugs.gnu.org>; Wed, 26 Sep 2018 07:10:30 +0200 (CEST) Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 42KmGs3GtBz9rxM for <32832@debbugs.gnu.org>; Wed, 26 Sep 2018 07:10:29 +0200 (CEST) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 25 Sep 2018 22:10:29 -0700 From: Andrew Schwartzmeyer To: 32832@debbugs.gnu.org Subject: Please close this bug Message-ID: X-Sender: andrew@schwartzmeyer.com User-Agent: Posteo Webmail X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 32832 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'm sorry, this patch was meant for #32795, but I accidentally created a new bug. The patch has been successfully attached to the correct bug; that bug can be classified as "Patch Available" and this bug closed. Thanks! From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 26 08:18:18 2018 Received: (at 32832) by debbugs.gnu.org; 26 Sep 2018 12:18:18 +0000 Received: from localhost ([127.0.0.1]:54500 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g58lm-0007QV-JR for submit@debbugs.gnu.org; Wed, 26 Sep 2018 08:18:18 -0400 Received: from mail-io1-f46.google.com ([209.85.166.46]:41367) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g58ll-0007QE-9X; Wed, 26 Sep 2018 08:18:17 -0400 Received: by mail-io1-f46.google.com with SMTP id q4-v6so23079037iob.8; Wed, 26 Sep 2018 05:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=A8RKfgURyVehdAs34Q0IfFlmikR1MEzMEGDFII6wGts=; b=fsd2wm9fzKKx3ffwNUG06WYH9U1wxNcLPZRGuD+1vj9pl2+dmuDIGQVnsglzlqtJrH hhAySchOoublsUTBK/0fphIpXuH4lHolLLgM4SNtKB8xuxvDzyghsxmnaxus+I+QArMW haKXsIyTJbi7nfKmxSSCdkQbA8Muycrfula0gY39wipKH681wgYmb8Oo0XDEKQy5Uwg9 UNCDMSkx3wPR2fngDw7hJmAZWjU1PPRyUg/UTQ8gmDilXX7RFyDOhb60cHXzKgKuo/ZB fzcGISPVd8TYi3rQdRu5v/QA2WrGZvgyX48+wvawdyDTsr9lcRn6s6jq5KKRoGCxGnz8 x0Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=A8RKfgURyVehdAs34Q0IfFlmikR1MEzMEGDFII6wGts=; b=LXPpz46jh5r3iFefMywiCsEd27Iyt3MzJnQVElpSVVAnuBUPaxleiLwHzTKj0jceKz mLb0BzrHb+0P9Duu6yJH9SguZWfL2Moqr1v724Q1UUG3AOKqufHr840LP/VWuQQDcOTn xX+mqhjSuzDm4wPEB7z7SEJDedPOws5grOzdVmcutDrXEnuDUfwN+VeIReaOgV65aXtR deHf0xs7/NXaxCvcazwi/k3myFq8/Cf9SNSQ4MhmOKSOtHUTDB9OjLh9Dr8epfLf6sqt e8Z1OYo+YnTQnPloR08P3z/G1010tjR6yOGv4B5jXBMBXly1AEFGmxc/D5E+y6boNoDs tAIg== X-Gm-Message-State: ABuFfoiV61hu+yBMaceW8zHnG0Ccb2n99bdVZzOl50Op8+lA5SG23soZ d16gmAfY4KuyuiDcss+gLLe7Virw X-Google-Smtp-Source: ACcGV602sUGHY1gjANWqkkYPsGojCe35OuxhqZKjotd5qaDtAiYtKsINL5L7rjw0mLfJvlVPtV1DWg== X-Received: by 2002:a6b:8e14:: with SMTP id q20-v6mr4727870iod.169.1537964291544; Wed, 26 Sep 2018 05:18:11 -0700 (PDT) Received: from zebian (cbl-45-2-119-34.yyz.frontiernetworks.ca. [45.2.119.34]) by smtp.googlemail.com with ESMTPSA id w64-v6sm2369570ita.7.2018.09.26.05.18.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 26 Sep 2018 05:18:10 -0700 (PDT) From: Noam Postavsky To: Andrew Schwartzmeyer Subject: Re: bug#32832: Please close this bug References: <20180925040939.66376-1-andrew@schwartzmeyer.com> Date: Wed, 26 Sep 2018 08:18:09 -0400 In-Reply-To: (Andrew Schwartzmeyer's message of "Tue, 25 Sep 2018 22:10:29 -0700") Message-ID: <87h8ico3jy.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32832 Cc: 32832@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 (-) close 32832 tags 32795 + patch quit Andrew Schwartzmeyer writes: > I'm sorry, this patch was meant for #32795, but I accidentally created > a new bug. The patch has been successfully attached to the correct > bug; that bug can be classified as "Patch Available" and this bug > closed. Done. From unknown Tue Jun 17 20:28:48 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, 25 Oct 2018 11:24:05 +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