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