From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: Minor mode hook run when mode is deactivated? Date: Wed, 07 Oct 2020 19:45:17 -0400 Message-ID: References: <87d01tr5l1.fsf@fastmail.fm> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32880"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:RDwacYhYVEr3kcpeejquobts2HQ= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Oct 08 01:45:52 2020 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kQJ84-0008R4-72 for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 08 Oct 2020 01:45:52 +0200 Original-Received: from localhost ([::1]:55798 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQJ83-0002pH-6a for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 07 Oct 2020 19:45:51 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48190) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQJ7h-0002p7-RX for help-gnu-emacs@gnu.org; Wed, 07 Oct 2020 19:45:29 -0400 Original-Received: from static.214.254.202.116.clients.your-server.de ([116.202.254.214]:58398 helo=ciao.gmane.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kQJ7f-0000wM-3g for help-gnu-emacs@gnu.org; Wed, 07 Oct 2020 19:45:29 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1kQJ7a-0007qw-Bt for help-gnu-emacs@gnu.org; Thu, 08 Oct 2020 01:45:22 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/07 19:45:23 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:124368 Archived-At: > I recently ran into a problem that was apparently caused by a minor mode > hook being run when the mode is deactivated. Counter-intuitive as that may > be (to me, at least), a quick look at the code for `define-minor-mode` seems > to suggest that it's in fact correct. If you need to do something when a minor mode is activated, you most likely also need to do something to "undo" it when the mode is deactivated. So, yes, the minor mode hooks are run both when activating and when deactivating, and they should check the value of the minor mode variable to know which it is. Stefan