Function: erc-speedbar-insert-user
erc-speedbar-insert-user is a byte-compiled function defined in
erc-speedbar.el.gz.
Signature
(erc-speedbar-insert-user ENTRY EXP-CHAR INDENT &optional BUFFER)
Documentation
Insert one user based on the channel member list ENTRY.
Expect EXP-CHAR to be the expansion character to use, INDENT the
current indentation level, and BUFFER the associated channel or
query buffer. Set the speedbar-function text property to
erc-speedbar--on-click, which is called with the formatted
nick, a so-called "token", and the indent level. The token is
a list of four items: the userhost, the GECOS, the current
erc-server-user info slot, and the associated buffer.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-speedbar.el.gz
(defun erc-speedbar-insert-user (entry exp-char indent &optional buffer)
"Insert one user based on the channel member list ENTRY.
Expect EXP-CHAR to be the expansion character to use, INDENT the
current indentation level, and BUFFER the associated channel or
query buffer. Set the `speedbar-function' text property to
`erc-speedbar--on-click', which is called with the formatted
nick, a so-called \"token\", and the indent level. The token is
a list of four items: the userhost, the GECOS, the current
`erc-server-user' info slot, and the associated buffer."
(let* ((user (car entry))
(cuser (cdr entry))
(nick (erc-server-user-nickname user))
(host (erc-server-user-host user))
(info (erc-server-user-info user))
(login (erc-server-user-login user))
(name (erc-server-user-full-name user))
(nick-str (concat (with-current-buffer (or buffer (current-buffer))
(erc-get-channel-membership-prefix cuser))
nick))
(finger (concat login (when (or login host) "@") host))
(sbtoken (list finger name info (buffer-name buffer))))
(if (or login host name info) ; we want to be expandable
(speedbar-make-tag-line
'bracket ?+ 'erc-speedbar-expand-user sbtoken
nick-str #'erc-speedbar--on-click sbtoken
(funcall erc-speedbar--nick-face-function buffer user cuser)
indent)
(when (equal exp-char ?-)
(forward-line -1)
(erc-speedbar-expand-user "+" (list finger name info) indent))
(speedbar-make-tag-line
'statictag ?? nil nil
nick-str nil nil nil
indent))))