Function: erc--auth-source-determine-params-merge

erc--auth-source-determine-params-merge is a byte-compiled function defined in erc.el.gz.

Signature

(erc--auth-source-determine-params-merge &rest PLIST)

Documentation

Return a plist of merged keyword args to pass to auth-source-search.

Combine items in PLIST with others derived from the current connection context, but prioritize the former. For keys not present in PLIST, favor a network ID over an announced server unless erc--target is a local channel. And treat the dialed server address as a fallback for the announced name in both cases.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc--auth-source-determine-params-merge (&rest plist)
  "Return a plist of merged keyword args to pass to `auth-source-search'.
Combine items in PLIST with others derived from the current connection
context, but prioritize the former.  For keys not present in PLIST,
favor a network ID over an announced server unless `erc--target' is a
local channel.  And treat the dialed server address as a fallback for
the announced name in both cases."
  (let ((defaults (erc--auth-source-determine-params-defaults)))
    `(,@(cl-loop for (key value) on plist by #'cddr
                 for default = (assq key defaults)
                 do (when default (setq defaults (delq default defaults)))
                 append `(,key ,(delete-dups
                                 `(,@(if (consp value) value (list value))
                                   ,@(cdr default)))))
      ,@(cl-loop for (k . v) in defaults append (list k v)))))