Function: rcirc-handler-CAP

rcirc-handler-CAP is a byte-compiled function defined in rcirc.el.gz.

Signature

(rcirc-handler-CAP PROCESS SENDER ARGS TEXT)

Documentation

Handle capability negotiation messages.

ARGS should have the form (USER SUBCOMMAND . ARGUMENTS). PROCESS is the process object for the current connection.

Source Code

;; Defined in /usr/src/emacs/lisp/net/rcirc.el.gz
(defun rcirc-handler-CAP (process _sender args _text)
  "Handle capability negotiation messages.
ARGS should have the form (USER SUBCOMMAND . ARGUMENTS).  PROCESS
is the process object for the current connection."
  (with-rcirc-process-buffer process
    (let ((subcmd (cadr args)))
      (dolist (cap (cddr args))
        (cond ((string= subcmd "ACK")
               (push (intern (downcase cap)) rcirc-acked-capabilities)
               (setq rcirc-requested-capabilities
                     (delete cap rcirc-requested-capabilities)))
              ((string= subcmd "NAK")
               (setq rcirc-requested-capabilities
                     (delete cap rcirc-requested-capabilities))))))
    (when (and (null rcirc-requested-capabilities) rcirc-finished-sasl)
      ;; All requested capabilities have been responded to
      (rcirc-send-string process "CAP" "END"))))