Change add-hook! macro to retain hook order
(add-hook! hook '(1 2 3)) should set hook to `(1 2 3 ,@old-hooks). Before this, they would be pushed sequentially, resulting in hook = `(3 2 1 ,@old hooks)`
This commit is contained in:
parent
f2e5321ce1
commit
7777f9940e
2 changed files with 8 additions and 8 deletions
|
@ -157,7 +157,7 @@ Body forms can access the hook's arguments through the let-bound variable
|
|||
`(remove-hook ',hook ,fn ,local-p)
|
||||
`(add-hook ',hook ,fn ,append-p ,local-p))
|
||||
forms)))
|
||||
`(progn ,@(nreverse forms)))))
|
||||
`(progn ,@forms))))
|
||||
|
||||
(defmacro remove-hook! (&rest args)
|
||||
"Convenience macro for `remove-hook'. Takes the same arguments as
|
||||
|
|
|
@ -37,14 +37,14 @@
|
|||
|
||||
;; `add-hook!'
|
||||
(def-test! add-one-to-one-hook
|
||||
(let (hooks)
|
||||
(let ((hooks '(old-hook)))
|
||||
(add-hook! 'hooks 'a-hook)
|
||||
(should (equal hooks '(a-hook)))))
|
||||
(should (equal hooks '(a-hook old-hook)))))
|
||||
|
||||
(def-test! add-many-to-one-hook
|
||||
(let (hooks)
|
||||
(let ((hooks '(hook-x)))
|
||||
(add-hook! 'hooks '(hook-a hook-b hook-c))
|
||||
(should (equal hooks '(hook-c hook-b hook-a)))))
|
||||
(should (equal hooks '(hook-a hook-b hook-c hook-x)))))
|
||||
|
||||
(def-test! add-one-to-many-hooks
|
||||
(let (hooks-a hooks-b hooks-c)
|
||||
|
@ -56,9 +56,9 @@
|
|||
(def-test! add-many-to-many-hooks
|
||||
(let (hooks-a hooks-b hooks-c)
|
||||
(add-hook! '(hooks-a hooks-b hooks-c) '(hook-a hook-b hook-c))
|
||||
(should (equal hooks-a '(hook-c hook-b hook-a)))
|
||||
(should (equal hooks-b '(hook-c hook-b hook-a)))
|
||||
(should (equal hooks-c '(hook-c hook-b hook-a)))))
|
||||
(should (equal hooks-a '(hook-a hook-b hook-c)))
|
||||
(should (equal hooks-b '(hook-a hook-b hook-c)))
|
||||
(should (equal hooks-c '(hook-a hook-b hook-c)))))
|
||||
|
||||
(def-test! add-non-literal-hooks
|
||||
(let (some-mode-hook)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue