The attached patch does a couple of things to clean up Gnus's various major modes: - Creates a do-nothing `gnus-mode', derived from `special-mode', to serve as parent mode for all the other major modes. This isn't so important, but sometimes it would be nice to do (derived-mode-p 'gnus-mode). - Derives everything from `gnus-mode', and turns a couple of modes from functions that manually set up modes into proper calls to `define-derived-mode'. - Removes code like "(setq buffer-read-only t)", as that's automatically done by `special-mode'. - Where appropriate, deletes custom definitions for gnus-*-mode-hook, as these hooks are already automatically created by the define-mode calls. (Maybe this removal isn't worth doing?) This patch probably needs more testing, but I'm floating it first for any comments. Eric In GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.1) of 2018-10-31 built on slip