MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.117.158.174
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/erc/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/erc/erc-dcc.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:08:35 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/erc/erc-dcc.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\302\303\304\305\306\307\310\311\312\313\314\315&\207" [require erc custom-declare-variable erc-dcc-mode nil "Non-nil if Erc-Dcc mode is enabled.\nSee the command `erc-dcc-mode' for a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `erc-dcc-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group erc-dcc :type boolean] 12)
#@220 Toggle ERC dcc mode.
With a prefix argument ARG, enable dcc if ARG is positive,
and disable it otherwise.  If called from Lisp, enable the mode
if ARG is omitted or nil.
Provide Direct Client-to-Client support for ERC.
(defalias 'erc-dcc-mode #[(&optional arg) "\303 	\304=\203\n?\202\305	!\306V\211\203\307 \210\202!\310 \210\311\312\n\203+\313\202,\314\"\210\315\316!\203Q\317\302!\210\303 \203D\303 \232\203Q\320\321\n\203N\322\202O\323\"\210)\324 \210\n\207" [#1=#:last-message arg erc-dcc-mode current-message toggle prefix-numeric-value 0 erc-dcc-enable erc-dcc-disable run-hooks erc-dcc-mode-hook erc-dcc-mode-on-hook erc-dcc-mode-off-hook called-interactively-p any customize-mark-as-set message "Erc-Dcc mode %sabled" "en" "dis" force-mode-line-update] 4 (#$ . 1051) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\300!\205\n\303\211%\207" [erc-dcc-mode-map add-minor-mode erc-dcc-mode nil boundp] 6)
#@22 Enable ERC dcc mode.
(defalias 'erc-dcc-enable #[nil "\301\302\303\"\210\304\305\306\307\"\207" [erc-dcc-mode add-to-list erc-modules dcc t add-hook erc-server-401-functions erc-dcc-no-such-nick] 3 (#$ . 2008) nil])
#@23 Disable ERC dcc mode.
(defalias 'erc-dcc-disable #[nil "\302\303\"\304\305\306\307\"\207" [erc-modules erc-dcc-mode delq dcc nil remove-hook erc-server-401-functions erc-dcc-no-such-nick] 3 (#$ . 2231) nil])
(byte-code "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\210\306\307\310\311\312\313%\210\314\315\310\316\312\307\317\320&\207" [put erc-dcc-mode definition-name dcc erc-dcc-enable erc-dcc-disable custom-declare-group erc-dcc nil "DCC stands for Direct Client Communication, where you and your\nfriend's client programs connect directly to each other,\nbypassing IRC servers and their occasional \"lag\" or \"split\"\nproblems.  Like /MSG, the DCC chat is completely private.\n\nUsing DCC get and send, you can transfer files directly from and to other\nIRC users." :group erc custom-declare-variable erc-dcc-verbose "If non-nil, be verbose about DCC activity reporting." :type boolean] 8)
#@87 List of valid DCC connection types.
All values of the list must be uppercase strings.
(defconst erc-dcc-connection-types '("CHAT" "GET" "SEND") (#$ . 3154))
#@1166 List of DCC connections. Looks like:
  ((:nick "nick!user@host" :type GET :peer proc :parent proc :size size :file file)
   (:nick "nick!user@host" :type CHAT :peer proc :parent proc)
   (:nick "nick" :type SEND :peer server-proc :parent parent-proc :file
   file :sent <marker> :confirmed <marker>))

 :nick - a user or userhost for the peer. combine with :parent to reach them

 :type - the type of DCC connection - SEND for outgoing files, GET for
         incoming, and CHAT for both directions. To tell which end started
         the DCC chat, look at :peer

 :peer - the other end of the DCC connection. In the case of outgoing DCCs,
         this represents a server process until a connection is established

 :parent - the server process where the dcc connection was established.
           Note that this can be nil or an invalid process since a DCC
           connection is in general independent from a particular server
           connection after it was established.

 :file - for outgoing sends, the full path to the file. for incoming sends,
         the suggested filename or vetted filename

 :size - size of the file, may be nil on incoming DCCs
(defvar erc-dcc-list nil (#$ . 3319))
#@63 Add a new entry of type TYPE to `erc-dcc-list' and return it.
(defalias 'erc-dcc-list-add #[(type nick peer parent &rest args) "\306\307\310	\311\n\312\257\f\"
B\211@\207" [nick type peer parent args erc-dcc-list append :nick :type :peer :parent] 9 (#$ . 4528)])
(defvar erc-dcc-connect-function 'erc-dcc-open-network-stream)
(defalias 'erc-dcc-open-network-stream #[(procname buffer addr port entry) "\304	\n$\207" [procname buffer addr port open-network-stream] 5])
(erc-define-catalog 'english '((dcc-chat-discarded . "DCC: previous chat request from %n (%u@%h) discarded") (dcc-chat-ended . "DCC: chat with %n ended %t: %e") (dcc-chat-no-request . "DCC: chat request from %n not found") (dcc-chat-offered . "DCC: chat offered by %n (%u@%h:%p)") (dcc-chat-offer . "DCC: offering chat to %n") (dcc-chat-accept . "DCC: accepting chat from %n") (dcc-chat-privmsg . "=%n= %m") (dcc-closed . "DCC: Closed %T from %n") (dcc-command-undefined . "DCC: %c undefined subcommand. GET, CHAT and LIST are defined.") (dcc-ctcp-errmsg . "DCC: `%s' is not a DCC subcommand known to this client") (dcc-ctcp-unknown . "DCC: unknown dcc command `%q' from %n (%u@%h)") (dcc-get-bytes-received . "DCC: %f: %b bytes received") (dcc-get-complete . "DCC: file %f transfer complete (%s bytes in %t seconds)") (dcc-get-cmd-aborted . "DCC: Aborted getting %f from %n") (dcc-get-file-too-long . "DCC: %f: File longer than sender claimed; aborting transfer") (dcc-get-notfound . "DCC: %n hasn't offered %f for DCC transfer") (dcc-list-head . "DCC: From      Type  Active  Size            Filename") (dcc-list-line . "DCC: --------  ----  ------  --------------  --------") (dcc-list-item . "DCC: %-8n  %-4t  %-6a  %-14s  %f") (dcc-list-end . "DCC: End of list.") (dcc-malformed . "DCC: error: %n (%u@%h) sent malformed request: %q") (dcc-privileged-port . "DCC: possibly bogus request: %p is a privileged port.") (dcc-request-bogus . "DCC: bogus dcc `%r' from %n (%u@%h)") (dcc-send-finished . "DCC: SEND of %f to %n finished (size %s)") (dcc-send-offered . "DCC: file %f offered by %n (%u@%h) (size %s)") (dcc-send-offer . "DCC: offering %f to %n")))
#@420 Return the first matching entry in `erc-dcc-list' which satisfies the
constraints given as a plist in ARGS. Returns nil on no match.

The property :nick is treated specially, if it contains a '!' character,
it is treated as a nick!user@host string, and compared with the :nick property
value of the individual elements using string-equal. Otherwise it is
compared with `erc-nick-equal-p' which is IRC case-insensitive.
(defalias 'erc-dcc-member #[(&rest args) "\306\211\203\235\n\204\235@\f\307\203\214
\203\214@\211A@)\211AA)\310\"\205H\311\"\312=\203c\313\314\"\203c	\203c	\230\204\210\312=\203	\203\203\315\316	!\316!\"\204\210	=\204\210\306*\202
\203\226\202\231A+\202\n+\207" [erc-dcc-list test result list args cont nil t plist-member plist-get :nick string-match "!" erc-nick-equal-p erc-extract-nick prem elt x val prop] 5 (#$ . 6667)])
#@85 Convert an integer into a packed string in network byte order,
which is big-endian.
(defalias 'erc-pack-int #[(value) "\304W\203\n\305\306!\210\304U\203\304\202!\307\211\310!\310\311!\245!\312\245!\211\313V\203,\305\314!\210)\315\313\304\"\316\n\304Y\203R\304V\203R\n\317\246I\210\317\245\nS\211\2025*\207" [value len i str 0 error "ERC-DCC (erc-pack-int): packet size is negative" ceiling log 2 8.0 4 "ERC-DCC (erc-pack-int): packet too large" make-string 3 256] 6 (#$ . 7599)])
#@39 Maximum number of bytes for a fixnum.
(defconst erc-most-positive-int-bytes (byte-code "\301\211\302!\302\303!\245!\304\245!\207" [most-positive-fixnum ceiling log 2 8.0] 5) (#$ . 8106))
#@63 Content of the most significant byte of most-positive-fixnum.
(defconst erc-most-positive-int-msb (byte-code "\302	S\303_[\"\207" [most-positive-fixnum erc-most-positive-int-bytes lsh 8] 4) (#$ . 8300))
#@41 Unpack a packed string into an integer.
(defalias 'erc-unpack-int #[(str) "G\306	\nV\203\nH\306=\203\nT\202\n\306V\203(\n\307O	\nZ)	\310^V\204?	=\203C\306H\fV\203C\311\312!\210\306\211
	W\203f\313\314	
\315#H
\316_\"\\
T\211\202I+\207" [str len start erc-most-positive-int-bytes erc-most-positive-int-msb count 0 nil 4 error "ERC-DCC (erc-unpack-int): packet to send is too large" lsh - 1 8 num] 8 (#$ . 8510)])
(defconst erc-dcc-ipv4-regexp (byte-code "\300\301\302\303\304\305\"\306#\307Q\207" ["^" mapconcat identity make-list 4 "\\([0-9]\\{1,3\\}\\)" "\\." "$"] 6))
#@121 Convert IP address to its decimal representation.
Argument IP is the address as a string.  The result is also a string.
(defalias 'erc-ip-to-decimal #[(ip) "\304	\"\204\305\306!\207\307\310\311	\312\"\"\313\n@\314_\nA@\315_\316\n8\317_\320\n8$\321 \2034\322\323	#\2028\324\325\"*\207" [erc-dcc-ipv4-regexp ip ips res string-match error "Not an IP address" mapcar #[(str) "\302!\211\303Y\203	\304W\203	\202\305\306	\")\207" [str n string-to-number 0 256 error "%d out of range"] 4] split-string "\\." + 16777216.0 65536.0 2 256.0 3 interactive-p message "%s is %.0f" format "%.0f"] 6 (#$ . 9121) "sIP Address: "])
#@85 Convert a decimal representation DEC to an IP address.
The result is also a string.
(defalias 'erc-decimal-to-ip #[(dec) ";\203\306\307P!\310\311\245!	\312_Z\310\n\313\245!\n\314_Z\310\f\315\245!\f
\316_Z\310!\317\320	
%.\207" [dec first first-rest second second-rest third string-to-number ".0" floor 16777216.0 16777216.0 65536.0 65536.0 256.0 256.0 format "%s.%s.%s.%s" third-rest fourth] 6 (#$ . 9757)])
(byte-code "\301\302\303\304\305\306\307\310\311\312\313\303F\314\312\315\316\257E&\210\301\317\303\320\305\306\307\310\311\312\321\303F\314\312\315\316\257E&\210\301\322\323\324\305\306\307\325&\207" [erc-dcc-ipv4-regexp custom-declare-variable erc-dcc-listen-host nil "IP address to listen on when offering files.\nShould be set to a string or nil.  If nil, automatic detection of\nthe host interface to use will be attempted." :group erc-dcc :type choice const :tag "Auto-detect" string "IP-address" :valid-regexp erc-dcc-public-host "IP address to use for outgoing DCC offers.\nShould be set to a string or nil.  If nil, use the value of\n`erc-dcc-listen-host'." "Same as erc-dcc-listen-host" erc-dcc-send-request 'ask "How to treat incoming DCC Send requests.\n'ask - Report the Send request, and wait for the user to manually accept it\n       You might want to set `erc-dcc-auto-masks' for this.\n'auto - Automatically accept the request and begin downloading the file\n'ignore - Ignore incoming DCC Send requests completely." (choice (const ask) (const auto) (const ignore))] 14)
#@56 Returns the local IP address used for an open PROCess.
(defalias 'erc-dcc-get-host #[(proc) "\301\302\303\"\304\"\207" [proc format-network-address process-contact :local t] 4 (#$ . 11289)])
#@149 Determine the IP address we are using.
If variable `erc-dcc-host' is non-nil, use it.  Otherwise call
`erc-dcc-get-host' on the erc-server-process.
(defalias 'erc-dcc-host #[nil "\206
\302	!\206
\303\304!\207" [erc-dcc-listen-host erc-server-process erc-dcc-get-host error "Unable to determine local address"] 2 (#$ . 11488)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\305\306\312&\207" [custom-declare-variable erc-dcc-port-range nil "If nil, any available user port is used for outgoing DCC connections.\nIf set to a cons, it specifies a range of ports to use in the form (min . max)" :group erc-dcc :type (choice (const :tag "Any port" nil) (cons :tag "Port range" (integer :tag "Lower port") (integer :tag "Upper port"))) erc-dcc-auto-masks "List of regexps matching user identifiers whose DCC send offers should be\naccepted automatically.  A user identifier has the form \"nick!login@host\".\nFor instance, to accept all incoming DCC send offers automatically, add the\nstring \".*!.*@.*\" to this list." (repeat regexp)] 8)
#@105 Start listening on a port for an incoming DCC connection. Returns the newly
created subprocess, or nil.
(defalias 'erc-dcc-server #[(name filter sentinel) "\203	@\206\n\304\205A\305	\204 \306\307\310\217\210\202	+\207" [erc-dcc-port-range process upper port t nil err (byte-code "\305\306\307\310\311\312 \313	\314\315\316\310\317\n\320\321\322\323\315&\324\f!\2036\325\326!\203+\326\f\327\211#\210\325\330!\2036\330\f\310\"\210\310\207" [name port filter sentinel process make-network-process :name :buffer nil :host erc-dcc-host :service :nowait t :noquery :filter :sentinel :log erc-dcc-server-accept :server processp fboundp set-process-coding-system binary set-process-filter-multibyte] 21) ((file-error (byte-code "\211A@)\304\230\203AA@\305\230\204\306@A\"\210\nT\211W\204(\307\310!\210\306\207" [err x port upper "Cannot bind server socket" "address already in use" signal error "No available ports in erc-dcc-port-range"] 4)))] 3 (#$ . 12559)])
#@101 Log an accepted DCC offer, then terminate the listening process and set up
the accepted connection.
(defalias 'erc-dcc-server-accept #[(server client message) "\306\307	\n$\f\203\310!\210)\311\312\n\"\2052\313!\2052\313	!\2052\314\315\"\316
\315	#\317!)\207" [server client message string erc-log-p elt format "(erc-dcc-server-accept): server %s client %s message %s" erc-log-aux string-match "^accept from " processp erc-dcc-member :peer plist-put delete-process] 5 (#$ . 13553)])
#@123 Default directory for incoming DCC file transfers.
If this is nil, then the current value of `default-directory' is used.
(custom-declare-variable 'erc-dcc-get-default-directory nil '(#$ . 14055) :group 'erc-dcc :type '(choice (const nil :tag "Default directory") directory))
#@232 Parser for /dcc command.
This figures out the dcc subcommand and calls the appropriate routine to
handle it.  The function dispatched should be named "erc-dcc-do-FOO-command",
where FOO is one of CLOSE, GET, SEND, LIST, CHAT, etc.
(defalias 'erc-cmd-DCC #[(cmd &rest args) "\205(\304\305\226\306Q!\211\203\307	\n#\202'\310\311\312\313\314\315&\210\316\317!\210\320)\207" [cmd fn erc-server-process args intern-soft "erc-dcc-do-" "-command" apply erc-display-message nil notice active dcc-command-undefined 99 apropos "erc-dcc-do-.*-command" t] 8 (#$ . 14338)])
(autoload 'pcomplete-erc-all-nicks "erc-pcomplete")
#@43 Provides completion for the /DCC command.
(defalias 'pcomplete/erc-mode/DCC #[nil "\300\301\302\211\211$\210\300\303\302\211\211$\210\300\304\302\211\211$\207" [pcomplete--here #[nil "\300\301\302\303!\205	\304\"\207" [append ("chat" "close" "get" "list") fboundp make-network-process ("send")] 4] nil #[nil "\302\303\304!\227!\305\306\"\203\307\310\311\312	\"\"\202B\305\313\"\203(\314\307\315	\"!\202B\305\316\"\2039\307\317\311\320	\"\"\202B\305\321\"\205B\322 )\207" [#1=#:--cl-var-- erc-dcc-list intern pcomplete-arg 1 eql chat mapcar #[(elt) "\301\302\"\207" [elt plist-get :nick] 3] erc-remove-if-not #[(elt) "\301\302\"\303=\207" [elt plist-get :type CHAT] 3] close erc-delete-dups #[(elt) "\301\302\303\"!\207" [elt symbol-name plist-get :type] 4] get erc-dcc-nick #[(elt) "\301\302\"\303=\207" [elt plist-get :type GET] 3] send pcomplete-erc-all-nicks] 5] #[nil "\302\303\304!\227!\305\306\"\203\307\310\311\312	\"\"\2022\305\313\"\203)\307\314\311\315	\"\"\2022\305\316\"\2052\317 )\207" [#2=#:--cl-var-- erc-dcc-list intern pcomplete-arg 2 eql get mapcar #[(elt) "\301\302\"\207" [elt plist-get :file] 3] erc-remove-if-not #[(elt) "\301\302\"\303=\205\304\305\301\306\"!\307\310!\"\207" [elt plist-get :type GET erc-nick-equal-p erc-extract-nick :nick pcomplete-arg 1] 5] close erc-dcc-nick #[(elt) "\301\302\"\303\304\305!\226!=\207" [elt plist-get :type intern pcomplete-arg 1] 4] send pcomplete-entries] 5]] 5 (#$ . 14967)])
(defalias 'erc-dcc-do-CHAT-command #[(proc &optional nick) "\205?\304\305\306\307\310	&\211\203.\311\312\n\313\"!\204.\314\n\"\210\315\316\317\320\321\322&\210\323\202>\324\"\210\315\316\317\320\325\322&\210\323)\207" [nick proc elt erc-server-process erc-dcc-member :nick :type CHAT :parent processp plist-get :peer erc-dcc-chat-accept erc-display-message nil notice active dcc-chat-accept 110 t erc-dcc-chat dcc-chat-offer] 8])
#@99 Close a connection.  Usage: /dcc close type nick.
At least one of TYPE and NICK must be provided.
(defalias 'erc-dcc-do-CLOSE-command #[(proc &optional type nick) "\203	\204\226\n\235\204\306	\203!\307\310\311Q	\"\204#\306\2036\226\n\235\2036\312\226!\2028\306	\204@\205\244\313\f\203\242	\203X\203X\314\315\316	$\202r	\203d\314\316	\"\202r\203p\314\315\"\202r\306\f\203B\317\320\f\321\"!\203\206\322\320\f\321\"!\210\323\f
\"\324\306\325\326\327\330\320\f\315\"\331\332\320\f\316\"!&\210\202B)\313\207" [type nick erc-dcc-connection-types erc-valid-nick-regexp ret erc-dcc-list nil string-match "\\`" "\\'" intern t erc-dcc-member :type :nick processp plist-get :peer delete-process delq erc-display-message notice active dcc-closed 84 110 erc-extract-nick] 12 (#$ . 16892)])
#@206 Do a DCC GET command.  NICK is the person who is sending the file.
FILE is the filename.  If FILE is split into multiple arguments,
re-join the arguments, separated by a space.
PROC is the server process.
(defalias 'erc-dcc-do-GET-command #[(proc nick &rest file) "\205	\306\307\310#\311\312	\313\314$\206\315\n\316\"\206\317\n\203k\320\321\322\323!\"\f\206.
\324\323!\f\2067
\"#\325!\203a\326\321\327\"!\203R\330\n\"#\202g\331\332\333\"\334\335	\336&\202g\330\n\"#)\202v\331\332\337\340\341\335	\336&*\207" [file nick elt filename erc-dcc-get-default-directory default-directory mapconcat identity " " erc-dcc-member :nick :type GET plist-get :file "unknown" read-file-name format "Local filename (default %s): " file-name-nondirectory expand-file-name file-exists-p yes-or-no-p "File %s exists.  Overwrite? " erc-dcc-get-file erc-display-message nil (notice error) dcc-get-cmd-aborted 110 102 (notice error) active dcc-get-notfound proc] 9 (#$ . 17724)])
(defvar erc-dcc-byte-count nil)
(make-variable-buffer-local 'erc-dcc-byte-count)
#@120 This is the handler for the /dcc list command.
It lists the current state of `erc-dcc-list' in an easy to read manner.
(defalias 'erc-dcc-do-LIST-command #[(proc) "\306\211\307\306\310\311\312$\210\307\306\310\311\313$\210\203\321@A\314	\315\"\203,\316	\315\"\206-\317\211\2046\317\202H\n\247\203A\320\n!\202H\n\317\230\205H\321\307\306\310\311\322\323\324	!\325\316	\326\"\327\330\316	\331\"!\203j\332\316	\331\"!\202k\333\334\n\316	\326\"\335=\205\272\314	\336\"\205\272\337\340\316	\336\"!!\205\272\314	\315\"\205\272r\340\316	\336\"!q\210\341\342 \343\f#)\344
\345U\203\253\346\202\267\320\347
\316	\315\"\245\350_!!\351Q)P\352\314	\336\"\203\312\316	\336\"\206\313\317&\210\202\307\306\310\311\353$\210+\354\207" [erc-dcc-list elt size alist erc-dcc-byte-count byte-count nil erc-display-message notice active dcc-list-head dcc-list-line plist-member :size plist-get "" number-to-string "unknown" dcc-list-item 110 erc-dcc-nick 116 :type 97 processp :peer process-status "no" 115 GET :file buffer-live-p get-buffer + buffer-size 0.0 " (" 0 "0" truncate 100 "%)" 102 dcc-list-end t] 21 (#$ . 18802)])
#@143 Offer FILE to NICK by sending a ctcp dcc send message.
If FILE is split into multiple arguments, re-join the arguments,
separated by a space.
(defalias 'erc-dcc-do-SEND-command #[(proc nick &rest file) "\205	\303\304\305#\306!\203#\307\310\311\312\313\314	\315&\210\316	\"\210\317\207\307\310\320\n\321$\210\317\207" [file nick proc mapconcat identity " " file-exists-p erc-display-message nil notice active dcc-send-offer 110 102 erc-dcc-send-file t (notice error) "File not found"] 9 (#$ . 19947)])
#@37 Hook variable for CTCP DCC queries.
(defvar erc-ctcp-query-DCC-hook '(erc-ctcp-query-DCC) (#$ . 20463))
(defvar erc-dcc-query-handler-alist '(("SEND" . erc-dcc-handle-ctcp-send) ("CHAT" . erc-dcc-handle-ctcp-chat)))
#@159 The function called when a CTCP DCC request is detected by the client.
It examines the DCC subcommand, and calls the appropriate routine for
that subcommand.
(defalias 'erc-ctcp-query-DCC #[(proc nick login host to query) "\306\307\"\211A@)\310\n\"A\211\203$\f
&\2026\311\312\313
\314\315\316\317\320&\f*\207" [query x cmd erc-dcc-query-handler-alist handler proc split-string " " assoc erc-display-message nil (notice error) dcc-ctcp-unknown 113 110 117 104 nick login host to] 14 (#$ . 20686)])
(defconst erc-dcc-ctcp-query-send-regexp "^DCC SEND \\(\"\\(\\(.*?\\(\\\\\"\\)?\\)+?\\)\"\\|\\([^ ]+\\)\\) \\([0-9]+\\) \\([0-9]+\\) *\\([0-9]*\\)")
(defalias 'erc-dcc-unquote-filename #[(filename) "\301\302\303\301\304\305\306\211%\306\211%\207" [filename erc-replace-regexp-in-string "\\\\\\\\" "\\" "\\\\\"" "\"" t] 9])
(put 'erc-dcc-unquote-filename 'byte-optimizer 'byte-compile-inline-expand)
#@150 This is called if a CTCP DCC SEND subcommand is sent to the client.
It extracts the information about the dcc request and adds it to
`erc-dcc-list'.
(defalias 'erc-dcc-handle-ctcp-send #[(proc query nick login host to) "\306=?\205\326\307	!\204\310\311\312\n\313\314\315\316\317\f\320
&\f\207\32167\"\203\306\322\3237\"\206D\322\3247\"8\325\326\327\325\330\3318\332\211%\332\211%)\333\322\3347\"!\322\3357\"\322\3367\"9:;8\310\311\312\n\337\3408\316\317\f\320
\3419\342\230\203w\343\202y9&\210\344:!\345W\203\220\310\311\312\n\346\347:&\210\350\351\352\353\f
$\311\n\354;\355:\3568\357\3449!&\f\210\360=\205\304\361\352\362\f
$!\205\304\363<@8\n#,\207\310\311\312\n\364\316\317\f\320
\3657&\f\207" [erc-dcc-send-request to proc nick login host ignore erc-current-nick-p erc-display-message nil notice dcc-request-bogus 114 "SEND" 110 117 104 string-match match-string 5 2 erc-replace-regexp-in-string "\\\\\\\\" "\\" "\\\\\"" "\"" t erc-decimal-to-ip 6 7 8 dcc-send-offered 102 115 "" "unknown" string-to-number 1025 dcc-privileged-port 112 erc-dcc-list-add GET format "%s!%s@%s" :ip :port :file :size auto erc-dcc-auto-mask-p "\"%s!%s@%s\"" erc-dcc-get-file dcc-malformed 113 erc-dcc-ctcp-query-send-regexp query filename size port ip erc-dcc-list] 16 (#$ . 21614)])
#@174 Takes a full SPEC of a user in the form "nick!login@host" and
matches against all the regexp's in `erc-dcc-auto-masks'. If any
match, returns that regexp and nil otherwise.
(defalias 'erc-dcc-auto-mask-p #[(spec) "\211\203\303	@\n\"\204	A\211\204	\205	@)\207" [erc-dcc-auto-masks lst spec string-match] 4 (#$ . 22933)])
(defconst erc-dcc-ctcp-query-chat-regexp "^DCC CHAT +chat +\\([0-9]+\\) +\\([0-9]+\\)")
#@242 How to treat incoming DCC Chat requests.
'ask - Report the Chat request, and wait for the user to manually accept it
'auto - Automatically accept the request and open a new chat window
'ignore - Ignore incoming DCC chat requests completely.
(custom-declare-variable 'erc-dcc-chat-request ''ask '(#$ . 23359) :group 'erc-dcc :type '(choice (const ask) (const auto) (const ignore)))
(defalias 'erc-dcc-handle-ctcp-chat #[(proc query nick login host to) "\306=?\205\273\307	!\204\310\311\312\n\313\314\315\316\317\f\320
&\f\207\321,-\"\203\253\322\323\324-\"!.\323\325-\"/\326\327\330\331$0\310\311\332\n\333\316\317\f\320
\334/&\f\210\335/!\336W\203c\310\311\332\n\337\334/&\2100\203\207\340\2110\341/#\342.#0\310\311\332\n\343\316\317\f\320
&\n\210\202\232\344\331\345\346\f
$\311\n\342.\341/&\210\347=\205\251\350\326\327\330\331$\n\"+\207\310\311\351\n\352\316\317\f\320
\353-&\f\207" [erc-dcc-chat-request to proc nick login host ignore erc-current-nick-p erc-display-message nil (notice error) dcc-request-bogus 114 "CHAT" 110 117 104 string-match erc-decimal-to-ip match-string 1 2 erc-dcc-member :nick :type CHAT notice dcc-chat-offered 112 string-to-number 1025 dcc-privileged-port plist-put :port :ip dcc-chat-discarded erc-dcc-list-add format "%s!%s@%s" auto erc-dcc-chat-accept (notice error) dcc-malformed 113 erc-dcc-ctcp-query-chat-regexp query ip port elt] 13])
#@57 Holds the `erc-dcc-list' entry for this DCC connection.
(defvar erc-dcc-entry-data nil (#$ . 24777))
(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\302\312\313\314\306\307\310\315&\207" [make-variable-buffer-local erc-dcc-entry-data custom-declare-variable erc-dcc-block-size 1024 "Block size to use for DCC SEND sessions." :group erc-dcc :type integer erc-dcc-pump-bytes nil "If set to an integer, keep sending until that number of bytes are\nunconfirmed." (choice (const nil) integer)] 8)
(defalias 'erc-dcc-get-parent #[(proc) "\301\302\303\"\304\"\207" [proc plist-get erc-dcc-member :peer :parent] 4])
(put 'erc-dcc-get-parent 'byte-optimizer 'byte-compile-inline-expand)
#@110 Send one block of data.
PROC is the process-object of the DCC connection.  Returns the number of
bytes sent.
(defalias 'erc-dcc-send-block #[(proc) "\306\307\"\310	\311\"\310	\311\"r\312!q\210\f\2031\313\314\315\310\306\307\"\316\")\317\320\neZeZ#$\210
\\d^\321\"W\203R\314\223\210\322\"\210G.\207" [proc elt confirmed-marker sent-marker erc-dcc-verbose erc-dcc-block-size erc-dcc-member :peer plist-get :sent process-buffer erc-display-message nil notice :parent format "DCC: Confirmed %d, sent %d, sending block now" buffer-substring-no-properties process-send-string end string] 9 (#$ . 25480)])
(defalias 'erc-dcc-send-filter #[(proc string) "\306!\307\310\n\"\311\312\"\311\313\"\311\314\" r\315\n!q\210 e	\\\316\223\210 
U\203` dU\203`\317\316\320\f\321\322\311\323\"\324!\325\326
eZ!&\n\210\327\"\"\"\330\316!\210\331p!\210\332\n!\202\243 
X\203\201
 Z#\206r$W\205\243\333\n!\334V\205\243\202g 
V\205\243\317\316\320\f\335\336\337 !\337
!#$\210\330\316!\210\331p!\210\332\n!.\207" [string size proc elt parent sent-marker erc-unpack-int erc-dcc-member :peer plist-get :parent :sent :confirmed process-buffer nil erc-display-message notice dcc-send-finished 110 :nick 102 115 number-to-string delete set-buffer-modified-p kill-buffer delete-process erc-dcc-send-block 0 format "DCC: Client confirmed too much (%s vs %s)!" marker-position confirmed-marker buffer-file-name erc-dcc-list erc-dcc-pump-bytes erc-dcc-block-size] 13])
(defalias 'erc-dcc-display-send #[(proc) "\301\302\303\304\305\306\"\307\")\310\311\312\313\314\"!\"$\207" [proc erc-display-message nil notice plist-get erc-dcc-member :peer :parent format "DCC: SEND connect from %s" format-network-address process-contact :remote] 10])
#@88 Hook run whenever the remote end of a DCC SEND offer connected to your
listening port.
(custom-declare-variable 'erc-dcc-send-connect-hook ''(erc-dcc-display-send erc-dcc-send-block) '(#$ . 27260) :group 'erc-dcc :type 'hook)
#@68 Extract the nickname portion of the :nick property value in PLIST.
(defalias 'erc-dcc-nick #[(plist) "\301\302\303\"!\207" [plist erc-extract-nick plist-get :nick] 4 (#$ . 27492)])
(defalias 'erc-dcc-send-sentinel #[(proc event) "\305\306\"\307\310\n\"\205'	\205'\311\312	\313\"!rq\210\314\"\210	*\315\316\")\207" [proc elt event buf erc-dcc-entry-data erc-dcc-member :peer string-match "^open from " marker-buffer plist-get :sent set-process-buffer run-hook-with-args erc-dcc-send-connect-hook] 4])
(defalias 'erc-dcc-find-file #[(file) "r\302\303!!q\210\304!\210p)\207" [file buffer-file-name generate-new-buffer file-name-nondirectory insert-file-contents-literally] 3])
(defalias 'erc-dcc-file-to-name #[(file) "\302\303!rq\210\304\216\305	!c\210\306ed\307\310\311%\210\312 +\207" [#1=#:temp-buffer file generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) file-name-nondirectory subst-char-in-region 32 95 t buffer-string] 6])
#@91 Open a socket for incoming connections, and send a CTCP send request to the
other client.
(defalias 'erc-dcc-send-file #[(nick file &optional pproc) "\204\306	!\203	\202\307\310!\210\311\312!\203j\313\n!\314!rq\210\315 e\316\223)\317\320\321\322#!\323!!\"\324\325#!\326\n\327\f\330
\331\332
!&\f\210\333\334\335#\336\n!\337$\206_\"@!\"A@\f&\"-\207\307\340!\207" [pproc erc-server-process file buffer size start processp error "Can not find parent process" featurep make-network-process erc-dcc-find-file buffer-size make-marker nil erc-dcc-server "dcc-send" erc-dcc-send-filter erc-dcc-send-sentinel process-contact erc-dcc-list-add SEND :file :size :sent :confirmed copy-marker process-send-string format "PRIVMSG %s :DCC SEND %s %s %d %d\n" erc-dcc-file-to-name erc-ip-to-decimal "`make-network-process' not supported by your Emacs" sproc contact nick erc-dcc-public-host] 14 (#$ . 28504) "sNick: \nfFile: "])
#@68 Number of bytes to let the receive buffer grow before flushing it.
(custom-declare-variable 'erc-dcc-receive-cache '(* 1024 512) '(#$ . 29451) :group 'erc-dcc :type 'integer)
(defvar erc-dcc-file-name nil)
(make-variable-buffer-local 'erc-dcc-file-name)
#@210 This function does the work of setting up a transfer from the remote client
to the local one over a tcp connection. This involves setting up a process
filter and a process sentinel, and making the connection.
(defalias 'erc-dcc-get-file #[(entry file parent-proc) "\306\307!!\310r	q\210\311 \210\312p!\210\313\314!\203\314\310!\210\315\316\211%\317\320&\"\321'&\321``%\310\322%\210*()*+\323,-\324	\325*\326\"\327\325*\330\"!*%\331\n	\"\210\332\n\333\211#\210\334\333\316\"\210\335\n\336\"\210\337\n\340\"\210\341*\342\343 #*\341*\344\n#\211*+\207" [file buffer proc mode-line-process buffer-file-type buffer-read-only generate-new-buffer file-name-nondirectory nil fundamental-mode buffer-disable-undo fboundp set-buffer-multibyte (":%s") t append (jka-compr-handler image-file-handler) write-region nomessage 0 "dcc-get" plist-get :ip string-to-number :port set-process-buffer set-process-coding-system binary set-buffer-file-coding-system set-process-filter erc-dcc-get-filter set-process-sentinel erc-dcc-get-sentinel plist-put :start-time erc-current-time :peer erc-dcc-file-name inhibit-file-name-handlers inhibit-file-name-operation parent-proc erc-server-process entry erc-dcc-entry-data erc-dcc-byte-count erc-dcc-connect-function] 9 (#$ . 29712)])
#@88 Append the contents of BUFFER to FILE.
The contents of the BUFFER will then be erased.
(defalias 'erc-dcc-append-contents #[(buffer file) "rq\210\306\307\310\311	\"\312\312ed
\307\313%\210\314 \\\315 -\207" [buffer inhibit-file-name-handlers inhibit-file-name-operation inhibit-read-only coding-system-for-write erc-dcc-file-name binary t append (jka-compr-handler image-file-handler) write-region nomessage buffer-size erase-buffer erc-dcc-byte-count] 6 (#$ . 31003)])
#@348 This is the process filter for transfers from other clients to this one.
It reads incoming bytes from the network and stores them in the DCC
buffer, and sends back the replies after each block of data per the DCC
protocol spec.  Well not really.  We write back a reply after each read,
rather than every 1024 byte block, but nobody seems to care.
(defalias 'erc-dcc-get-filter #[(proc str) "r\306!q\210\307\310db\210\311!c\210d\fV\203\312p
\"\210\313 \\\203:\314\310\315\316\317\320!\321\322	!&\210\323 \324\"\325V\203a	\323 \324\"V\203a\314\310\326\327\330\317\320!&\210\331!\202g\332\333	!\"+\207" [proc received-bytes inhibit-read-only str erc-dcc-receive-cache erc-dcc-file-name process-buffer t nil string-make-unibyte erc-dcc-append-contents buffer-size erc-display-message notice dcc-get-bytes-received 102 file-name-nondirectory 98 number-to-string plist-get :size 0 (error notice) active dcc-get-file-too-long delete-process process-send-string erc-pack-int erc-dcc-byte-count erc-dcc-verbose erc-server-process buffer-file-name erc-dcc-entry-data] 10 (#$ . 31489)])
#@143 This is the process sentinel for CTCP DCC SEND connections.
It shuts down the connection and notifies the user that the
transfer is complete.
(defalias 'erc-dcc-get-sentinel #[(proc event) "r\306!q\210\307!\210\310	\n\"edU\204\311p\"\210\312\313\314\f\315\316\317\320
!\321\322\323\324\325	\326\"\327 \"\"&\n\210)\330\306!!\210\307!\207" [proc erc-dcc-entry-data erc-dcc-list erc-dcc-file-name erc-server-process erc-dcc-byte-count process-buffer delete-process delete erc-dcc-append-contents erc-display-message nil notice dcc-get-complete 102 115 number-to-string 116 format "%.0f" erc-time-diff plist-get :start-time erc-current-time kill-buffer] 16 (#$ . 32599)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\311\315\304\305\306\313&\210\300\316\311\315\304\305\306\313&\207" [custom-declare-variable erc-dcc-chat-buffer-name-format "DCC-CHAT-%s" "Format to use for DCC Chat buffer names." :group erc-dcc :type string erc-dcc-chat-mode-hook nil "Hook calls when `erc-dcc-chat-mode' finished setting up the buffer." hook erc-dcc-chat-connect-hook "" erc-dcc-chat-exit-hook] 8)
#@79 Set or get the DCC chat request flag.
Possible values are: ask, auto, ignore.
(defalias 'erc-cmd-CREQ #[(line &optional force) "\303\304\"\205.\305\306\"\211;\203\"\307\310\311\312\313\314\315	!\211\"$\210\202,\307\310\311\312\313\316\n\"$\210)\317\207" [line cmd erc-dcc-chat-request string-match "^\\s-*\\(auto\\|ask\\|ignore\\)?$" match-string 1 erc-display-message nil notice active format "Set DCC Chat requests to %S" intern "DCC Chat requests are set to %S" t] 9 (#$ . 33748)])
#@79 Set or get the DCC send request flag.
Possible values are: ask, auto, ignore.
(defalias 'erc-cmd-SREQ #[(line &optional force) "\303\304\"\205.\305\306\"\211;\203\"\307\310\311\312\313\314\315	!\211\"$\210\202,\307\310\311\312\313\316\n\"$\210)\317\207" [line cmd erc-dcc-send-request string-match "^\\s-*\\(auto\\|ask\\|ignore\\)?$" match-string 1 erc-display-message nil notice active format "Set DCC Send requests to %S" intern "DCC Send requests are set to %S" t] 9 (#$ . 34246)])
(defalias 'pcomplete/erc-mode/CREQ #[nil "\300\301\302\211\211$\207" [pcomplete--here #[nil "\300\207" [("auto" "ask" "ignore")] 1] nil] 5])
(defalias 'pcomplete/erc-mode/SREQ 'pcomplete/erc-mode/CREQ)
#@158 Abnormal hook run after parsing (and maybe inserting) a DCC message.
Each function is called with two arguments: the ERC process and
the unprocessed output.
(defvar erc-dcc-chat-filter-functions '(erc-dcc-chat-parse-output) (#$ . 34947))
(byte-code "\302\303\304\305#\210\306\305\211\203,	@\303N\203%\304N\204%\307\304\303N#\210	A\211\204*\310\303\304\311#\207" [prop --dolist-tail-- defvaralias erc-dcc-chat-filter-hook erc-dcc-chat-filter-functions nil (saved-value saved-variable-comment) put make-obsolete-variable "24.3"] 6)
#@28 Keymap for `erc-dcc-mode'.
(defvar erc-dcc-chat-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210)\207" [map make-sparse-keymap define-key "
" erc-send-current-line "	" completion-at-point] 4) (#$ . 35496))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [erc-dcc-chat-mode-hook variable-documentation put purecopy "Hook run when entering DCC-Chat mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp erc-dcc-chat-mode-map definition-name erc-dcc-chat-mode] 5)
(defvar erc-dcc-chat-mode-map (make-sparse-keymap))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [erc-dcc-chat-mode-map variable-documentation put purecopy "Keymap for `erc-dcc-chat-mode'." boundp erc-dcc-chat-mode-syntax-table definition-name erc-dcc-chat-mode] 5)
(defvar erc-dcc-chat-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [erc-dcc-chat-mode-syntax-table variable-documentation put purecopy "Syntax table for `erc-dcc-chat-mode'." erc-dcc-chat-mode-abbrev-table definition-name erc-dcc-chat-mode] 5)
(defvar erc-dcc-chat-mode-abbrev-table (progn (define-abbrev-table 'erc-dcc-chat-mode-abbrev-table nil) erc-dcc-chat-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [erc-dcc-chat-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `erc-dcc-chat-mode'." erc-dcc-chat-mode derived-mode-parent nil] 5)
#@161 Major mode for wasting time via DCC chat.

This mode runs the hook `erc-dcc-chat-mode-hook', as the final step
during initialization.

\{erc-dcc-chat-mode-map}
(defalias 'erc-dcc-chat-mode #[nil "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210
\315\316\317\320\321\322\323\307$\210)\324\325!\207" [delay-mode-hooks major-mode mode-name erc-dcc-chat-mode-map erc-dcc-chat-mode-syntax-table erc-dcc-chat-mode-abbrev-table make-local-variable t kill-all-local-variables erc-dcc-chat-mode "DCC-Chat" use-local-map set-syntax-table (":%s") erc-dcc-chat-send-input-line (dcc) add-hook completion-at-point-functions erc-complete-word-at-point nil run-mode-hooks erc-dcc-chat-mode-hook local-abbrev-table mode-line-process erc-send-input-line-function erc-default-recipients] 5 (#$ . 37118) nil])
#@104 Send LINE to the remote end.
Argument RECIPIENT should always be the symbol dcc, and force
is ignored.
(defalias 'erc-dcc-chat-send-input-line #[(recipient line &optional force) "\302=\203
\303\304p!	\"\207\305\306p\"\207" [recipient line dcc process-send-string get-buffer-process error "erc-dcc-chat-send-input-line in %s"] 3 (#$ . 37933)])
#@86 Open a socket for incoming connections, and send a chat request to the
other client.
(defalias 'erc-dcc-chat #[(nick &optional pproc) "\204\305	!\203	\202\306\307!\210\310\311\312\313#\314\n!\315\316\f\n$\210\317\320\321\f\322@!A@$\"*\207" [pproc erc-server-process sproc contact nick processp error "Can not find parent process" erc-dcc-server "dcc-chat-out" erc-dcc-chat-filter erc-dcc-chat-sentinel process-contact erc-dcc-list-add OCHAT process-send-string format "PRIVMSG %s :DCC CHAT chat %s %d\n" erc-ip-to-decimal] 7 (#$ . 38284) "sNick: "])
(byte-code "\300\301!\210\300\302!\207" [make-variable-buffer-local erc-dcc-from erc-dcc-unprocessed-output] 2)
#@48 Setup a DCC chat buffer, returning the buffer.
(defalias 'erc-dcc-chat-setup #[(entry) "\306\307\310\"!\311\312\n	\"!\307\313\"\307\314\"\315!\210\316 \210
	\317\320 d\321\223\320 \322d\"\210\323\f\"\210\324\325\326\321\327$\210\330\331\f\"\210,\207" [entry nick erc-dcc-chat-buffer-name-format buffer proc parent-proc erc-extract-nick plist-get :nick generate-new-buffer format :peer :parent erc-setup-buffer erc-dcc-chat-mode "" make-marker nil erc-display-prompt set-process-buffer add-hook kill-buffer-hook erc-dcc-chat-buffer-killed t run-hook-with-args erc-dcc-chat-connect-hook erc-server-process erc-dcc-from erc-dcc-entry-data erc-dcc-unprocessed-output erc-insert-marker erc-input-marker] 5 (#$ . 38968)])
#@57 Accept an incoming DCC connection and open a DCC window
(defalias 'erc-dcc-chat-accept #[(entry parent-proc) "\306\307\310\"!\311\211\f\312\311\307\313\"\314\307\315\"!%\316\317#\316\320
#\321\322\"\210\323\324\"\210\325!\211+\207" [entry nick buffer proc erc-dcc-connect-function parent-proc erc-extract-nick plist-get :nick nil "dcc-chat" :ip string-to-number :port plist-put :peer :parent set-process-filter erc-dcc-chat-filter set-process-sentinel erc-dcc-chat-sentinel erc-dcc-chat-setup] 9 (#$ . 39714)])
(defalias 'erc-dcc-chat-filter #[(proc str) "p\304\216\305	!q\210\nP\306\307	\n#*\207" [orig-buffer proc erc-dcc-unprocessed-output str ((set-buffer orig-buffer)) process-buffer run-hook-with-args erc-dcc-chat-filter-functions] 4])
(defalias 'erc-dcc-chat-parse-output #[(proc str) "\306 \307\216\310\311\312\313\n#\203-\n\310\224O\310\225\314\311\211\f\315\316\317
\320\321#\322	&\210\202	\n\311O\211,\207" [save-match-data-internal line posn str proc erc-dcc-from match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 0 nil string-match "\n" erc-display-message dcc-chat-privmsg 110 erc-propertize face erc-nick-default-face 109 erc-dcc-unprocessed-output] 10])
(defalias 'erc-dcc-chat-buffer-killed #[nil "\300\301!\207" [erc-dcc-chat-close "killed buffer"] 2])
#@83 Close a DCC chat, removing any associated processes and tidying up
`erc-dcc-list'
(defalias 'erc-dcc-chat-close #[(&optional event) "\306\307\"	\206	\310\211\2054\311\f\"\312\313\"\210\314!\210\315\316\317
\320\321\322\323 \324\n&\n\210\325\307\316#\211*\207" [erc-dcc-entry-data event evt proc erc-dcc-list erc-server-process plist-get :peer "" delq run-hook-with-args erc-dcc-chat-exit-hook delete-process erc-display-message nil notice dcc-chat-ended 110 116 current-time-string 101 plist-put erc-dcc-from] 12 (#$ . 41072)])
(defalias 'erc-dcc-chat-sentinel #[(proc event) "p\304\305\"\306\216\307\310\"\203\311	!\202\312!+\207" [proc elt buf event erc-dcc-member :peer ((set-buffer buf)) string-match "^open from" erc-dcc-chat-setup erc-dcc-chat-close] 4])
#@61 Detect and handle no-such-nick replies from the IRC server.
(defalias 'erc-dcc-no-such-nick #[(proc parsed) "\306\307\310H	>\204\311\312\313\314#\210\315H\211A@)\316$\317\f\320\"\321
!\203/\322
!\323=\2033\f\203D\324\f\"\321
!\203D\325
!\210*\326\207" [parsed cl-struct-erc-response-tags x proc elt peer erc-dcc-member :nick 0 error "%s accessing a non-%s" erc-response\.command-args erc-response 4 :parent plist-get :peer processp process-status open delq delete-process nil erc-dcc-list] 7 (#$ . 41861)])
(provide 'erc-dcc)

MMCT - 2023