Function: erc-button-add-nickname-buttons
erc-button-add-nickname-buttons is a byte-compiled function defined in
erc-button.el.gz.
Signature
(erc-button-add-nickname-buttons ENTRY)
Documentation
Search through the buffer for nicknames, and add buttons.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-button.el.gz
(defun erc-button-add-nickname-buttons (entry)
"Search through the buffer for nicknames, and add buttons."
(when-let* ((form (nth 2 entry))
;; Spoof `form' slot of default legacy `nicknames' entry
;; so `erc-button--extract-form' sees a function value.
(form (let ((erc-button-buttonize-nicks
(and erc-button-buttonize-nicks
erc-button--modify-nick-function)))
(erc-button--extract-form form)))
(oncep (if-let* ((erc-button-highlight-nick-once)
(c (erc--check-msg-prop 'erc--cmd))
((memq c erc-button-highlight-nick-once)))
1 0))
(seen 0))
(goto-char (point-min))
(while-let
(((or (zerop seen) (zerop oncep)))
((erc-forward-word))
(bounds (or (and (= 1 (cl-incf seen)) (erc--get-speaker-bounds))
(erc-bounds-of-word-at-point)))
(word (buffer-substring-no-properties (car bounds) (cdr bounds)))
(down (erc-downcase word)))
(let* ((nick-obj t)
(cmem (and erc-channel-members
(or (gethash down erc-channel-members)
(funcall erc-button--fallback-cmem-function
down word bounds seen))))
(user (or (and cmem (car cmem))
(and erc-server-users (gethash down erc-server-users))))
(data (list word)))
(when (or (not (functionp form))
(and user
(setq nick-obj (funcall form (make-erc-button--nick
:bounds bounds :data data
:downcased down :user user
:cusr (cdr cmem)))
data (erc-button--nick-data nick-obj)
bounds (erc-button--nick-bounds nick-obj))))
(erc-button-add-button (car bounds) (cdr bounds) (nth 3 entry)
nick-obj data))))))