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)