From de7e8c33a78a8ccc2166878fd0fdfe45c46cee16 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 28 Feb 2017 15:38:47 -0500 Subject: [PATCH] Add remove-hook! --- core/core-lib.el | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/core-lib.el b/core/core-lib.el index 12da0efe6..2f3699020 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -119,11 +119,18 @@ Examples: (dolist (fn funcs) (setq fn (if (symbolp fn) `(quote ,fn) `(lambda (&rest args) ,@args))) (dolist (h hooks) - (push `(add-hook ',(if quoted-p h (intern (format "%s-hook" h))) - ,fn ,append-p ,local-p) + (push `(,(if (boundp 'hook-fn) hook-fn 'add-hook) + ',(if quoted-p h (intern (format "%s-hook" h))) + ,fn ,append-p ,local-p) forms))) `(progn ,@(reverse forms))))) +(defmacro remove-hook! (&rest args) + "Convenience macro for `remove-hook'. Takes the same arguments as +`add-hook!'." + (let ((hook-fn 'remove-hook)) + (macroexpand `(add-hook! ,@args)))) + (defmacro associate! (mode &rest plist) "Associate a major or minor mode to certain patterns and project files." (declare (indent 1))