Function: pcomplete/erc-mode/DCC

pcomplete/erc-mode/DCC is an autoloaded and byte-compiled function defined in erc-dcc.el.gz.

Signature

(pcomplete/erc-mode/DCC)

Documentation

Provide completion for the /DCC command.

Source Code

;; Defined in /usr/src/emacs/lisp/erc/erc-dcc.el.gz
;;;###autoload
(defun pcomplete/erc-mode/DCC ()
  "Provide completion for the /DCC command."
  (pcomplete-here (append '("chat" "close" "get" "list")
                          (when (fboundp 'make-network-process) '("send"))))
  (when (equal "get" (downcase (pcomplete-arg 1)))
    (pcomplete-opt "ts")
    (pcomplete-opt (if (equal "-s" (pcomplete-arg 'first 2)) "t" "s")))
  (pcomplete-here
   (pcase (intern (downcase (pcomplete-arg 'first 1)))
     ('chat (mapcar (lambda (elt) (plist-get elt :nick))
                    (cl-remove-if-not
                     (lambda (elt)
                       (eq (plist-get elt :type) 'CHAT))
                     erc-dcc-list)))
     ('close (delete-dups
              (mapcar (lambda (elt) (symbol-name (plist-get elt :type)))
                      erc-dcc-list)))
     ('get (mapcar #'erc-dcc-nick
                   (cl-remove-if-not
                    (lambda (elt)
                      (eq (plist-get elt :type) 'GET))
                    erc-dcc-list)))
     ('send (pcomplete-erc-all-nicks))))
  (pcomplete-here
   (pcase (intern (downcase (pcomplete-arg 'first 1)))
     ('get (mapcar (lambda (elt) (plist-get elt :file))
                   (cl-remove-if-not
                    (lambda (elt)
                      (and (eq (plist-get elt :type) 'GET)
                           (erc-nick-equal-p (erc-extract-nick
                                              (plist-get elt :nick))
                                             (pcomplete-arg 1))))
                    erc-dcc-list)))
     ('close (mapcar #'erc-dcc-nick
                     (cl-remove-if-not
                      (lambda (elt)
                        (eq (plist-get elt :type)
                            (intern (upcase (pcomplete-arg 1)))))
                      erc-dcc-list)))
     ('send (pcomplete-entries)))))