Function: erc--querypoll-send
erc--querypoll-send is a byte-compiled function defined in
erc-goodies.el.gz.
Signature
(erc--querypoll-send SERVER-BUFFER)
Documentation
Send a captive "WHO" in SERVER-BUFFER.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-goodies.el.gz
;; This uses heuristics to associate replies to the initial request
;; because ERC does not yet support `labeled-response'.
(defun erc--querypoll-send (server-buffer)
"Send a captive \"WHO\" in SERVER-BUFFER."
(when (and (buffer-live-p server-buffer)
(buffer-local-value 'erc-server-connected server-buffer))
(with-current-buffer server-buffer
(setq erc--querypoll-timer nil)
(if-let ((buffer (erc--querypoll-get-next erc--querypoll-ring)))
(letrec
((target (erc--target-string
(buffer-local-value 'erc--target buffer)))
(penalty 0)
(here-fn (erc-once-with-server-event
"352" (lambda (_ parsed)
(erc--querypoll-on-352
target (erc-response.command-args parsed)))))
(done-fn (erc-once-with-server-event
"315"
(lambda (_ parsed)
(if (memq here-fn erc-server-352-functions)
(erc-remove-user
(nth 1 (erc-response.command-args parsed)))
(remove-hook 'erc-server-352-functions here-fn t))
(remove-hook 'erc-server-263-functions fail-fn t)
(remove-hook 'erc-server-315-functions done-fn t)
(erc--querypoll-subscribe buffer penalty)
t)))
(fail-fn (erc-once-with-server-event
"263"
(lambda (proc parsed)
(setq penalty 60)
(funcall done-fn proc parsed)
t))))
(erc-server-send (concat "WHO " target)))
(unless (ring-empty-p erc--querypoll-ring)
(erc--querypoll-subscribe nil 30))))))