diff options
Diffstat (limited to '')
-rw-r--r-- | lisp/bandali-utils.el | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lisp/bandali-utils.el b/lisp/bandali-utils.el index 95c2878..6669b2a 100644 --- a/lisp/bandali-utils.el +++ b/lisp/bandali-utils.el @@ -24,10 +24,22 @@ ;;; Code: -(defmacro b/setq-every (value &rest vars) - "Set all the variables from VARS to value VALUE." - (declare (indent defun) (debug t)) - `(progn ,@(mapcar (lambda (x) (list 'setq x value)) vars))) +(require 'cl-lib) + +(defmacro csetq (&rest args) + "Set the value of user option VAR to VALUE. + +More generally, you can use multiple variables and values, as in + (csetq VAR VALUE VAR VALUE...) +This sets each user option VAR's value to the corresponding VALUE. + +\(fn [VAR VALUE]...)" + (declare (debug setq)) + `(progn + ,@(cl-loop for (var value) on args by 'cddr + collect + `(funcall (or (get ',var 'custom-set) #'set-default) + ',var ,value)))) (defun b/start-process (program &rest args) "Same as `start-process', but doesn't bother about name and buffer." |