Function: erc-dcc-do-CLOSE-command
erc-dcc-do-CLOSE-command is a byte-compiled function defined in
erc-dcc.el.gz.
Signature
(erc-dcc-do-CLOSE-command PROC &optional TYPE NICK)
Documentation
Close a connection. Usage: /dcc close type nick.
At least one of TYPE and NICK must be provided.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-dcc.el.gz
(defun erc-dcc-do-CLOSE-command (_proc &optional type nick)
"Close a connection. Usage: /dcc close type nick.
At least one of TYPE and NICK must be provided."
;; disambiguate type and nick if only one is provided
(when (and type (null nick)
(not (member (upcase type) erc-dcc-connection-types)))
(setq nick type)
(setq type nil))
;; validate nick argument
(unless (and nick (string-match (concat "\\`" erc-valid-nick-regexp "\\'")
nick))
(setq nick nil))
;; validate type argument
(if (and type (member (upcase type) erc-dcc-connection-types))
(setq type (intern (upcase type)))
(setq type nil))
(when (or nick type)
(let ((ret t))
(while ret
(cond ((and nick type)
(setq ret (erc-dcc-member :type type :nick nick)))
(nick
(setq ret (erc-dcc-member :nick nick)))
(type
(setq ret (erc-dcc-member :type type)))
(t
(setq ret nil)))
(when ret
;; found a match - delete process if it exists.
(and (processp (plist-get ret :peer))
(delete-process (plist-get ret :peer)))
(setq erc-dcc-list (delq ret erc-dcc-list))
(erc-display-message
nil 'notice 'active
'dcc-closed
?T (plist-get ret :type)
?n (erc-extract-nick (plist-get ret :nick))))))
t))