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