mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
core-lib: add pushmany! macro, refactor pushnew!
This commit is contained in:
@ -284,10 +284,18 @@ MATCH is a string regexp. Only entries that match it will be included."
|
|||||||
(directory-file-name (file-name-directory path))))
|
(directory-file-name (file-name-directory path))))
|
||||||
|
|
||||||
(defmacro pushnew! (place &rest values)
|
(defmacro pushnew! (place &rest values)
|
||||||
"Like `cl-pushnew', but will prepend VALUES to PLACE.
|
"Push VALUES sequentially into PLACE, if they aren't already present.
|
||||||
The order VALUES is preserved."
|
This is a variadic `cl-pushnew'."
|
||||||
`(dolist (--x-- (list ,@(nreverse values)))
|
(let ((var (make-symbol "result")))
|
||||||
(cl-pushnew --x-- ,place)))
|
`(dolist (,var (list ,@values))
|
||||||
|
(cl-pushnew ,var ,place))))
|
||||||
|
|
||||||
|
(defmacro pushmany! (place &rest values)
|
||||||
|
"Push VALUES sequentually into PLACE.
|
||||||
|
This is a variadic `push'."
|
||||||
|
(let ((var (make-symbol "result")))
|
||||||
|
`(dolist (,var ,values)
|
||||||
|
(push ,var ,place))))
|
||||||
|
|
||||||
(defmacro prependq! (sym &rest lists)
|
(defmacro prependq! (sym &rest lists)
|
||||||
"Prepend LISTS to SYM in place."
|
"Prepend LISTS to SYM in place."
|
||||||
|
Reference in New Issue
Block a user