From 7142b4aa0fbfd0c922d218fa6ac66a1ff60f68ba Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 1 Nov 2019 23:52:31 -0400 Subject: [PATCH] Make plist-put! variadic And capable of modifying non-symbols in-place. --- core/autoload/plist.el | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/autoload/plist.el b/core/autoload/plist.el index 07dabe324..b99351dd6 100644 --- a/core/autoload/plist.el +++ b/core/autoload/plist.el @@ -22,9 +22,13 @@ list, the pair is destructured into (CAR . CDR)." ,retval))) ;;;###autoload -(defmacro plist-put! (plist prop value) - "Set PROP to VALUE in PLIST in-place." - `(setq ,plist (plist-put ,plist ,prop ,value))) +(defmacro plist-put! (plist &rest rest) + "Set each PROP VALUE pair in REST to PLIST in-place." + `(cl-loop for (prop value) + on (list ,@rest) by #'cddr + do ,(if (symbolp plist) + `(setq ,plist (plist-put ,plist prop value)) + `(plist-put ,plist prop value)))) ;;;###autoload (defmacro plist-delete! (plist prop)