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))))