Function: erc--restore-initialize-priors

erc--restore-initialize-priors is a macro defined in erc.el.gz.

Signature

(erc--restore-initialize-priors MODE &rest VARS)

Documentation

Restore local VARS for local minor MODE from a previous session.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defmacro erc--restore-initialize-priors (mode &rest vars)
  "Restore local VARS for local minor MODE from a previous session."
  (declare (indent 1))
  (let ((priors (make-symbol "priors"))
        (initp (make-symbol "initp"))
        ;;
        forms)
    (while-let ((k (pop vars)))
      (push `(,k (if ,initp (alist-get ',k ,priors) ,(pop vars))) forms))
    `(let* ((,priors (or erc--server-reconnecting erc--target-priors))
            (,initp (and ,priors (alist-get ',mode ,priors))))
       (unless (local-variable-if-set-p ',mode)
         (error "Not a local minor mode var: %s" ',mode))
       (setq ,@(mapcan #'identity (nreverse forms))))))