]> git.eshelyaron.com Git - emacs.git/commitdiff
fixup! Add :before-hook keyword to define-derived-mode fix/bug-35351
authorPhil Sainty <psainty@orcon.net.nz>
Mon, 22 Apr 2019 23:00:02 +0000 (11:00 +1200)
committerPhil Sainty <psainty@orcon.net.nz>
Mon, 22 Apr 2019 23:07:28 +0000 (11:07 +1200)
Run :before-hook right away, rather than using change-major-mode-hook.

This changes the :before-hook sequence to child-before-parent rather
than parent-before-child.

lisp/emacs-lisp/derived.el

index 00aa70a10aa7ba165f372410aca876e3d3db7587..6934d1d087dc93c5dfe432dd2625a8f6fd08880c 100644 (file)
@@ -139,7 +139,8 @@ BODY can start with a bunch of keyword arguments.  The following keyword
        A nil value means to simply use the same abbrev-table as the parent.
 :before-hook FORM
        A single lisp form which will be evaluated before anything else
-       happens in `change-major-mode-hook'.  It should not be quoted.
+       happens (i.e. before `change-major-mode-hook').  It should not be
+       quoted.
 :after-hook FORM
        A single lisp form which is evaluated after the mode hooks have been
        run.  It should not be quoted.
@@ -247,8 +248,7 @@ No problems result if this variable is not bound.
         ,docstring
         (interactive)
          ,@(when before-hook
-             `((add-hook 'change-major-mode-hook (lambda () ,before-hook)
-                         nil t)))
+             `(,before-hook))
                                        ; Run the parent.
         (delay-mode-hooks