;;; 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."
(interactive)
(insert
(concat
- "\n\n"
+ "\n"
(make-string (floor (/ (- fill-column (length b/asterism)) 2))
?\s)
b/asterism
- "\n\n")))
+ "\n")))
(defun b/no-mouse-autoselect-window ()
"Conveniently disable `focus-follows-mouse'.