Function: erc-nicks--get-face

erc-nicks--get-face is a byte-compiled function defined in erc-nicks.el.gz.

Signature

(erc-nicks--get-face NICK KEY)

Documentation

Retrieve a face for trimmed and downcased NICK.

If NICK is new, use KEY to derive color, and store under NICK. Favor a custom erc-nicks-NICK@NETWORK-face when defined.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-nicks.el.gz
(defun erc-nicks--get-face (nick key)
  "Retrieve a face for trimmed and downcased NICK.
If NICK is new, use KEY to derive color, and store under NICK.
Favor a custom erc-nicks-NICK@NETWORK-face when defined."
  (let ((table (erc-with-server-buffer erc-nicks--face-table)))
    (or (gethash nick table)
        (and-let* ((face (intern-soft (concat "erc-nicks-" nick "@"
                                              (erc-network-name) "-face")))
                   ((or (and (facep face) face)
                        (erc-nicks--revive face face nick (erc-network))))))
        (let ((color (erc-nicks--determine-color key))
              (new-face (make-symbol (concat "erc-nicks-" nick "-face"))))
          (put new-face 'erc-nicks--nick nick)
          (put new-face 'erc-nicks--netid erc-networks--id)
          (put new-face 'erc-nicks--key key)
          (face-spec-set new-face `((t :foreground ,color
                                       :inherit ,erc-nicks-backing-face))
                         'face-defface-spec)
          (set-face-documentation
           new-face (format "Internal face for %s on %s." nick (erc-network)))
          (puthash nick new-face table)))))