Function: erc-update-user
erc-update-user is a byte-compiled function defined in erc.el.gz.
Signature
(erc-update-user USER &optional NEW-NICK HOST LOGIN FULL-NAME INFO)
Documentation
Update user info for USER.
USER must be an erc-server-user struct. Any of NEW-NICK, HOST, LOGIN, FULL-NAME, INFO which are non-nil and not equal to the existing values for USER are used to replace the stored values in USER.
If, and only if, a change is made,
erc-channel-members-changed-hook is run for each channel for
which USER is a member, and t is returned.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc-update-user (user &optional new-nick
host login full-name info)
"Update user info for USER.
USER must be an erc-server-user struct. Any of NEW-NICK, HOST,
LOGIN, FULL-NAME, INFO which are non-nil and not equal to the
existing values for USER are used to replace the stored values in
USER.
If, and only if, a change is made,
`erc-channel-members-changed-hook' is run for each channel for
which USER is a member, and t is returned."
(let (changed)
(when user
(when (and new-nick
(not (equal (erc-server-user-nickname user)
new-nick)))
(setq changed t)
(erc-change-user-nickname user new-nick))
(when (and host
(not (equal (erc-server-user-host user) host)))
(setq changed t)
(setf (erc-server-user-host user) host))
(when (and login
(not (equal (erc-server-user-login user) login)))
(setq changed t)
(setf (erc-server-user-login user) login))
(when (and full-name
(not (equal (erc-server-user-full-name user)
full-name)))
(setq changed t)
(setf (erc-server-user-full-name user) full-name))
(when (and info
(not (equal (erc-server-user-info user) info)))
(setq changed t)
(setf (erc-server-user-info user) info))
(if changed
(dolist (buf (erc-server-user-buffers user))
(if (buffer-live-p buf)
(with-current-buffer buf
(run-hooks 'erc-channel-members-changed-hook))))))
changed))