Function: var:append

var:append is an autoloaded and byte-compiled function defined in hvar.el.

Signature

(var:append VAR-SYMBOL LIST-TO-ADD)

Documentation

Append to value held by VAR-SYMBOL, LIST-TO-ADD. Return new value.

If VAR-SYMBOL is unbound, it is set to LIST-TO-ADD. Use to append to hook variables. Store all values for later removal. Do nothing when inhibit-hyperbole-messaging is non-nil.

Source Code

;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hvar.el
;;;###autoload
(defun var:append (var-symbol list-to-add)
  "Append to value held by VAR-SYMBOL, LIST-TO-ADD.  Return new value.
If VAR-SYMBOL is unbound, it is set to LIST-TO-ADD.
Use to append to hook variables.  Store all values for later removal.
Do nothing when `inhibit-hyperbole-messaging' is non-nil."
  (unless (symbolp var-symbol)
    (error "(var:append): First argument, `%s', must be a symbol (not a string)" var-symbol))
  (unless (and list-to-add (listp list-to-add))
    (error "(var:append): Second argument, `%s', must be a non-empty list" list-to-add))
  (unless inhibit-hyperbole-messaging
    (let ((val) result)
      (setq result
	    (if (and (boundp var-symbol)
		     (setq val (symbol-value var-symbol))
		     (or (when (symbolp val)
			   (setq val (cons val nil)))
			 (listp val)))
		(progn (when (functionp val)
			 (setq val (list val)))
		       (set var-symbol (set:union val list-to-add)))
	      (set var-symbol list-to-add)))
      (add-to-list 'var::append-list (cons var-symbol result))
      (symbol-value var-symbol))))