Subject: Re: bug#27583: 24.5; `info.el': some test for (eq major-mode 'Info-mode)

From: Stefan Kangas <[email-masked]>
Date: Tue, 27 Aug 2019 03:39:32 +0200

tags 27583 + patch
quit

Drew Adams <[email-masked]> writes:

> Most of the places where `major-mode' is tested use a test like this:
> (derived-mode-p 'Info-mode).  But there are still a few places where
> this is done: (eq major-mode 'Info-mode).
>
> I think (but am not positive) that each of the latter tests should be
> changed to use `derived-mode-p', to let users and libraries define and
> use modes that are derived from `Info-mode'.
>
> It looks like the places that still use (eq major-mode 'Info-mode)
> constitute code that doesn't get much love.  The occurrences are in
> these 3 things:
>
>  Info-hide-note-references (in the option's :set function)
>  info-display-manual
>  info--manual-names (used only by info-display-manual)

Makes sense.  How about the attached patch?

Best regards,
Stefan Kangas
From ad638cb9787c42d4c8a25337fb7843e0fdea6e74 Mon Sep 17 00:00:00 2001
From: Stefan Kangas <[email-masked]>
Date: Tue, 27 Aug 2019 03:36:05 +0200
Subject: [PATCH] Use derived-mode-p consistently in info.el

* lisp/info.el (Info-hide-note-references, info-display-manual)
(info--manual-names): Use derived-mode-p.  (Bug#27583)
---
 lisp/info.el | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lisp/info.el b/lisp/info.el
index 17a2d63e6d..bcfaddcf5a 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -318,7 +318,7 @@ Info-hide-note-references
 	 (set sym val)
 	 (dolist (buffer (buffer-list))
 	   (with-current-buffer buffer
-	     (when (eq major-mode 'Info-mode)
+	     (when (derived-mode-p 'Info-mode)
 	       (revert-buffer t t)))))
   :group 'info)
 
@@ -5300,7 +5300,7 @@ info-display-manual
 	found)
     (dolist (buffer blist)
       (with-current-buffer buffer
-	(when (and (eq major-mode 'Info-mode)
+        (when (and (derived-mode-p 'Info-mode)
 		   (stringp Info-current-file)
 		   (string-match manual-re Info-current-file))
 	  (setq found buffer
@@ -5315,7 +5315,7 @@ info--manual-names
   (let (names)
     (dolist (buffer (buffer-list))
       (with-current-buffer buffer
-	(and (eq major-mode 'Info-mode)
+        (and (derived-mode-p 'Info-mode)
 	     (stringp Info-current-file)
 	     (not (string= (substring (buffer-name) 0 1) " "))
 	     (push (file-name-sans-extension
-- 
2.20.1