Function: erc-process-ctcp-query
erc-process-ctcp-query is a byte-compiled function defined in
erc.el.gz.
Signature
(erc-process-ctcp-query PROC PARSED NICK LOGIN HOST)
Documentation
Process a CTCP query.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc.el.gz
(defun erc-process-ctcp-query (proc parsed nick login host)
;; FIXME: This needs a proper docstring -- Lawrence 2004-01-08
"Process a CTCP query."
(let ((queries (delete "" (split-string (erc-response.contents parsed)
"\C-a"))))
(if (> (length queries) 4)
(erc-display-message
parsed (list 'notice 'error) proc 'ctcp-too-many)
(if (= 0 (length queries))
(erc-display-message
parsed (list 'notice 'error) proc
'ctcp-empty ?n nick)
(while queries
(let* ((type (upcase (car (split-string (car queries)))))
(hook (intern-soft (concat "erc-ctcp-query-" type "-hook")))
(erc--msg-prop-overrides `((erc--ctcp . ,(intern type))
,@erc--msg-prop-overrides)))
(if (and hook (boundp hook))
(if (string-equal type "ACTION")
(run-hook-with-args-until-success
hook proc parsed nick login host
(car (erc-response.command-args parsed))
(car queries))
(when erc-paranoid
(if (erc-current-nick-p
(car (erc-response.command-args parsed)))
(erc-display-message
parsed 'error 'active 'ctcp-request
?n nick ?u login ?h host ?r (car queries))
(erc-display-message
parsed 'error 'active 'ctcp-request-to
?n nick ?u login ?h host ?r (car queries)
?t (car (erc-response.command-args parsed)))))
(run-hook-with-args-until-success
hook proc nick login host
(car (erc-response.command-args parsed))
(car queries)))
(erc-display-message
parsed (list 'notice 'error) proc
'undefined-ctcp)))
(setq queries (cdr queries)))))))