Function: erc--merge-local-modes
erc--merge-local-modes is a byte-compiled function defined in
erc.el.gz.
Signature
(erc--merge-local-modes NEW-MODES OLD-VARS)
Documentation
Return a cons of two lists, each containing local-module modes.
In the first, put modes to be enabled in a new ERC buffer by calling their associated functions. In the second, put modes to be marked as disabled by setting their associated variables to nil.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc--merge-local-modes (new-modes old-vars)
"Return a cons of two lists, each containing local-module modes.
In the first, put modes to be enabled in a new ERC buffer by
calling their associated functions. In the second, put modes to
be marked as disabled by setting their associated variables to
nil."
(if old-vars
(let ((out (list (reverse new-modes))))
(pcase-dolist (`(,k . ,v) old-vars)
(when (and (string-prefix-p "erc-" (symbol-name k))
(string-suffix-p "-mode" (symbol-name k))
(get k 'erc-module))
(if v
(cl-pushnew k (car out))
(setf (car out) (delq k (car out)))
(cl-pushnew k (cdr out)))))
(cons (nreverse (car out)) (nreverse (cdr out))))
(list new-modes)))