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.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:08:50 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/erc/erc.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.

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


#@55 ERC version.  This is used by function `erc-version'.
(defconst erc-version-string "Version 5.3" (#$ . 550))
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\207" [require font-lock pp thingatpt auth-source erc-compat] 2)
#@45 Location of the ERC client on the Internet.
(defvar erc-official-location "http://emacswiki.org/cgi-bin/wiki/ERC (mailing list: erc-discuss@gnu.org)" (#$ . 803))
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\302\313\310\301%\210\300\314\302\315\310\301%\210\300\316\302\317\310\314%\210\300\320\302\321\310\301%\210\300\322\302\323\324\325\310\320&\210\300\326\302\327\310\301%\210\300\330\302\331\310\301%\210\300\332\302\333\310\301%\210\300\334\302\335\310\301%\210\336\337!\210\340\341!\203\206\341\342\343\"\210\344\342\343\345#\210\341\346\347\"\210\344\346\347\345#\210\341\350\351\"\210\344\350\351\345#\210\202\212\352\353!\210\354\355\356\302#\210\357\355\356\345#\210\360\361\302\362\310\301\363\364&\210\360\365\302\366\310\301\363\367&\210\360\370\302\371\310\301\363\372&\210\360\373\374\375\310\301\363\376&\210\360\377\201@\201A\310\301\363\201B&\210\360\201C\302\201D\310\301\363\201E\201F\201G&	\207" [custom-declare-group erc nil "Emacs Internet Relay Chat client." :link (url-link "http://www.emacswiki.org/cgi-bin/wiki/ERC") :prefix "erc-" :group applications erc-buffers "Creating new ERC buffers" erc-display "Settings for how various things are displayed" erc-mode-line-and-header "Displaying information in the mode-line and header" erc-ignore "Ignoring certain messages" erc-lurker "Hide specified message types sent by lurkers" :version "24.3" erc-query "Using separate buffers for private discussions" erc-quit-and-part "Quitting and parting channels" erc-paranoia "Know what is sent and received; control the display of sensitive data." erc-scripts "Running scripts at startup and with /LOAD" require erc-backend fboundp defvaralias erc-announced-server-name erc-server-announced-name erc-make-obsolete-variable "ERC 5.1" erc-process erc-server-process erc-default-coding-system erc-server-coding-system message "ERC: The function `defvaralias' is not bound.  See the NEWS file for variable name changes since ERC 5.0.4." defalias erc-send-command erc-server-send make-obsolete custom-declare-variable erc-server "IRC server to use if one is not provided.\nSee function `erc-compute-server' for more details on connection\nparameters and authentication." :type (choice (const :tag "None" nil) (string :tag "Server")) erc-port "IRC port to use if not specified.\n\nThis can be either a string or a number." (choice (const :tag "None" nil) (integer :tag "Port number") (string :tag "Port string")) erc-nick "Nickname to use if one is not provided.\n\nThis can be either a string, or a list of strings.\nIn the latter case, if the first nick in the list is already in use,\nother nicks are tried in the list order.\n\nSee function `erc-compute-nick' for more details on connection\nparameters and authentication." (choice (const :tag "None" nil) (string :tag "Nickname") (repeat (string :tag "Nickname"))) erc-nick-uniquifier "`" "The string to append to the nick if it is already in use." string erc-try-new-nick-p t "If the nickname you chose isn't available, and this option is non-nil,\nERC should automatically attempt to connect with another nickname.\n\nYou can manually set another nickname with the /NICK command." boolean erc-user-full-name "User full name.\n\nThis can be either a string or a function to call.\n\nSee function `erc-compute-full-name' for more details on connection\nparameters and authentication." (choice (const :tag "No name" nil) (string :tag "Name") (function :tag "Get from function")) :set #[(sym val) "\302!\203	 L\207	L\207" [val sym functionp] 2]] 10)
#@135 Password to use when authenticating to an IRC server.
It is not strictly necessary to provide this, since ERC will
prompt you for it.
(defvar erc-password nil (#$ . 4367))
(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\302\317\304\305\306\313&\210\300\320\302\321\304\322\306\313&\210\300\323\311\324\304\322\306\313&\210\325\326\327\330\331\332%\210\300\333\302\334\304\335\306\326&\207" [custom-declare-variable erc-user-mode nil "Initial user modes to be set after a connection is established." :group erc :type (choice (const nil) string function) erc-prompt-for-password t "Asks before using the default password, or whether to enter a new one." boolean erc-warn-about-blank-lines "Warn the user if they attempt to send a blank line." erc-send-whitespace-lines "If set to non-nil, send lines consisting of only whitespace." erc-hide-prompt "If non-nil, do not display the prompt for commands.\n\n(A command is any input starting with a '/').\n\nSee also the variables `erc-prompt' and `erc-command-indicator'." erc-display erc-show-my-nick "If non-nil, display one's own nickname when sending a message.\n\nIf non-nil, \"<nickname>\" will be shown.\nIf nil, only \"> \" will be shown." define-widget erc-message-type set "A set of standard IRC Message types." :args ((const "JOIN") (const "KICK") (const "NICK") (const "PART") (const "QUIT") (const "MODE") (repeat :inline t :tag "Others" (string :tag "IRC Message Type"))) erc-hide-list "List of IRC type messages to hide.\nA typical value would be '(\"JOIN\" \"PART\" \"QUIT\")." erc-ignore] 8)
#@44 The password used for the current session.
(defvar erc-session-password nil (#$ . 6017))
(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\302\312\304\313\306\307\310\311&\210\302\314\304\315\306\307\310\311&\210\302\316\304\317\306\307\310\311&\210\302\320\304\321\306\307\310\311&\210\302\322\304\323\306\307\310\311&\210\302\324\304\325\306\307\310\311&\210\302\326\327\330\306\307\310\311&\207" [make-variable-buffer-local erc-session-password custom-declare-variable erc-disconnected-hook nil "Run this hook with arguments (NICK IP REASON) when disconnected.\nThis happens before automatic reconnection.  Note, that\n`erc-server-QUIT-functions' might not be run when we disconnect,\nsimply because we do not necessarily receive the QUIT event." :group erc-hooks :type hook erc-complete-functions "These functions get called when the user hits TAB in ERC.\nEach function in turn is called until one returns non-nil to\nindicate it has handled the input." erc-join-hook "Hook run when we join a channel.  Hook functions are called\nwithout arguments, with the current buffer set to the buffer of\nthe new channel.\n\nSee also `erc-server-JOIN-functions', `erc-part-hook'." erc-quit-hook "Hook run when processing a quit command directed at our nick.\n\nThe hook receives one argument, the current PROCESS.\nSee also `erc-server-QUIT-functions' and `erc-disconnected-hook'." erc-part-hook "Hook run when processing a PART message directed at our nick.\n\nThe hook receives one argument, the current BUFFER.\nSee also `erc-server-QUIT-functions', `erc-quit-hook' and\n`erc-disconnected-hook'." erc-kick-hook "Hook run when processing a KICK message directed at our nick.\n\nThe hook receives one argument, the current BUFFER.\nSee also `erc-server-PART-functions' and `erc-part-hook'." erc-nick-changed-functions "List of functions run when your nick was successfully changed.\n\nEach function should accept two arguments, NEW-NICK and OLD-NICK." erc-connect-pre-hook '(erc-initialize-log-marker) "Hook called just before `erc' calls `erc-connect'.\nFunctions are passed a buffer as the first argument."] 8)
#@240 A hash table of members in the current channel, which
associates nicknames with cons cells of the form:
(USER . MEMBER-DATA) where USER is a pointer to an
erc-server-user struct, and MEMBER-DATA is a pointer to an
erc-channel-user struct.
(defvar erc-channel-users nil (#$ . 8154))
(make-variable-buffer-local 'erc-channel-users)
#@112 A hash table of users on the current server, which associates
nicknames with erc-server-user struct instances.
(defvar erc-server-users nil (#$ . 8491))
(make-variable-buffer-local 'erc-server-users)
#@53 Convert STRING to IRC standard conforming downcase.
(defalias 'erc-downcase #[(string) "\227\304\305 \306\216\307\310\n\"\203 \n\311\224\n\311\224H	\236AI\210\202\n*\n*\207" [string c s save-match-data-internal ((91 . 123) (93 . 125) (92 . 124) (126 . 94)) match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "[]\\[~]" 0] 4 (#$ . 8697)])
#@88 Execute BODY in the current ERC server buffer.
If no server buffer exists, return nil.
(defalias 'erc-with-server-buffer '(macro . #[(&rest body) "\302\303!\304\305BC\306\307D\310	BBEE)\207" [buffer body make-symbol "buffer" let ((erc-server-buffer)) when buffer-live-p with-current-buffer] 7 (#$ . 9105)]))
(byte-code "\301\302\303\304#\210\301\302\305\306#\210\301\307\310\311#\210\312\301\307\313\314\315!!#\210)\301\207" [file put erc-with-server-buffer lisp-indent-function 0 edebug-form-spec (body) erc-server-user-nickname compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-nickname (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (error "%s accessing a non-%s" 'erc-server-user-nickname 'erc-server-user)) (aref cl-x 1)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-nickname #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-server-user-host compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-host (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (error "%s accessing a non-%s" 'erc-server-user-host 'erc-server-user)) (aref cl-x 2)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-host #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-host erc-server-user 2] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-server-user-login compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-login (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (error "%s accessing a non-%s" 'erc-server-user-login 'erc-server-user)) (aref cl-x 3)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-login #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-login erc-server-user 3] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-server-user-full-name compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-full-name (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (error "%s accessing a non-%s" 'erc-server-user-full-name 'erc-server-user)) (aref cl-x 4)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-full-name #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-full-name erc-server-user 4] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-server-user-info compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-info (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (error "%s accessing a non-%s" 'erc-server-user-info 'erc-server-user)) (aref cl-x 5)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-info #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-info erc-server-user 5] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-server-user-buffers compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-buffers (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (error "%s accessing a non-%s" 'erc-server-user-buffers 'erc-server-user)) (aref cl-x 6)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-buffers #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-buffers erc-server-user 6] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-server-user-p compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-server-user-p (and (vectorp cl-x) (>= (length cl-x) 7) (memq (aref cl-x 0) cl-struct-erc-server-user-tags) t)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-server-user-p #[(cl-x) "\302!\205G\303Y\205\304H	>\205\305\207" [cl-x cl-struct-erc-server-user-tags vectorp 7 0 t] 2])
(defalias 'copy-erc-server-user #[(x) "\301!\207" [x copy-sequence] 2])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put make-erc-server-user compiler-macro #[(cl-whole &rest #1=#:--cl-rest--) "\306>A@\307>A@\310>A@\311>A@\312>A@\313>A@\203X@\314>\203?AA\211\202*\315>A@\203N\316\211\202*\317\320@\"\210\202()\321\322\323\316\316	\n\f
&.\207" [#1# nickname host login full-name info :nickname :host :login :full-name :info :buffers (:nickname :host :login :full-name :info :buffers :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:nickname :host :login :full-name :info :buffers)" cl--defsubst-expand (nickname host login full-name info buffers) (cl-block make-erc-server-user (vector 'erc-server-user nickname host login full-name info buffers)) buffers #:--cl-keys-- cl-whole] 13 "\n\n(fn CL-WHOLE &cl-quote &key NICKNAME HOST LOGIN FULL-NAME INFO BUFFERS)"] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
#@56 

(fn &key NICKNAME HOST LOGIN FULL-NAME INFO BUFFERS)
(defalias 'make-erc-server-user #[(&rest #1=#:--cl-rest--) "\306>A@\307>A@\310>A@\311>A@\312>A@\313>A@\203X@\314>\203?AA\211\202*\315>A@\203N\316\211\202*\317\320@\"\210\202()\321\322	\n\f
&.\207" [#1# nickname host login full-name info :nickname :host :login :full-name :info :buffers (:nickname :host :login :full-name :info :buffers :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:nickname :host :login :full-name :info :buffers)" vector erc-server-user buffers #2=#:--cl-keys--] 9 (#$ . 15535)])
(byte-code "\302C\303\302\304\305#\210\303\302\306\307#\210\303\302\310\311#\210\303\302\312\311#\210\303\313\314\315#\210\303\316\314\315#\210\303\317\314\320#\210\303\321\314\315#\210\303\322\314\315#\210\303\323\314\315#\210\303\324\314\315#\210\303\325\314\315#\210\303\326\314\315#\210\303\327\330\331#\210\332\303\327\333\334\335	!!#\210)\311\207" [cl-struct-erc-server-user-tags file erc-server-user put cl-struct-slots ((cl-tag-slot) (nickname) (host) (login) (full-name) (info) (buffers nil)) cl-struct-type (vector t) cl-struct-include nil cl-struct-print make-erc-server-user side-effect-free t copy-erc-server-user erc-server-user-p error-free erc-server-user-buffers erc-server-user-info erc-server-user-full-name erc-server-user-login erc-server-user-host erc-server-user-nickname erc-channel-user-op compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-channel-user-op (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (error "%s accessing a non-%s" 'erc-channel-user-op 'erc-channel-user)) (aref cl-x 1)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-channel-user-op #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-channel-user-tags 0 error "%s accessing a non-%s" erc-channel-user-op erc-channel-user 1] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-channel-user-voice compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-channel-user-voice (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (error "%s accessing a non-%s" 'erc-channel-user-voice 'erc-channel-user)) (aref cl-x 2)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-channel-user-voice #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-channel-user-tags 0 error "%s accessing a non-%s" erc-channel-user-voice erc-channel-user 2] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-channel-user-last-message-time compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-channel-user-last-message-time (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (error "%s accessing a non-%s" 'erc-channel-user-last-message-time 'erc-channel-user)) (aref cl-x 3)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-channel-user-last-message-time #[(cl-x) "\302H	>\204\303\304\305\306#\210\307H\207" [cl-x cl-struct-erc-channel-user-tags 0 error "%s accessing a non-%s" erc-channel-user-last-message-time erc-channel-user 3] 4])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put erc-channel-user-p compiler-macro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block erc-channel-user-p (and (vectorp cl-x) (>= (length cl-x) 4) (memq (aref cl-x 0) cl-struct-erc-channel-user-tags) t)) nil] 7] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
(defalias 'erc-channel-user-p #[(cl-x) "\302!\205G\303Y\205\304H	>\205\305\207" [cl-x cl-struct-erc-channel-user-tags vectorp 4 0 t] 2])
(defalias 'copy-erc-channel-user #[(x) "\301!\207" [x copy-sequence] 2])
(byte-code "\301\302\303\304#\210\305\301\302\306\307\310!!#\210)\301\207" [file put make-erc-channel-user compiler-macro #[(cl-whole &rest #1=#:--cl-rest--) "\306>A@\307>A@\310>A@\f\203>\f@\311>\203'\fAA\211\202\312>A@\2035\313\211\202\314\315\f@\"\210\202)\316\317\320\313
\313	\n&+\207" [#1# op voice last-message-time #:--cl-keys-- cl-whole :op :voice :last-message-time (:op :voice :last-message-time :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:op :voice :last-message-time)" cl--defsubst-expand (op voice last-message-time) (cl-block make-erc-channel-user (vector 'erc-channel-user op voice last-message-time))] 10 "\n\n(fn CL-WHOLE &cl-quote &key OP VOICE LAST-MESSAGE-TIME)"] "/builddir/build/BUILD/emacs-24.3/lisp/erc/erc.el" compiler-macro-file purecopy file-name-nondirectory] 6)
#@40 

(fn &key OP VOICE LAST-MESSAGE-TIME)
(defalias 'make-erc-channel-user #[(&rest #1=#:--cl-rest--) "\305>A@\306>A@\307>A@\f\203>\f@\310>\203'\fAA\211\202\311>A@\2035\312\211\202\313\314\f@\"\210\202)\315\316	\n$+\207" [#1# op voice last-message-time #2=#:--cl-keys-- :op :voice :last-message-time (:op :voice :last-message-time :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:op :voice :last-message-time)" vector erc-channel-user] 6 (#$ . 20621)])
(byte-code "\301C\302\301\303\304#\210\302\301\305\306#\210\302\301\307\310#\210\302\301\311\310#\210\302\312\313\314#\210\302\315\313\314#\210\302\316\313\317#\210\302\320\313\314#\210\302\321\313\314#\210\302\322\313\314#\207" [cl-struct-erc-channel-user-tags erc-channel-user put cl-struct-slots ((cl-tag-slot) (op) (voice) (last-message-time nil)) cl-struct-type (vector t) cl-struct-include nil cl-struct-print make-erc-channel-user side-effect-free t copy-erc-channel-user erc-channel-user-p error-free erc-channel-user-last-message-time erc-channel-user-voice erc-channel-user-op] 4)
#@119 Finds the (USER . CHANNEL-DATA) element corresponding to NICK
in the current buffer's `erc-channel-users' hash table.
(defalias 'erc-get-channel-user #[(nick) "\302\303!	\"\207" [nick erc-channel-users gethash erc-downcase] 3 (#$ . 21723)])
(put 'erc-get-channel-user 'byte-optimizer 'byte-compile-inline-expand)
#@93 Finds the USER corresponding to NICK in the current server's
`erc-server-users' hash table.
(defalias 'erc-get-server-user #[(nick) "\303 \304!\205rq\210\305\306	!\n\"))\207" [#1=#:buffer nick erc-server-users erc-server-buffer buffer-live-p gethash erc-downcase] 3 (#$ . 22043)])
(put 'erc-get-server-user 'byte-optimizer 'byte-compile-inline-expand)
#@109 This function is for internal use only.

Adds USER with nickname NICK to the `erc-server-users' hash table.
(defalias 'erc-add-server-user #[(nick user) "\304 \305!\205rq\210\306\307	!\n#))\207" [#1=#:buffer nick user erc-server-users erc-server-buffer buffer-live-p puthash erc-downcase] 4 (#$ . 22407)])
(put 'erc-add-server-user 'byte-optimizer 'byte-compile-inline-expand)
#@227 This function is for internal use only.

Removes the user with nickname NICK from the `erc-server-users'
hash table.  This user is not removed from the
`erc-channel-users' lists of other buffers.

See also: `erc-remove-user'.
(defalias 'erc-remove-server-user #[(nick) "\303 \304!\205rq\210\305\306	!\n\"))\207" [#1=#:buffer nick erc-server-users erc-server-buffer buffer-live-p remhash erc-downcase] 3 (#$ . 22797)])
(put 'erc-remove-server-user 'byte-optimizer 'byte-compile-inline-expand)
#@187 This function is for internal use only.

Changes the nickname of USER to NEW-NICK in the
`erc-server-users' hash table.  The `erc-channel-users' lists of
other buffers are also changed.
(defalias 'erc-change-user-nickname #[(user new-nick) "\306H	>\204\307\310\311\312#\210\313H\306H	>\204 \307\310\311\312#\210\211\313\fI\210)\314 \315
!\203Gr
q\210\316\317\n!\"\210\320\317\f!#\210))\306H	>\204V\307\310\321\312#\210\322H\323\211\205\234@\315!\203\222rq\210\n\324\317\n!\")\316\317\n!\"\210\320\317\f!#\210*A\211\204b\323+\207" [user cl-struct-erc-server-user-tags nick #1=#:v new-nick #2=#:buffer 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 erc-server-buffer buffer-live-p remhash erc-downcase puthash erc-server-user-buffers 6 nil gethash erc-server-users buf --dolist-tail-- erc-channel-users cdata] 5 (#$ . 23301)])
#@332 This function is for internal use only.

Removes the user with nickname NICK from the `erc-channel-users'
list for this channel.  If this user is not in the
`erc-channel-users' list of any other buffers, the user is also
removed from the server's `erc-server-users' list.

See also: `erc-remove-server-user' and `erc-remove-user'.
(defalias 'erc-remove-channel-user #[(nick) "\306\307!	\")\211\205r\n@\211\310H\f>\204\311\312\313\314#\210\211\315\316p\310H\f>\2043\311\312\313\314#\210\315H\"I\210)\317\307!	\"\210\310H\f>\204O\311\312\313\314#\210\315H?\205q\320 \321!\205prq\210\317\307!\")*))\207" [nick erc-channel-users channel-data user cl-struct-erc-server-user-tags #1=#:v gethash erc-downcase 0 error "%s accessing a non-%s" erc-server-user-buffers erc-server-user 6 delq remhash erc-server-buffer buffer-live-p #2=#:buffer erc-server-users] 9 (#$ . 24210)])
#@225 This function is for internal use only.

Removes the user with nickname NICK from the `erc-server-users'
list as well as from all `erc-channel-users' lists.

See also: `erc-remove-server-user' and
`erc-remove-channel-user'.
(defalias 'erc-remove-user #[(nick) "\306 \307	!\205r	q\210\310\311!\n\")*\211\205z\312H\f>\204*\313\314\315\316#\210\317H\211\320\211\203_@\307!\203Vrq\210\321\311!\"\210\322\323!\210)A\211\2048+\306 \307!\205yrq\210\321\311!\n\")*)\207" [nick #1=#:buffer erc-server-users user cl-struct-erc-server-user-tags buffers erc-server-buffer buffer-live-p gethash erc-downcase 0 error "%s accessing a non-%s" erc-server-user-buffers erc-server-user 6 nil remhash run-hooks erc-channel-members-changed-hook buf --dolist-tail-- erc-channel-users #2=#:buffer] 5 (#$ . 25115)])
#@144 This function is for internal use only.

Removes all users in the current channel.  This is called by
`erc-server-PART' and `erc-server-QUIT'.
(defalias 'erc-remove-channel-users #[nil "\205\302 \205\303	!\205\304\305	\"\210\306	!\207" [erc-server-connected erc-channel-users erc-server-process-alive hash-table-p maphash #[(nick cdata) "\301!\207" [nick erc-remove-channel-user] 2] clrhash] 3 (#$ . 25958)])
#@57 Return t if NICK is an operator in the current channel.
(defalias 'erc-channel-user-op-p #[(nick) "\2051\304	!\2051\305\306!	\")\211\2050\nA\2050\nA\307H>\204,\310\311\312\313#\210\nA\314H)\207" [nick erc-channel-users cdata cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 error "%s accessing a non-%s" erc-channel-user-op erc-channel-user 1] 5 (#$ . 26381)])
(put 'erc-channel-user-op-p 'byte-optimizer 'byte-compile-inline-expand)
#@52 Return t if NICK has voice in the current channel.
(defalias 'erc-channel-user-voice-p #[(nick) "\2051\304	!\2051\305\306!	\")\211\2050\nA\2050\nA\307H>\204,\310\311\312\313#\210\nA\314H)\207" [nick erc-channel-users cdata cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 error "%s accessing a non-%s" erc-channel-user-voice erc-channel-user 2] 5 (#$ . 26851)])
(put 'erc-channel-user-voice-p 'byte-optimizer 'byte-compile-inline-expand)
#@266 Returns a list of users in the current channel.  Each element
of the list is of the form (USER . CHANNEL-DATA), where USER is
an erc-server-user struct, and CHANNEL-DATA is either `nil' or an
erc-channel-user struct.

See also: `erc-sort-channel-users-by-activity'
(defalias 'erc-get-channel-user-list #[nil "\302\303	!\203
\304\305	\"\210)\207" [users erc-channel-users nil hash-table-p maphash #[(nick cdata) "	B\211\207" [cdata users] 2]] 3 (#$ . 27326)])
#@58 Returns a list of known nicknames on the current server.
(defalias 'erc-get-server-nickname-list #[nil "\303 \304!\205rq\210\305\306\n!\205\307\310\n\"\210	*)\207" [#1=#:buffer nicks erc-server-users erc-server-buffer buffer-live-p nil hash-table-p maphash #[(n user) "\303H	>\204\304\305\306\307#\210\310H\nB\211\207" [user cl-struct-erc-server-user-tags nicks 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1] 4]] 3 (#$ . 27796)])
#@59 Returns a list of known nicknames on the current channel.
(defalias 'erc-get-channel-nickname-list #[nil "\302\303	!\205\304\305	\"\210)\207" [nicks erc-channel-users nil hash-table-p maphash #[(n cdata) "@\303H	>\204\304\305\306\307#\210@\310H\nB\211\207" [cdata cl-struct-erc-server-user-tags nicks 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1] 4]] 3 (#$ . 28274)])
#@60 Returns an alist of known nicknames on the current server.
(defalias 'erc-get-server-nickname-alist #[nil "\303 \304!\205rq\210\305\306\n!\205\307\310\n\"\210	*)\207" [#1=#:buffer nicks erc-server-users erc-server-buffer buffer-live-p nil hash-table-p maphash #[(n user) "\303H	>\204\304\305\306\307#\210\310H\311B\nB\211\207" [user cl-struct-erc-server-user-tags nicks 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 nil] 4]] 3 (#$ . 28687)])
#@61 Returns an alist of known nicknames on the current channel.
(defalias 'erc-get-channel-nickname-alist #[nil "\302\303	!\205\304\305	\"\210)\207" [nicks erc-channel-users nil hash-table-p maphash #[(n cdata) "@\303H	>\204\304\305\306\307#\210@\310H\311B\nB\211\207" [cdata cl-struct-erc-server-user-tags nicks 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 nil] 4]] 3 (#$ . 29177)])
#@167 Sorts LIST such that users which have spoken most recently are
listed first.  LIST must be of the form (USER . CHANNEL-DATA).

See also: `erc-get-channel-user-list'.
(defalias 'erc-sort-channel-users-by-activity #[(list) "\301\302\"\207" [list sort #[(x y) "A\205C	A\205CA\305H\n>\204\306\307\310\311#\210A\312H	A\305H\n>\204,\306\307\310\311#\210	A\312H\211\205B\203A\313\f\"\202B\314*\207" [x y cl-struct-erc-channel-user-tags ty tx 0 error "%s accessing a non-%s" erc-channel-user-last-message-time erc-channel-user 3 time-less-p t] 6]] 3 (#$ . 29603)])
#@151 Sort LIST so that users' nicknames are in alphabetical order.
LIST must be of the form (USER . CHANNEL-DATA).

See also: `erc-get-channel-user-list'.
(defalias 'erc-sort-channel-users-alphabetically #[(list) "\301\302\"\207" [list sort #[(x y) "A\205D	A\205D@\305H\n>\204\306\307\310\311#\210@\312H\227	@\305H\n>\204-\306\307\310\311#\210	@\312H\227\211\205C\203B\f\231\202C\313*\207" [x y cl-struct-erc-server-user-tags nicky nickx 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 t] 6]] 3 (#$ . 30183)])
#@74 A topic string for the channel.  Should only be used in channel-buffers.
(defvar erc-channel-topic nil (#$ . 30737))
(make-variable-buffer-local 'erc-channel-topic)
#@129 List of strings representing channel modes.
E.g. '("i" "m" "s" "b Quake!*@*")
(not sure the ban list will be here, but why not)
(defvar erc-channel-modes nil (#$ . 30909))
(make-variable-buffer-local 'erc-channel-modes)
#@69 The place where insertion of new text in erc buffers should happen.
(defvar erc-insert-marker nil (#$ . 31135))
(make-variable-buffer-local 'erc-insert-marker)
#@44 The marker where input should be inserted.
(defvar erc-input-marker nil (#$ . 31301))
(make-variable-buffer-local 'erc-input-marker)
#@59 Return a copy of STRING will all text-properties removed.
(defalias 'erc-string-no-properties #[(string) "\302!\303\304	G\305	$\210	)\207" [string newstring copy-sequence set-text-properties 0 nil] 5 (#$ . 31440)])
#@59 Prompt used by ERC.  Trailing whitespace is not required.
(custom-declare-variable 'erc-prompt "ERC>" '(#$ . 31663) :group 'erc-display :type '(choice string function))
#@75 Return the input prompt as a string.

See also the variable `erc-prompt'.
(defalias 'erc-prompt #[nil "\302!\203 \202\f\211G\303V\203	\304P\202	)\207" [erc-prompt prompt functionp 0 " "] 3 (#$ . 31838)])
#@222 Indicator used by ERC for showing commands.

If non-nil, this will be used in the ERC buffer to indicate
commands (i.e., input starting with a '/').

If nil, the prompt will be constructed from the variable `erc-prompt'.
(custom-declare-variable 'erc-command-indicator nil '(#$ . 32060) :group 'erc-display :type '(choice (const nil) string function))
#@129 Return the command indicator prompt as a string.

This only has any meaning if the variable `erc-command-indicator' is non-nil.
(defalias 'erc-command-indicator #[nil "\205 \302!\203 \202\211G\303V\203	\304P\202	)\207" [erc-command-indicator prompt functionp 0 " "] 3 (#$ . 32419)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\317\306\320\321\322&	\210\300\323\324\325\304\317\306\320\321\326&	\210\300\327\315\330\304\331\306\332&\210\300\333\315\334\304\335\306\332&\210\300\336\315\337\304\331\306\332&\210\300\340\315\341\304\331\306\342&\210\300\343\315\344\304\335\306\332&\210\300\345\315\346\304\335\306\332&\210\300\347\350\351\304\335\306\332&\210\300\352\315\353\304\331\306\332&\210\300\354\355\356\304\331\306\307&\210\300\357\315\360\304\331\306\361&\210\300\362\315\363\304\364\306\365&\210\366\362!\210\300\367\315\370\304\364\306\371&\207" [custom-declare-variable erc-notice-prefix "*** " "Prefix for all notices." :group erc-display :type string erc-notice-highlight-type 'all "Determines how to highlight notices.\nSee `erc-notice-prefix'.\n\nThe following values are allowed:\n\n    'prefix - highlight notice prefix only\n    'all    - highlight the entire notice\n\nAny other value disables notice's highlighting altogether." (choice (const :tag "highlight notice prefix only" prefix) (const :tag "highlight the entire notice" all) (const :tag "don't highlight notices at all" nil)) erc-echo-notice-hook nil "Specifies a list of functions to call to echo a private\nnotice.  Each function is called with four arguments, the string\nto display, the parsed server message, the target buffer (or\nnil), and the sender.  The functions are called in order, until a\nfunction evaluates to non-nil.  These hooks are called after\nthose specified in `erc-echo-notice-always-hook'.\n\nSee also: `erc-echo-notice-always-hook',\n`erc-echo-notice-in-default-buffer',\n`erc-echo-notice-in-target-buffer',\n`erc-echo-notice-in-minibuffer',\n`erc-echo-notice-in-server-buffer',\n`erc-echo-notice-in-active-non-server-buffer',\n`erc-echo-notice-in-active-buffer',\n`erc-echo-notice-in-user-buffers',\n`erc-echo-notice-in-user-and-target-buffers',\n`erc-echo-notice-in-first-user-buffer'" erc-hooks hook :options (erc-echo-notice-in-default-buffer erc-echo-notice-in-target-buffer erc-echo-notice-in-minibuffer erc-echo-notice-in-server-buffer erc-echo-notice-in-active-non-server-buffer erc-echo-notice-in-active-buffer erc-echo-notice-in-user-buffers erc-echo-notice-in-user-and-target-buffers erc-echo-notice-in-first-user-buffer) erc-echo-notice-always-hook '(erc-echo-notice-in-default-buffer) "Specifies a list of functions to call to echo a private\nnotice.  Each function is called with four arguments, the string\nto display, the parsed server message, the target buffer (or\nnil), and the sender.  The functions are called in order, and all\nfunctions are called.  These hooks are called before those\nspecified in `erc-echo-notice-hook'.\n\nSee also: `erc-echo-notice-hook',\n`erc-echo-notice-in-default-buffer',\n`erc-echo-notice-in-target-buffer',\n`erc-echo-notice-in-minibuffer',\n`erc-echo-notice-in-server-buffer',\n`erc-echo-notice-in-active-non-server-buffer',\n`erc-echo-notice-in-active-buffer',\n`erc-echo-notice-in-user-buffers',\n`erc-echo-notice-in-user-and-target-buffers',\n`erc-echo-notice-in-first-user-buffer'" (erc-echo-notice-in-default-buffer erc-echo-notice-in-target-buffer erc-echo-notice-in-minibuffer erc-echo-notice-in-server-buffer erc-echo-notice-in-active-non-server-buffer erc-echo-notice-in-active-buffer erc-echo-notice-in-user-buffers erc-echo-notice-in-user-and-target-buffers erc-echo-notice-in-first-user-buffer) erc-whowas-on-nosuchnick "If non-nil, do a whowas on a nick if no such nick." erc boolean erc-verbose-server-ping "If non-nil, show every time you get a PING or PONG from the server." erc-paranoia erc-public-away-p "Let others know you are back when you are no longer marked away.\nThis happens in this form:\n* <nick> is back (gone for <time>)\n\nMany consider it impolite to do so automatically." erc-away-nickname "The nickname to take when you are marked as being away." (choice (const nil) string) erc-paranoid "If non-nil, then all incoming CTCP requests will be shown." erc-disable-ctcp-replies "Disable replies to CTCP requests that require a reply.\nIf non-nil, then all incoming CTCP requests that normally require\nan automatic reply (like VERSION or PING) will be ignored.  Good to\nset if some hacker is trying to flood you away." erc-anonymous-login t "Be paranoid, don't give away your machine name." erc-prompt-for-channel-key "Prompt for channel key when using `erc-join-channel' interactively." erc-email-userid "user" "Use this as your email user ID." erc-system-name "Use this as the name of your system.\nIf nil, ERC will call `system-name' to get this information." (choice (const :tag "Default system name" nil) string) erc-ignore-list "List of regexps matching user identifiers to ignore.\n\nA user identifier has the form \"nick!login@host\".  If an\nidentifier matches, the message from the person will not be\nprocessed." erc-ignore (repeat regexp) make-variable-buffer-local erc-ignore-reply-list "List of regexps matching user identifiers to ignore completely.\n\nThis differs from `erc-ignore-list' in that it also ignores any\nmessages directed at the user.\n\nA user identifier has the form \"nick!login@host\".\n\nIf an identifier matches, or a message is addressed to a nick\nwhose identifier matches, the message will not be processed.\n\nCAVEAT: ERC doesn't know about the user and host of anyone who\nwas already in the channel when you joined, but never said\nanything, so it won't be able to match the user and host of those\npeople.  You can update the ERC internal info using /WHO *." (repeat regexp)] 10)
#@249 If non-nil, flood protection is enabled.
Flooding is sending too much information to the server in too
short of an interval, which may cause the server to terminate the
connection.

See `erc-server-flood-margin' for other flood-related parameters.
(defvar erc-flood-protect t (#$ . 38332))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\305\306\317&\207" [custom-declare-variable erc-startup-file-list (list (concat erc-user-emacs-directory ".ercrc.el") (concat erc-user-emacs-directory ".ercrc") "~/.ercrc.el" "~/.ercrc" ".ercrc.el" ".ercrc") "List of files to try for a startup script.\nThe first existent and readable one will get executed.\n\nIf the filename ends with `.el' it is presumed to be an Emacs Lisp\nscript and it gets (load)ed.  Otherwise it is treated as a bunch of\nregular IRC commands." :group erc-scripts :type (repeat file) erc-script-path nil "List of directories to look for a script in /load command.\nThe script is first searched in the current directory, then in each\ndirectory in the list." (repeat directory) erc-script-echo t "If non-nil, echo the IRC script commands locally." boolean] 8)
#@72 A marker containing the position the current buffer was last saved at.
(defvar erc-last-saved-position nil (#$ . 39522))
(byte-code "\300\301!\210\302\303\304\305\306\307\310\311&\210\302\312\304\313\306\307\310\311&\210\302\314\304\315\306\307\310\311&\210\302\316\304\317\306\307\310\320&\210\302\321\304\322\306\307\310\323&\210\302\324\325\326\306\307\310\327&\210\302\330\331\332\306\307\310\333&\207" [make-variable-buffer-local erc-last-saved-position custom-declare-variable erc-kill-buffer-on-part nil "Kill the channel buffer on PART.\nThis variable should probably stay nil, as ERC can reuse buffers if\nyou rejoin them later." :group erc-quit-and-part :type boolean erc-kill-queries-on-quit "Kill all query (also channel) buffers of this server on QUIT.\nSee the variable `erc-kill-buffer-on-part' for details." erc-kill-server-buffer-on-quit "Kill the server buffer of the process on QUIT." erc-quit-reason-various-alist "Alist of possible arguments to the /quit command.\n\nEach element has the form:\n  (REGEXP RESULT)\n\nIf REGEXP matches the argument to /quit, then its relevant RESULT\nwill be used.  RESULT may be either a string, or a function.  If\na function, it should return the quit message as a string.\n\nIf no elements match, then the empty string is used.\n\nAs an example:\n  (setq erc-quit-reason-various-alist\n      '((\"zippy\" erc-quit-reason-zippy)\n	(\"xmms\" dme:now-playing)\n	(\"version\" erc-quit-reason-normal)\n	(\"home\" \"Gone home !\")\n	(\"^$\" \"Default Reason\")))\nIf the user types \"/quit zippy\", then a Zippy the Pinhead quotation\nwill be used as the quit message." (repeat (list regexp (choice (string) (function)))) erc-part-reason-various-alist "Alist of possible arguments to the /part command.\n\nEach element has the form:\n  (REGEXP RESULT)\n\nIf REGEXP matches the argument to /part, then its relevant RESULT\nwill be used.  RESULT may be either a string, or a function.  If\na function, it should return the part message as a string.\n\nIf no elements match, then the empty string is used.\n\nAs an example:\n  (setq erc-part-reason-various-alist\n      '((\"zippy\" erc-part-reason-zippy)\n	(\"xmms\" dme:now-playing)\n	(\"version\" erc-part-reason-normal)\n	(\"home\" \"Gone home !\")\n	(\"^$\" \"Default Reason\")))\nIf the user types \"/part zippy\", then a Zippy the Pinhead quotation\nwill be used as the part message." (repeat (list regexp (choice (string) (function)))) erc-quit-reason 'erc-quit-reason-normal "A function which returns the reason for quitting.\n\nThe function is passed a single argument, the string typed by the\nuser after \"/quit\"." (choice (const erc-quit-reason-normal) (const erc-quit-reason-zippy) (const erc-quit-reason-various) (symbol)) erc-part-reason 'erc-part-reason-normal "A function which returns the reason for parting a channel.\n\nThe function is passed a single argument, the string typed by the\nuser after \"/PART\"." (choice (const erc-part-reason-normal) (const erc-part-reason-zippy) (const erc-part-reason-various) (symbol))] 8)
#@54 The name of the buffer created by `erc-grab-region'.
(defvar erc-grab-buffer-name "*erc-grab*" (#$ . 42580))
#@32 USER_INFORMATION IRC variable.
(defvar erc-user-information "ERC User" (#$ . 42695))
(byte-code "\300\301\302\303\304\305%\210\306\307\302\310\304\301\311\312\313\314&	\210\306\315\302\316\304\301\311\312&\210\306\317\302\320\304\301\311\312&\210\306\321\302\322\304\301\311\312&\207" [custom-declare-group erc-hooks nil "Hook variables for fancy customizations of ERC." :group erc custom-declare-variable erc-mode-hook "Hook run after `erc-mode' setup is finished." :type hook :options (erc-add-scroll-to-bottom) erc-timer-hook "Put functions which should get called more or less periodically here.\nThe idea is that servers always play ping pong with the client, and so there\nis no need for any idle-timer games with Emacs." erc-insert-pre-hook "Hook called first when some text is inserted through `erc-display-line'.\nIt gets called with one argument, STRING.\nTo be able to modify the inserted text, use `erc-insert-modify-hook' instead.\nFiltering functions can set `erc-insert-this' to nil to avoid\ndisplay of that particular string at all." erc-send-pre-hook "Hook called first when some text is sent through `erc-send-current-line'.\nIt gets called with one argument, STRING.\n\nTo change the text that will be sent, set the variable STR which is\nused in `erc-send-current-line'.\n\nTo change the text inserted into the buffer without changing the text\nthat will be sent, use `erc-send-modify-hook' instead.\n\nFiltering functions can set `erc-send-this' to nil to avoid sending of\nthat particular string at all and `erc-insert-this' to prevent\ninserting that particular string into the buffer.\n\nNote that it's useless to set `erc-send-this' to nil and\n`erc-insert-this' to t.  ERC is sane enough to not insert the text\nanyway."] 10)
#@168 Insert the text into the target buffer or not.
Functions on `erc-insert-pre-hook' can set this variable to nil
if they wish to avoid insertion of a particular string.
(defvar erc-insert-this t (#$ . 44458))
#@153 Send the text to the target or not.
Functions on `erc-send-pre-hook' can set this variable to nil
if they wish to avoid sending of a particular string.
(defvar erc-send-this t (#$ . 44672))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\305\306\307\312\313&	\210\300\314\302\315\304\305\306\307&\210\300\316\302\317\304\305\306\307\312\320&	\210\300\321\322\323\304\305\306\307&\207" [custom-declare-variable erc-insert-modify-hook nil "Insertion hook for functions that will change the text's appearance.\nThis hook is called just after `erc-insert-pre-hook' when the value\nof `erc-insert-this' is t.\nWhile this hook is run, narrowing is in effect and `current-buffer' is\nthe buffer where the text got inserted.  One possible value to add here\nis `erc-fill'." :group erc-hooks :type hook erc-insert-post-hook "This hook is called just after `erc-insert-modify-hook'.\nAt this point, all modifications from prior hook functions are done." :options (erc-truncate-buffer erc-make-read-only erc-save-buffer-in-logs) erc-send-modify-hook "Sending hook for functions that will change the text's appearance.\nThis hook is called just after `erc-send-pre-hook' when the values\nof `erc-send-this' and `erc-insert-this' are both t.\nWhile this hook is run, narrowing is in effect and `current-buffer' is\nthe buffer where the text got inserted.\n\nNote that no function in this hook can change the appearance of the\ntext that is sent.  Only changing the sent text's appearance on the\nsending user's screen is possible.  One possible value to add here\nis `erc-fill'." erc-send-post-hook "This hook is called just after `erc-send-modify-hook'.\nAt this point, all modifications from prior hook functions are done.\nNOTE: The functions on this hook are called _before_ sending a command\nto the server.\n\nThis function is called with narrowing, ala `erc-send-modify-hook'." (erc-make-read-only) erc-send-completed-hook (when (featurep 'emacspeak) (list (byte-compile (lambda (str) (emacspeak-auditory-icon 'select-object))))) "Hook called after a message has been parsed by ERC.\n\nThe single argument to the functions is the unmodified string\nwhich the local user typed."] 10)
#@38 Syntax table used while in ERC mode.
(defvar erc-mode-syntax-table (byte-code "\301 \302\303\304#\210\302\305\304#\210\302\306\307#\210\302\310\311#\210\302\312\311#\210)\207" [syntax-table make-syntax-table modify-syntax-entry 34 ".   " 92 39 "w   " 60 "." 62] 4) (#$ . 46880))
#@38 Abbrev table used while in ERC mode.
(defvar erc-mode-abbrev-table nil (#$ . 47172))
(define-abbrev-table 'erc-mode-abbrev-table nil)
#@13 ERC keymap.
(defvar erc-mode-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\307#\210\303\311\307#\210\303\312\313#\210\303\314\315#\210\303\316\317#\210\303\320\321#\210\303\322\323#\210\303\324\325#\210\303\326\327#\210\303\330\331#\210\303\332\333#\210\303\334\335#\210\303\336\337#\210\303\340\341#\210\303\342\343#\210\303\344\345#\210\303\346\337#\210\303\347\350#\210\303\351\352#\210\353\354!\203\220\303\355\356#\210\202\227\357\360\356	$\210)\207" [map global-map make-sparse-keymap define-key "
" erc-send-current-line "" erc-bol [home] "" "" erc-iswitchb "" erc-toggle-interpret-controls "" erc-input-action "" erc-toggle-ctcp-autoresponse "" erc-toggle-flood-control "	" erc-invite-only-mode "\n" erc-join-channel "" erc-channel-names "" erc-get-channel-mode-from-keypress "" erc-part-from-channel "" erc-quit-server "" erc-remove-text-properties-region "" erc-set-topic "" erc-kill-input "" "\211" ispell-complete-word "	" completion-at-point fboundp command-remapping [remap font-lock-fontify-block] undefined substitute-key-definition font-lock-fontify-block] 5) (#$ . 47312))
(byte-code "\300\301\302\303\304\305%\210\306\307\310\311\304\301%\210\306\312\313\314\304\301%\210\306\315\316\317\304\301%\210\306\320\321\322\304\301%\210\306\323\324\325\304\301%\210\306\326\327\330\304\301%\210\306\331\332\333\304\301%\210\306\334\335\336\304\301%\210\306\337\340\341\304\301%\210\306\342\343\344\304\301%\210\306\345\346\347\304\301%\210\306\350\351\352\304\301%\207" [custom-declare-group erc-faces nil "Faces for ERC." :group erc custom-declare-face erc-default-face ((t)) "ERC default face." erc-direct-msg-face ((t :foreground "IndianRed")) "ERC face used for messages you receive in the main erc buffer." erc-header-line ((t :foreground "grey20" :background "grey90")) "ERC face used for the header line.\n\nThis will only be used if `erc-header-line-face-method' is non-nil." erc-input-face ((t :foreground "brown")) "ERC face used for your input." erc-prompt-face ((t :weight bold :foreground "Black" :background "lightBlue2")) "ERC face for the prompt." erc-command-indicator-face ((t :weight bold)) "ERC face for the command indicator.\nSee the variable `erc-command-indicator'." erc-notice-face ((default :weight bold) (((class color) (min-colors 88)) :foreground "SlateBlue") (t :foreground "blue")) "ERC face for notices." erc-action-face ((t :weight bold)) "ERC face for actions generated by /ME." erc-error-face ((t :foreground "red")) "ERC face for errors." erc-my-nick-face ((t :weight bold :foreground "brown")) "ERC face for your current nickname in messages sent by you.\nSee also `erc-show-my-nick'." erc-nick-default-face ((t :weight bold)) "ERC nickname default face." erc-nick-msg-face ((t :weight bold :foreground "IndianRed")) "ERC nickname face for private messages."] 6)
#@68 When set to t, generate debug messages in a separate debug buffer.
(defvar erc-log-p nil (#$ . 50206))
#@22 Debug log file name.
(defvar erc-debug-log-file (expand-file-name "ERC.debug") (#$ . 50315))
(defvar erc-dbuf nil)
(make-variable-buffer-local 'erc-dbuf)
#@885 Define a new minor mode using ERC conventions.
Symbol NAME is the name of the module.
Symbol ALIAS is the alias to use, or nil.
DOC is the documentation string to use for the minor mode.
ENABLE-BODY is a list of expressions used to enable the mode.
DISABLE-BODY is a list of expressions used to disable the mode.
If LOCAL-P is non-nil, the mode will be created as a buffer-local
mode, rather than a global one.

This will define a minor mode called erc-NAME-mode, possibly
an alias erc-ALIAS-mode, as well as the helper functions
erc-NAME-enable, and erc-NAME-disable.

Example:

  ;;;###autoload (autoload 'erc-replace-mode "erc-replace")
  (define-erc-module replace nil
    "This mode replaces incoming text according to `erc-replace-alist'."
    ((add-hook 'erc-insert-modify-hook
	       'erc-replace-insert))
    ((remove-hook 'erc-insert-modify-hook
		  'erc-replace-insert)))
(defalias 'define-erc-module '(macro . #[(name alias doc enable-body disable-body &optional local-p) "\306!\307\310\311	\227\"!\307\310\312	\227\"!\307\310\313	\227\"!\307\310\314	\227\"!\315\316\n\310\317\211'$\320\211\211\321(?\322\323D\324\n\fC
CF\257\325\f\320\310\326\"\327\330\331\323DE\332\n\333BB)BBBBBBB\325
\320\310\334\"\335\332\336\337\323D\340BBE\332\n\341BB*BBBBBBB+\205\234+=?\205\234\342\323\307\310\311\306+!\227\"!D\323\nDE\343\323\nD\344\323DF\343\323\fD\345\323DF\343\323
D\346\323DF\257-\207" [name sn mode group enable disable symbol-name intern format "erc-%s-mode" "erc-%s" "erc-%s-enable" "erc-%s-disable" progn erc-define-minor-mode "Toggle ERC %S mode.\nWith a prefix argument ARG, enable %s if ARG is positive,\nand disable it otherwise.  If called from Lisp, enable the mode\nif ARG is omitted or nil.\n%s" nil :global :group quote if defun "Enable ERC %S mode." (interactive) add-to-list 'erc-modules setq (t) "Disable ERC %S mode." (interactive) erc-modules delq (erc-modules) (nil) defalias put 'definition-name 'definition-name 'definition-name doc local-p enable-body disable-body alias] 15 (#$ . 50476)]))
(put 'define-erc-module 'doc-string-elt 3)
#@664 Execute FORMS the next time EVENT occurs in the `current-buffer'.

You should make sure that `current-buffer' is a server buffer.

This function temporarily adds a function to EVENT's hook to
execute FORMS.  After FORMS are run, the function is removed from
EVENT's hook.  The last expression of FORMS should be either nil
or t, where nil indicates that the other functions on EVENT's hook
should be run too, and t indicates that other functions should
not be run.

Please be sure to use this function in server-buffers.  In
channel-buffers it may not work at all, as it uses the LOCAL
argument of `add-hook' and `remove-hook' to ensure multiserver
capabilities.
(defalias 'erc-once-with-server-event #[(event &rest forms) "\304 \204	\305\306!\210\307\310!\311!\312\n\313p#\210\n\314\315\316\317\320\nD\321BB\322\320	D\320\nD\323BBBE\324\320\nDDBBBBM\210\325	\n\326\327$\210\n*\207" [event hook fun forms erc-server-buffer-p error "You should only run `erc-once-with-server-event' in a server buffer" make-symbol "fun" erc-get-hook put erc-original-buffer lambda (proc parsed) with-current-buffer get quote ('erc-original-buffer) remove-hook (t) fmakunbound add-hook nil t] 9 (#$ . 52578)])
#@550 Execute FORMS the next time EVENT occurs in any server buffer.

This function temporarily prepends a function to EVENT's hook to
execute FORMS.  After FORMS are run, the function is removed from
EVENT's hook.  The last expression of FORMS should be either nil
or t, where nil indicates that the other functions on EVENT's hook
should be run too, and t indicates that other functions should
not be run.

When FORMS execute, the current buffer is the server buffer associated with the
connection over which the data was received that triggered EVENT.
(defalias 'erc-once-with-server-event-global #[(event &rest forms) "\304\305!\306!\211\307\310\311\312	D\312\nDE\313\312\nDDBBBBM\210\314	\n\315\211$\210\n*\207" [event hook fun forms make-symbol "fun" erc-get-hook lambda (proc parsed) remove-hook quote fmakunbound add-hook nil] 8 (#$ . 53781)])
#@49 Logs STRING if logging is on (see `erc-log-p').
(defalias 'erc-log #[(string) "\205\302	!\207" [erc-log-p string erc-log-aux] 2 (#$ . 54637)])
(put 'erc-log 'byte-optimizer 'byte-compile-inline-expand)
#@143 Return the server buffer for the current buffer's process.
The buffer-local variable `erc-server-process' is used to find
the process buffer.
(defalias 'erc-server-buffer #[nil "\301 \205\302!\207" [erc-server-process erc-server-buffer-live-p process-buffer] 2 (#$ . 54849)])
#@52 Return t if the server buffer has not been killed.
(defalias 'erc-server-buffer-live-p #[nil "\301!\205\302\303!!\207" [erc-server-process processp buffer-live-p process-buffer] 3 (#$ . 55134)])
#@107 Return non-nil if argument BUFFER is an ERC server buffer.

If BUFFER is nil, the current buffer is used.
(defalias 'erc-server-buffer-p #[(&optional buffer) "r\206pq\210	\302=\205\303 ?)\207" [buffer major-mode erc-mode erc-default-target] 2 (#$ . 55340)])
#@136 Return non-nil if argument BUFFER is an ERC server buffer that
has an open IRC process.

If BUFFER is nil, the current buffer is used.
(defalias 'erc-open-server-buffer-p #[(&optional buffer) "\300 \205\301 \207" [erc-server-buffer-p erc-server-process-alive] 1 (#$ . 55610)])
#@96 Return non-nil if BUFFER is an ERC query buffer.
If BUFFER is nil, the current buffer is used.
(defalias 'erc-query-buffer-p #[(&optional buffer) "r\206pq\210\303 \n\304=\205	\205	\305H\306>?*\207" [buffer target major-mode erc-default-target erc-mode 0 (35 38 43 33)] 2 (#$ . 55895)])
#@35 Return non-nil if NICK is online.
(defalias 'erc-ison-p #[(nick) "\303 \304!\205Qrq\210\305\306\307\310\311\312\301\313\314\n\315BBDE\316BBB\"\210\317\320\321\n\"!\210	\305=\2036\322 \210\202*\323 \203O\324\325	\206B\n	\203J\326\202K\327#\202P	*)\207" [#1=#:buffer erc-online-p nick erc-server-buffer buffer-live-p unknown erc-once-with-server-event 303 let ((ison (split-string (aref parsed 3)))) setq car erc-member-ignore-case (ison) (t) erc-server-send format "ISON %s" accept-process-output interactive-p message "%s is %sonline" "" "not "] 10 (#$ . 56195) "sNick: "])
#@33 Do the debug logging of STRING.
(defalias 'erc-log-aux #[(string) "p\306\307\310 \203Jq\210\f\203 \311\f!\203 \312\f!\204'\313\314
\315Q!\fq\210`mdb\210\316\317Qc\210	\203Bdb\210\202E\nb\210q\202O\320\321\",\207" [session-buffer was-eob point cb erc-dbuf erc-session-server 1 nil erc-server-buffer bufferp buffer-live-p get-buffer-create "*ERC-DEBUG: " "*" "** " "\n" message "ERC: ** %s" string] 4 (#$ . 56787)])
#@151 The current active buffer, the one where the user typed the last command.
Defaults to the server buffer, and should only be set in the
server buffer.
(defvar erc-active-buffer nil (#$ . 57229))
(make-variable-buffer-local 'erc-active-buffer)
#@96 Return the value of `erc-active-buffer' for the current server.
Defaults to the server buffer.
(defalias 'erc-active-buffer #[nil "\302 \303!\205rq\210\303	!\203	\202p\211))\207" [#1=#:buffer erc-active-buffer erc-server-buffer buffer-live-p] 2 (#$ . 57477)])
#@49 Set the value of `erc-active-buffer' to BUFFER.
(defalias 'erc-set-active-buffer #[(buffer) "\302 \203r\302 q\210\211)\207\211\207" [buffer erc-active-buffer erc-server-buffer] 2 (#$ . 57753)])
(byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [erc-mode-hook variable-documentation put purecopy "Hook run when entering ERC 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-mode-map definition-name erc-mode] 5)
(defvar erc-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-mode-map variable-documentation put purecopy "Keymap for `erc-mode'." boundp erc-mode-syntax-table definition-name erc-mode] 5)
(defvar erc-mode-syntax-table (make-syntax-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [erc-mode-syntax-table variable-documentation put purecopy "Syntax table for `erc-mode'." erc-mode-abbrev-table definition-name erc-mode] 5)
(defvar erc-mode-abbrev-table (progn (define-abbrev-table 'erc-mode-abbrev-table nil) erc-mode-abbrev-table))
(byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [erc-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `erc-mode'." erc-mode derived-mode-parent nil] 5)
#@127 Major mode for Emacs IRC.

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

\{erc-mode-map}
(defalias 'erc-mode #[nil "\306\300!\210\307\310 \210\311\312\313!\210\314\f!\210

\315\316!\203(\306\316!\210\317\307\306\320!\210\321\322\323 !\324Q\306\325!\210\326\322\323 !\324Q\327\330\331\317\307$\210)\332\333!\207" [delay-mode-hooks major-mode mode-name erc-mode-map erc-mode-syntax-table erc-mode-abbrev-table make-local-variable t kill-all-local-variables erc-mode "ERC" use-local-map set-syntax-table boundp next-line-add-newlines nil paragraph-separate "\f\\|\\(^" regexp-quote erc-prompt "\\)" paragraph-start "\\(" add-hook completion-at-point-functions erc-complete-word-at-point run-mode-hooks erc-mode-hook local-abbrev-table line-move-ignore-invisible] 5 (#$ . 59177) nil])
#@55 IRC server to use if it cannot be detected otherwise.
(defconst erc-default-server "irc.freenode.net" (#$ . 60018))
#@53 IRC port to use if it cannot be detected otherwise.
(defconst erc-default-port 6667 (#$ . 60140))
(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\316&\210\300\317\320\321\304\305\306\316&\207" [custom-declare-variable erc-join-buffer 'buffer "Determines how to display a newly created IRC buffer.\n\nThe available choices are:\n\n  'window          - in another window,\n  'window-noselect - in another window, but don't select that one,\n  'frame           - in another frame,\n  'bury            - bury it in a new buffer,\n  'buffer          - in place of the current buffer,\n  any other value  - in place of the current buffer." :group erc-buffers :type (choice (const :tag "Split window and select" window) (const :tag "Split window, don't select" window-noselect) (const :tag "New frame" frame) (const :tag "Bury in new buffer" bury) (const :tag "Use current buffer" buffer) (const :tag "Use current buffer" t)) erc-frame-alist nil "Alist of frame parameters for creating erc frames.\nA value of nil means to use `default-frame-alist'." (repeat (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value"))) erc-frame-dedicated-flag "Non-nil means the erc frames are dedicated to that buffer.\nThis only has effect when `erc-join-buffer' is set to `frame'." boolean erc-reuse-frames t "Determines whether new frames are always created.\nNon-nil means that a new frame is not created to display an ERC\nbuffer if there is already a window displaying it.  This only has\neffect when `erc-join-buffer' is set to `frame'."] 8)
#@60 Return non-nil if CHANNEL seems to be an IRC channel name.
(defalias 'erc-channel-p #[(channel) ";\203\301H\302>\207\303!\203!\304!\203!rq\210\305\306 !)\207\307\207" [channel 0 (35 38 43 33) bufferp buffer-live-p erc-channel-p erc-default-target nil] 2 (#$ . 61751)])
#@289 If nil, create new buffers on joining a channel/query.
If non-nil, a new buffer will only be created when you join
channels with same names on different servers, or have query buffers
open with nicks of the same name on different servers.  Otherwise,
the existing buffers will be reused.
(custom-declare-variable 'erc-reuse-buffers t '(#$ . 62036) :group 'erc-buffers :type 'boolean)
#@246 Normalize the port specification PORT to integer form.
PORT may be an integer, a string or a symbol.  If it is a string or a
symbol, it may have these values:
* irc         -> 194
* ircs        -> 994
* ircd        -> 6667
* ircd-dalnet -> 7000
(defalias 'erc-normalize-port #[(port) "9\203\302\303!!\207;\203I\304!\211\305V\203	\202G\306\230\203(\307\202G\310\230\2032\311\202G\312\230\203<\313\202G\314\230\203F\315\202G\316)\207\247\203P\207\316\207" [port port-nr erc-normalize-port symbol-name string-to-number 0 "irc" 194 "ircs" 994 "ircd" 6667 "ircd-dalnet" 7000 nil] 4 (#$ . 62427)])
#@40 Check whether ports A and B are equal.
(defalias 'erc-port-equal #[(a b) "\302!\302	!U\207" [a b erc-normalize-port] 3 (#$ . 63051)])
#@50 Create a new buffer name based on the arguments.
(defalias 'erc-generate-new-buffer-name #[(server port target &optional proc) "\247\203	\306!	\206\n\307Q\211G\310V\205)\206\311\312\211\211\313\nQD\312\211\203\200@\f\204w\203w\314!\203w	\204]r\314!q\210\315 \205Y\316 ?)\203wr\314!q\210\n\230\205p\317\")\203wA\211\2041*\f\206\210\320
!*\207" [port target server name buffer-name buf-name number-to-string ":" 1 "*erc-server-buffer*" nil "/" get-buffer erc-server-buffer-p erc-server-process-alive erc-port-equal generate-new-buffer-name candidate --dolist-tail-- erc-reuse-buffers erc-session-server erc-session-port] 5 (#$ . 63192)])
#@45 Create a new buffer based on the arguments.
(defalias 'erc-get-buffer-create #[(server port target &optional proc) "\304\305	\n$!\207" [server port target proc get-buffer-create erc-generate-new-buffer-name] 6 (#$ . 63888)])
#@131 Return non-nil if STRING is a member of LIST.

All strings are compared according to IRC protocol case rules, see
`erc-downcase'.
(defalias 'erc-member-ignore-case #[(string list) "\301!\302\303\215\207" [string erc-downcase result (byte-code "\205	\302@!\230\203\303\304\"\210\202A\211\204\305\207" [list string erc-downcase throw result nil] 4)] 2 (#$ . 64122)])
#@368 Execute BODY in the buffer associated with SPEC.

SPEC should have the form

 (TARGET [PROCESS])

If TARGET is a buffer, use it.  Otherwise, use the buffer
matching TARGET in the process specified by PROCESS.

If PROCESS is nil, use the current `erc-server-process'.
See `erc-get-buffer' for details.

See also `with-current-buffer'.

(fn (TARGET [PROCESS]) BODY...)
(defalias 'erc-with-buffer '(macro . #[(spec &rest body) "\306\307!\306\310!\306\311!\306\312!\313	\f@D\f\211A@)D\314\315	D	\316\n\317\320BBDC\314\321	\nE\322	\nEEEFDE\323\324D\325BBEE,\207" [process target proc buf spec x make-symbol "buf" "proc" "target" "process" let* if bufferp let or ((and (processp erc-server-process) erc-server-process)) and erc-get-buffer when buffer-live-p with-current-buffer body] 15 (#$ . 64509)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put erc-with-buffer lisp-indent-function 1 edebug-form-spec ((form &optional form) body)] 4)
#@109 Return the buffer matching TARGET in the process PROC.
If PROC is not supplied, all processes are searched.
(defalias 'erc-get-buffer #[(target &optional proc) "\302!\303\304\215)\207" [target downcased-target erc-downcase buffer (erc-buffer-filter #[nil "\302 \211;\205	\303!\230\205\304\305p\")\207" [current downcased-target erc-default-target erc-downcase throw buffer] 4] proc)] 2 (#$ . 65475)])
#@296 Return a list of `erc-mode' buffers matching certain criteria.
PREDICATE is a function executed with each buffer, if it returns t, that buffer
is considered a valid match.

PROC is either an `erc-server-process', identifying a certain
server connection, or nil which means all open connections.
(defalias 'erc-buffer-filter #[(predicate &optional proc) "\212\300\301\302\303\304 \"\")\207" [delq nil mapcar #[(buf) "\305!\205!rq\210	\306=\205 \n\203\n=\205 \f \205 )\207" [buf major-mode proc erc-server-process predicate buffer-live-p erc-mode] 2] buffer-list] 5 (#$ . 65891)])
#@268 Return a list of ERC buffers.
PREDICATE is a function which executes with every buffer satisfying
the predicate.  If PREDICATE is passed as nil, return a list of all ERC
buffers.  If PROC is given, the buffers local variable `erc-server-process'
needs to match PROC.
(defalias 'erc-buffer-list #[(&optional predicate proc) "\204\302\303	\"\207" [predicate proc #[nil "\300\207" [t] 1] erc-buffer-filter] 3 (#$ . 66487)])
#@215 Execute FORMS in all buffers which have same process as this server.
FORMS will be evaluated in all buffers having the process PROCESS and
where PRED matches or in all buffers of the server process if PRED is
nil.
(defalias 'erc-with-all-buffers-of-server '(macro . #[(process pred &rest forms) "\305\306!\305\307!\310\nD	D\311\312\313\314\315\316\fBBE\317	EEDE*\320BB\207" [pro pre process pred forms make-symbol "pre" "pro" let* res mapcar lambda (buffer) with-current-buffer buffer erc-buffer-list (res)] 10 (#$ . 66920)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put erc-with-all-buffers-of-server lisp-indent-function 1 edebug-form-spec (form form body)] 4)
#@429 Use `iswitchb-read-buffer' to prompt for a ERC buffer to switch to.
When invoked with prefix argument, use all erc buffers.  Without prefix
ARG, allow only buffers related to same session server.
If `erc-track-mode' is in enabled, put the last element of
`erc-modified-channels-alist' in front of the buffer list.

Due to some yet unresolved reason, global function `iswitchb-mode'
needs to be active for this function to work.
(defalias 'erc-iswitchb #[(&optional arg) "\305\300!\205\211\204\300\306!\210\307\216\310\311\312\313\305\303!\205'\314\315!\211@@)!\316#!+\207" [iswitchb-mode enabled iswitchb-make-buflist-hook erc-modified-channels-alist x boundp 1 ((byte-code "\204\301\302!\210\301\207" [enabled iswitchb-mode -1] 2)) #[nil "\303\304\305\306\205		\"\"\211\207" [arg erc-server-process iswitchb-temp-buflist mapcar buffer-name erc-buffer-list nil] 5] switch-to-buffer iswitchb-read-buffer "Switch-to: " buffer-name last t] 7 (#$ . 67612) "P"])
#@142 Return a list of channel buffers.
PROC is the process for the server connection.  If PROC is nil, return
all channel buffers on all servers.
(defalias 'erc-channel-list #[(proc) "\301\302\"\207" [proc erc-buffer-filter #[nil "\300 \205	\301\300 !\207" [erc-default-target erc-channel-p] 2]] 3 (#$ . 68593)])
#@65 Return buffers containing NICK in the `erc-channel-users' list.
(defalias 'erc-buffer-list-with-nick #[(nick proc) "r\305!q\210\306\307	!\n\"\211\205\"\310H\f>\204\311\312\313\314#\210\315H*\207" [proc nick erc-server-users user cl-struct-erc-server-user-tags process-buffer gethash erc-downcase 0 error "%s accessing a non-%s" erc-server-user-buffers erc-server-user 6] 5 (#$ . 68909)])
#@51 List of default recipients of the current buffer.
(defvar erc-default-recipients nil (#$ . 69310))
(make-variable-buffer-local 'erc-default-recipients)
#@46 Full name of the user on the current server.
(defvar erc-session-user-full-name nil (#$ . 69468))
(make-variable-buffer-local 'erc-session-user-full-name)
#@29 Limit of users per channel.
(defvar erc-channel-user-limit nil (#$ . 69629))
(make-variable-buffer-local 'erc-channel-user-limit)
#@29 Key needed to join channel.
(defvar erc-channel-key nil (#$ . 69765))
(make-variable-buffer-local 'erc-channel-key)
#@26 Last invitation channel.
(defvar erc-invitation nil (#$ . 69887))
(make-variable-buffer-local 'erc-invitation)
#@138 Non-nil indicates that we are away.

Use `erc-away-time' to access this if you might be in a channel
buffer rather than a server buffer.
(defvar erc-away nil (#$ . 70005))
(make-variable-buffer-local 'erc-away)
#@22 Server channel list.
(defvar erc-channel-list nil (#$ . 70222))
(make-variable-buffer-local 'erc-channel-list)
#@71 Non-nil indicates that we got a `nick in use' error while connecting.
(defvar erc-bad-nick nil (#$ . 70339))
(make-variable-buffer-local 'erc-bad-nick)
#@42 Non-nil indicates that we are logged in.
(defvar erc-logged-in nil (#$ . 70497))
(make-variable-buffer-local 'erc-logged-in)
#@66 The local copy of `erc-nick' - the list of nicks to choose from.
(defvar erc-default-nicks nil (#$ . 70628))
(make-variable-buffer-local 'erc-default-nicks)
#@75 Used to keep track of how many times an attempt at changing nick is made.
(defvar erc-nick-change-attempt-count 0 (#$ . 70791))
(make-variable-buffer-local 'erc-nick-change-attempt-count)
#@47 Migrate old names of ERC modules to new ones.
(defalias 'erc-migrate-modules #[(mods) "\302\303\304\305	\"!)\207" [transforms mods ((pcomplete . completion)) erc-delete-dups mapcar #[(m) "\302	\"A\206	\207" [m transforms assoc] 3]] 4 (#$ . 70985)])
#@231 A list of modules which ERC should enable.
If you set the value of this without using `customize' remember to call
(erc-update-modules) after you change it.  When using `customize', modules
removed from the list will be disabled.
(custom-declare-variable 'erc-modules ''(netsplit fill button match track completion readonly networks ring autojoin noncommands irccontrols move-to-prompt stamp menu list) '(#$ . 71245) :get #[(sym) "\301J!\207" [sym erc-migrate-modules] 2] :set #[(sym val) "\306\300!\203I\203I	\203I\307\211\203H@\211	\235\204A\310\311\312\n\"!\313\f!\203@\306\f!\203@\fJ\203@\314\315\n\"\210\f\316!\210)A\211\204*
	L\210\313\317!\205U\317 \207" [erc-modules val module --dolist-tail-- f sym boundp nil intern-soft format "erc-%s-mode" fboundp message "Disabling `erc-%s'" 0 erc-update-modules] 5] :type '(set :greedy t (const :tag "autoaway: Set away status automatically" autoaway) (const :tag "autojoin: Join channels automatically" autojoin) (const :tag "button: Buttonize URLs, nicknames, and other text" button) (const :tag "capab: Mark unidentified users on servers supporting CAPAB" capab-identify) (const :tag "completion: Complete nicknames and commands (programmable)" completion) (const :tag "hecomplete: Complete nicknames and commands (obsolete, use \"completion\")" hecomplete) (const :tag "dcc: Provide Direct Client-to-Client support" dcc) (const :tag "fill: Wrap long lines" fill) (const :tag "identd: Launch an identd server on port 8113" identd) (const :tag "irccontrols: Highlight or remove IRC control characters" irccontrols) (const :tag "keep-place: Leave point above un-viewed text" keep-place) (const :tag "list: List channels in a separate buffer" list) (const :tag "log: Save buffers in logs" log) (const :tag "match: Highlight pals, fools, and other keywords" match) (const :tag "menu: Display a menu in ERC buffers" menu) (const :tag "move-to-prompt: Move to the prompt when typing text" move-to-prompt) (const :tag "netsplit: Detect netsplits" netsplit) (const :tag "networks: Provide data about IRC networks" networks) (const :tag "noncommands: Don't display non-IRC commands after evaluation" noncommands) (const :tag "notify: Notify when the online status of certain users changes" notify) (const :tag "notifications: Send notifications on PRIVMSG or nickname mentions" notifications) (const :tag "page: Process CTCP PAGE requests from IRC" page) (const :tag "readonly: Make displayed lines read-only" readonly) (const :tag "replace: Replace text in messages" replace) (const :tag "ring: Enable an input history" ring) (const :tag "scrolltobottom: Scroll to the bottom of the buffer" scrolltobottom) (const :tag "services: Identify to Nickserv (IRC Services) automatically" services) (const :tag "smiley: Convert smileys to pretty icons" smiley) (const :tag "sound: Play sounds when you receive CTCP SOUND requests" sound) (const :tag "stamp: Add timestamps to messages" stamp) (const :tag "spelling: Check spelling" spelling) (const :tag "track: Track channel activity in the mode-line" track) (const :tag "truncate: Truncate buffers to a certain size" truncate) (const :tag "unmorse: Translate morse code in messages" unmorse) (const :tag "xdcc: Act as an XDCC file-server" xdcc) (repeat :tag "Others" :inline t symbol)) :group 'erc)
#@67 Run this to enable erc-foo-mode for all modules in `erc-modules'.
(defalias 'erc-update-modules #[nil "\305	\305\211\205e@\306\307\n!P\211\310\230\203\311\202<\312\230\203)\313\202<\313\230\2034\314\202<\315\230\203<\316\305\317\320\217\210\321\306\307\n!\322Q!\323\f!\203W\f\324!\210\202\\\325\326\n\"\210)A\211\204\n\305+\207" [req erc-modules mod --dolist-tail-- sym nil "erc-" symbol-name "erc-capab-identify" "erc-capab" "erc-completion" "erc-pcomplete" completion "erc-autojoin" "erc-join" (byte-code "\301\302!!\207" [req require intern] 3) ((error)) intern-soft "-mode" fboundp 1 error "`%s' is not a known ERC module"] 5 (#$ . 74558)])
#@65 Consults `erc-join-buffer' to find out how to display `BUFFER'.
(defalias 'erc-setup-buffer #[(buffer) "\306=\203\307 \203\310	!\207\311	!\207\312=\203\310	!\207\313=\203%\314\207\305=\203W\n\2037\315	\316\"?\205c\317\206=\f!\320
!\210\321
!\210)\322	!\210\205V\323\324 \316\"\207\307 \203`\310	!\207\322	!\207" [erc-join-buffer buffer erc-reuse-frames erc-frame-alist default-frame-alist frame window active-minibuffer-window display-buffer switch-to-buffer-other-window window-noselect bury nil get-buffer-window t make-frame raise-frame select-frame switch-to-buffer set-window-dedicated-p selected-window erc-frame-dedicated-flag] 3 (#$ . 75238)])
#@365 Connect to SERVER on PORT as NICK with FULL-NAME.

If CONNECT is non-nil, connect to the server.  Otherwise assume
already connected and just create a separate buffer for the new
target CHANNEL.

Use PASSWD as user password on the server.  If TGT-LIST is
non-nil, use it to initialize `erc-default-recipients'.

Returns the buffer for the given server or channel.
(defalias 'erc-open #[(&optional server port nick full-name connect passwd tgt-list channel process) "\306\301!\205
	\230\205
\n?\205\f\307
/#p\310\211012345\2034\311\312
6$\210\313 \2103q\210`1\314 \2105478\315 9\315 :db\210\316y\210\317`\320\"\203p\3210:\322`\320\"\206md\310\223\2100\204{db\210\323c\2109`\310\223\210;<\310=\203\230\324\325\326\">\310?\202\241\310>\324\325\326\"?\310@\327A\310\211BC\3303!\210\310\211DE\310\211FGH:\203\311H\202\314HCIJ\206\367\331\332\333\334\335\3366\337
\340\341&\n@\342\"K\343K!\203\364K \202\366K)LM\205\344\345\346Q!N0\204db\210\323c\2100\2031b\210\202)9`\310\223\210\347 \210db\210\350
6O$\210\311\3513\"\210\203D\352	P3#\210\353 \21032=\204aM\203\\\354\35523#\210\3563!\2103.\207" [server erc-session-server erc-server-announced-name connect erc-server-connected port boundp erc-get-buffer-create nil run-hook-with-args erc-before-connect erc-update-modules erc-mode make-marker 0 get-text-property erc-prompt t next-single-property-change "\n" make-hash-table :test equal "" erc-set-active-buffer plist-get auth-source-search :host :max 1 :user :port :require (:secret) :secret functionp get-buffer-create "*ERC-DEBUG: " "*" erc-display-prompt erc-determine-parameters erc-connect-pre-hook erc-server-connect erc-update-mode-line message "erc: old buffer %s, switching to %s" erc-setup-buffer channel continued-session old-point old-buffer buffer connected-p server-announced-name nick process erc-server-process erc-insert-marker erc-input-marker tgt-list erc-default-recipients erc-server-current-nick erc-server-users erc-channel-users erc-server-filter-data erc-channel-topic erc-channel-user-limit erc-channel-key erc-invitation erc-channel-list erc-bad-nick erc-logged-in erc-nick erc-default-nicks passwd secret erc-session-password erc-log-p erc-dbuf full-name erc-session-port] 13 (#$ . 75918)])
#@103 Initialize the `erc-last-saved-position' marker to a sensible position.
BUFFER is the current buffer.
(defalias 'erc-initialize-log-marker #[(buffer) "rq\210\303 \211\304\n!S\305\223)\207" [buffer erc-last-saved-position erc-insert-marker make-marker marker-position nil] 4 (#$ . 78243)])
#@48 IRC server interactive selection history list.
(defvar erc-server-history-list nil (#$ . 78540))
#@46 Nickname interactive selection history list.
(defvar erc-nick-history-list nil (#$ . 78643))
#@216 Return the buffers corresponding to a NICK on PORT of a session SERVER.
This is determined by looking for the appropriate buffer and checking
whether the connection is still alive.
If no buffer matches, return nil.
(defalias 'erc-already-logged-in #[(server port nick) "\300\301!\207" [erc-buffer-list #[nil "\305 \205	\230\205\306\n\"\205\307\f!\207" [erc-session-server server erc-session-port port nick erc-server-process-alive erc-port-equal erc-current-nick-p] 3]] 2 (#$ . 78743)])
(byte-code "\300\301!\204\302\301\303\"\210\304\305\306\307\310\311\312\313&\210\304\314\306\315\310\311\312\313&\207" [fboundp read-passwd defalias #[(prompt) "\301!\207" [prompt read-from-minibuffer] 2 "Substitute for `read-passwd' in early emacsen."] custom-declare-variable erc-before-connect nil "Hook called before connecting to a server.\nThis hook gets executed before `erc' actually invokes `erc-mode'\nwith your input data.  The functions in here get called with three\nparameters, SERVER, PORT and NICK." :group erc-hooks :type hook erc-after-connect "Hook called after connecting to a server.\nThis hook gets executed when an end of MOTD has been received.  All\nfunctions in here get called with the parameters SERVER and NICK."] 8)
#@65 Prompt the user for values of nick, server, port, and password.
(defalias 'erc-select-read-args #[nil "\306\211\211\211\211\307\310\311 \306\211\312%\313\314\f\"\203)\315\316\317\f\"!\316\320\f\"\2023\315\307\321\322\323 !\"!\313\324\f\"\203G\316\320\f\"\316\317\f\"\202g\325\n	#\203]\307\326\327\330	#	\306\211\331%\202f\307\332\333	!\306\211\331%\f
\203\203%\203}\334\335!\203}%\202\205\336\337!\202\205%\211\203\222\340\230\203\222\306\325\n	#\203\251\307\326\327\330	#	\306\211\331%\202\222\341\342\n\343	\344\257-\207" [passwd nick port server user-input erc-prompt-for-password nil read-from-minibuffer "IRC server: " erc-compute-server erc-server-history-list string-match "\\(.*\\):\\(.*\\)\\'" erc-string-to-port match-string 2 1 "IRC port: " erc-port-to-string erc-compute-port "\\`\\(.*\\)@\\(.*\\)" erc-already-logged-in erc-format-message nick-in-use 110 erc-nick-history-list "Nickname: " erc-compute-nick y-or-n-p "Use the default password? " read-passwd "Password: " "" :server :port :nick :password erc-password] 9 (#$ . 79995)])
#@790 ERC is a powerful, modular, and extensible IRC client.
This function is the main entry point for ERC.

It permits you to select connection parameters, and then starts ERC.

Non-interactively, it takes the keyword arguments
   (server (erc-compute-server))
   (port   (erc-compute-port))
   (nick   (erc-compute-nick))
   password
   (full-name (erc-compute-full-name)))

That is, if called with

   (erc :server "irc.freenode.net" :full-name "Harry S Truman")

then the server and full-name will be set to those values, whereas
`erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will
be invoked for the values of the other parameters.

(fn &key (SERVER (erc-compute-server)) (PORT (erc-compute-port)) (NICK (erc-compute-nick)) PASSWORD (FULL-NAME (erc-compute-full-name)))
(defalias 'erc #[(&rest #1=#:--cl-rest--) "\306>\206\n\307\310 DA@\311>\206\307\312 DA@\313>\206$\307\314 DA@\315>A@\316>\2067\307\317 DA@\203m@\320>\203TAA\211\202?\321>A@\203c\307\211\202?\322\323@\"\210\202=)\324	\n
\325\f&-\207" [#1# server port nick password full-name :server nil erc-compute-server :port erc-compute-port :nick erc-compute-nick :password :full-name erc-compute-full-name (:server :port :nick :password :full-name :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:server :port :nick :password :full-name)" erc-open t #2=#:--cl-keys--] 8 (#$ . 81089) (erc-select-read-args)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias erc-select erc erc-ssl erc-tls] 3)
#@98 Interactively select TLS connection parameters and run ERC.
Arguments are the same as for `erc'.
(defalias 'erc-tls #[(&rest r) "\302\303\304	\")\207" [erc-server-connect-function r erc-open-tls-stream apply erc] 3 (#$ . 82642) (erc-select-read-args)])
#@159 Open an TLS stream to an IRC server.
The process will be given the name NAME, its target buffer will be
BUFFER.  HOST and PORT specify the connection target.
(defalias 'erc-open-tls-stream #[(name buffer host port) "\304	\n\305\306&\207" [name buffer host port open-network-stream :type tls] 7 (#$ . 82903)])
#@184 Pass ARGS to `format', and display the result as an error message.
If `debug-on-error' is set to non-nil, then throw a real error with this
message instead, to make debugging easier.
(defalias 'erc-error #[(&rest args) "\203	\302\303	\"\207\302\304	\"\210\305 \207" [debug-on-error args apply error message beep] 3 (#$ . 83222)])
#@386 If non-nil, log all IRC protocol traffic to the buffer "*erc-protocol*".

The buffer is created if it doesn't exist.

NOTE: If this variable is non-nil, and you kill the only
visible "*erc-protocol*" buffer, it will be recreated shortly,
but you won't see it.

WARNING: Do not set this variable directly!  Instead, use the
function `erc-toggle-debug-irc-protocol' to toggle its value.
(defvar erc-debug-irc-protocol nil (#$ . 83561))
#@271 Append STRING to the buffer *erc-protocol*.

This only has any effect if `erc-debug-irc-protocol' is non-nil.

The buffer is created if it doesn't exist.

If OUTBOUND is non-nil, STRING is being sent to the IRC server
and appears in face `erc-input-face' in the buffer.
(defalias 'erc-log-irc-protocol #[(string &optional outbound) "\205\217\306\307\310\217\206\f\311r\312\313!q\210\212db\210\314\204O\315\316\317\f\320\"\"\316\211\306 \211!\203I!@ 
	\321 \322\260!A\211!\2042*
*\202c\323	\324\f\211\211GSH\325U?\205_\322R\326\327#c\210*\330 \331p\314\"\"#\"\205\216\332\"!\210\333`d\"\334U\203\212db\210\335\336!\210\332#!,\207" [erc-debug-irc-protocol network-name inhibit-read-only outbound string result nil (erc-network-name) ((error)) "???" get-buffer-create "*erc-protocol*" t delete "" split-string "\n\\|
\n" " << " "\n" erc-propertize " >> " 10 face erc-input-face selected-window get-buffer-window select-window count-lines 1 recenter -1 lines line --dolist-tail-- debug-buffer-window orig-win] 7 (#$ . 84002)])
#@99 Toggle the value of `erc-debug-irc-protocol'.

If ARG is non-nil, show the *erc-protocol* buffer.
(defalias 'erc-toggle-debug-irc-protocol #[(&optional arg) "\304\305!rq\210\306 \210\307 \204'\310\311\312!c\210\311\313!c\210)\314\315 !\210\316\317\320\"\210\321\322\323\324\325$\210db\210\310\311\326\327\n\203>\330\202?\331\332 #!c\210*\n?\203Y\333\305\310\"\204Y\334\310\"\210\335\336\n\203c\331\202d\330\")\207" [buf inhibit-read-only erc-debug-irc-protocol arg get-buffer-create "*erc-protocol*" erc-view-mode-enter current-local-map t erc-make-notice "This buffer displays all IRC protocol traffic exchanged with each server.\n" "Kill this buffer to terminate protocol logging.\n\n" use-local-map make-sparse-keymap local-set-key "t" erc-toggle-debug-irc-protocol add-hook kill-buffer-hook #[nil "\301\211\207" [erc-debug-irc-protocol nil] 2] nil local format "IRC protocol logging %s at %s -- Press `t' to toggle logging.\n" "disabled" "enabled" current-time-string get-buffer-window display-buffer message "IRC protocol traffic logging %s (see buffer *erc-protocol*)."] 5 (#$ . 85061) "P"])
#@55 Send CTCP ACTION information described by STR to TGT.
(defalias 'erc-send-action #[(tgt str &optional force) "\303\304\305	\"\n#\210\306\307\310p\311\312\313 \314	\315\316\317\316&\f\207" [tgt str force erc-send-ctcp-message format "ACTION %s" erc-display-message nil input ACTION 110 erc-current-nick 97 117 "" 104] 13 (#$ . 86180)])
#@97 Check whether STRING is invisible or not.
I.e. any char in it has the `invisible' property set.
(defalias 'erc-string-invisible-p #[(string) "\301\302G\303\304%\207" [string text-property-any 0 invisible t] 6 (#$ . 86522)])
#@228 Whether to remove the erc-parsed text property after displaying a message.

The default is to remove it, since it causes ERC to take up extra
memory.  If you have code that relies on this property, then set
this option to nil.
(custom-declare-variable 'erc-remove-parsed-property t '(#$ . 86755) :type 'boolean :group 'erc)
#@375 Display STRING in `erc-mode' BUFFER.
Auxiliary function used in `erc-display-line'.  The line gets filtered to
interpret the control characters.  Then, `erc-insert-pre-hook' gets called.
If `erc-insert-this' is still t, STRING gets inserted into the buffer.
Afterwards, `erc-insert-modify' and `erc-insert-post-hook' get called.
If STRING is nil, the function does nothing.
(defalias 'erc-display-line-1 #[(string buffer) "\205\222r	\206\f\306\n!q\210\307!\206d\310\211\311\312\"\2046\313P\314!\2036\315\316G\317$\210\320\321\322\"\323\321\324	\"\260 \205L\325!)\210\310!\326\327\"\210!\204a\310!\202\205\212\214~\210\fb\210\330!\210\214\f`}\210\331\332!\210\331\333!\210\"\203\204\334ed\335#\210++\336\307!\206\216d\fZ!*\207" [string buffer erc-server-process erc-insert-marker insert-position inhibit-read-only process-buffer marker-position t string-match "\n$" "\n" erc-string-invisible-p erc-put-text-properties 0 (invisible intangible) "erc-display-line: " format "(%S)" " in buffer " "%s" erc-log-aux run-hook-with-args erc-insert-pre-hook insert-before-markers run-hooks erc-insert-modify-hook erc-insert-post-hook remove-text-properties (erc-parsed nil) erc-update-undo-list buffer-undo-list erc-log-p erc-insert-this erc-remove-parsed-property] 7 (#$ . 87086)])
(defalias 'erc-update-undo-list #[(shift) "\306!\206		:??\205\237	\307\211\205\236@\211\250\203*\211\211@\\\240\210)\202\226\n:\203\226\310\n@!\204\226\n@\250\203T\n\211\211@\\\240\210)\n\211
\211A\\\241\210)\202\226\n@;\203u\n\211\211A\311\nA!\203k\312\202l\313_\\\241\210)\202\226\n@\204\226\314\n\233\211\211\211@\\\240\210)\211\211A\\\241\210*A\211\204\307*\207" [shift buffer-undo-list elt list #1=#:v #2=#:v zerop nil markerp natnump 1 -1 3 #3=#:v #4=#:v cons #5=#:v #6=#:v] 5])
#@62 Regexp which matches all valid characters in a IRC nickname.
(defvar erc-valid-nick-regexp "[]a-zA-Z^[;\\`_{}|][]^[;\\`_{}|a-zA-Z0-9-]*" (#$ . 88930))
#@40 Check if NICK is a valid IRC nickname.
(defalias 'erc-is-valid-nick-p #[(nick) "\302\303\304Q	\"\207" [erc-valid-nick-regexp nick string-match "^" "$"] 4 (#$ . 89087)])
#@563 Display STRING in the ERC BUFFER.
All screen output must be done through this function.  If BUFFER is nil
or omitted, the default ERC buffer for the `erc-session-server' is used.
The BUFFER can be an actual buffer, a list of buffers, 'all or 'active.
If BUFFER = 'all, the string is displayed in all the ERC buffers for the
current session.  'active means the current active buffer
(`erc-active-buffer').  If the buffer can't be resolved, the current
buffer is used.  `erc-display-line-1' is used to display STRING.

If STRING is nil, the function does nothing.
(defalias 'erc-display-line #[(string &optional buffer) "\306\307\310\n!\203\nC\202Q\n<\203\n\202Q\311\n!\203%\312\n!C\202Q\n\313=\2032\314\307\"\202Q\n\315=\203C\316 \203C\316 C\202Q\317 \203O\312!C\202QpC\307\211\203s
@\320\f!\203l\321\f\"\210\322\300\f\"\210
A\211\204X*?\205\215\317 \203\210\321\312!\"\202\215\321p\"*\207" [new-bufs inhibit-point-motion-hooks buffer erc-server-process buf --dolist-tail-- t nil bufferp processp process-buffer all erc-buffer-list active erc-active-buffer erc-server-buffer-live-p buffer-live-p erc-display-line-1 add-to-list string] 5 (#$ . 89264)])
#@102 Highlight STRING according to TYPE, where erc-TYPE-face is an ERC face.

See also `erc-make-notice'.
(defalias 'erc-display-message-highlight #[(type string) "\302=\203\n\303	!\207\304\305	G\306\307\310\311!\312Q!\206\313	%\210	\207" [type string notice erc-make-notice erc-put-text-property 0 face intern-soft "erc-" symbol-name "-face" "erc-default-face"] 8 (#$ . 90459)])
#@388 Track the time of the last PRIVMSG for each (server,nick) pair.

This is implemented as a hash of hashes, where the outer key is
the canonicalized server name (as returned by
`erc-canonicalize-server-name') and the outer value is a hash
table mapping nicks (as returned by `erc-lurker-maybe-trim') to
the times of their most recently received PRIVMSG on any channel
on the given server.
(defvar erc-lurker-state nil (#$ . 90846))
#@188 If t, trim trailing `erc-lurker-ignore-chars' from nicks.

This causes e.g. nick and nick` to be considered as the same
individual for activity tracking and lurkiness detection
purposes.
(custom-declare-variable 'erc-lurker-trim-nicks t '(#$ . 91283) :group 'erc-lurker :type 'boolean)
#@126 Maybe trim trailing `erc-lurker-ignore-chars' from NICK.

Returns NICK unmodified unless `erc-lurker-trim-nicks' is
non-nil.
(defalias 'erc-lurker-maybe-trim #[(nick) "\203\303\304\305\306\307	\310#\"\310\n#\207\n\207" [erc-lurker-trim-nicks erc-lurker-ignore-chars nick replace-regexp-in-string format "[%s]" mapconcat #[(char) "\301\302!!\207" [char regexp-quote char-to-string] 3] ""] 7 (#$ . 91576)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\313&\210\300\314\315\316\304\305\306\317&\207" [custom-declare-variable erc-lurker-ignore-chars "`_" "Characters at the end of a nick to strip for activity tracking purposes.\n\nSee also `erc-lurker-trim-nicks'." :group erc-lurker :type string erc-lurker-hide-list nil "List of IRC type messages to hide when sent by lurkers.\n\nA typical value would be '(\"JOIN\" \"PART\" \"QUIT\").\nSee also `erc-lurker-p' and `erc-hide-list'." erc-message-type erc-lurker-threshold-time (* 60 60 24) "Nicks from which no PRIVMSGs have been received within this\ninterval (in units of seconds) are considered lurkers by\n`erc-lurker-p' and as a result their messages of types in\n`erc-lurker-hide-list' will be hidden." integer] 8)
#@251 Initialize ERC lurker tracking functionality.

This function adds `erc-lurker-update-status' to
`erc-insert-pre-hook' in order to record the time of each nick's
most recent PRIVMSG as well as initializing the state variable
storing this information.
(defalias 'erc-lurker-initialize #[nil "\301\302\303\"\304\305\306\"\207" [erc-lurker-state make-hash-table :test equal add-hook erc-insert-pre-hook erc-lurker-update-status] 3 (#$ . 92792)])
#@182 Remove all last PRIVMSG state older than `erc-lurker-threshold-time'.

This should be called regularly to avoid excessive resource
consumption for long-lived IRC or Emacs sessions.
(defalias 'erc-lurker-cleanup #[nil "\301\302\"\207" [erc-lurker-state maphash #[(server hash) "\303\304\"\210\305\306!!\205\307	\n\"\207" [hash server erc-lurker-state maphash #[(nick last-PRIVMSG-time) "\304\305\306 \"!	V\205\307\n\"\207" [last-PRIVMSG-time erc-lurker-threshold-time nick hash time-to-seconds time-subtract current-time remhash] 4] zerop hash-table-count remhash] 3]] 3 (#$ . 93242)])
#@71 Internal counter variable for use with `erc-lurker-cleanup-interval'.
(defvar erc-lurker-cleanup-count 0 (#$ . 93842))
#@345 Specifies frequency of cleaning up stale erc-lurker state.

`erc-lurker-update-status' calls `erc-lurker-cleanup' once for
every `erc-lurker-cleanup-interval' updates to
`erc-lurker-state'.  This is designed to limit the memory
consumption of lurker state during long Emacs sessions and/or ERC
sessions with large numbers of incoming PRIVMSGs.
(defvar erc-lurker-cleanup-interval 100 (#$ . 93968))
#@664 Update `erc-lurker-state' if necessary.

This function is called from `erc-insert-pre-hook'.  If the
current message is a PRIVMSG, update `erc-lurker-state' to
reflect the fact that its sender has issued a PRIVMSG at the
current time.  Otherwise, take no action.

This function depends on the fact that `erc-display-message'
dynamically binds `parsed', which is used to check if the current
message is a PRIVMSG and to determine its sender.  See also
`erc-lurker-trim-nicks' and `erc-lurker-ignore-chars'.

In order to limit memory consumption, this function also calls
`erc-lurker-cleanup' once every `erc-lurker-cleanup-interval'
updates of `erc-lurker-state'.
(defalias 'erc-lurker-update-status #[(message) "\306\300!\205}\307!\205}G\310Y\205}\311H	>\205}\311H	>\204)\312\313\314\315#\210\316H\317\320\311H	>\204=\312\313\321\315#\210\322H!@!\323\f!\n\324\232\205|T\211Y\203`\311\325 \210\326
\"\204r\327
\330\331\332\"#\210\327\333 \326
\"#+\207" [parsed cl-struct-erc-response-tags command sender erc-server-announced-name server boundp vectorp 6 0 error "%s accessing a non-%s" erc-response\.command erc-response 3 erc-lurker-maybe-trim erc-parse-user erc-response\.sender 2 erc-canonicalize-server-name "PRIVMSG" erc-lurker-cleanup gethash puthash make-hash-table :test equal current-time erc-lurker-cleanup-count erc-lurker-cleanup-interval erc-lurker-state] 6 (#$ . 94373)])
#@242 Predicate indicating NICK's lurking status on the current server.

Lurking is the condition where NICK has issued no PRIVMSG on this
server within `erc-lurker-threshold-time'.  See also
`erc-lurker-trim-nicks' and `erc-lurker-ignore-chars'.
(defalias 'erc-lurker-p #[(nick) "\204\306 \210\307	!\310\311!\310\n\312 #\"\211?\206%\313\314\315 \f\"!
V*\207" [erc-lurker-state erc-server-announced-name server nick last-PRIVMSG-time erc-lurker-threshold-time erc-lurker-initialize erc-canonicalize-server-name gethash erc-lurker-maybe-trim make-hash-table time-to-seconds time-subtract current-time] 7 (#$ . 95799)])
#@151 Returns the canonical network name for SERVER if any,
otherwise `erc-server-announced-name'.  SERVER is matched against
`erc-common-server-suffixes'.
(defalias 'erc-canonicalize-server-name #[(server) "\205\304\305	\"\211@A)\206\207" [server erc-common-server-suffixes x erc-server-announced-name erc-remove-if-not #[(net) "\302@	\"\207" [net server string-match] 3]] 4 (#$ . 96426)])
#@280 Predicate indicating whether the parsed ERC response PARSED should be hidden.

Messages are always hidden if the message type of PARSED appears in
`erc-hide-list'.  In addition, messages whose type is a member of
`erc-lurker-hide-list' are hidden if `erc-lurker-p' returns true.
(defalias 'erc-hide-current-message-p #[(parsed) "\306H	>\204\307\310\311\312#\210\313H\314\306H	>\204!\307\310\315\312#\210\316H!@\n\f\235\2066\n
\235\2056\317!*\207" [parsed cl-struct-erc-response-tags command sender erc-hide-list erc-lurker-hide-list 0 error "%s accessing a non-%s" erc-response\.command erc-response 3 erc-parse-user erc-response\.sender 2 erc-lurker-p] 5 (#$ . 96826)])
#@136 Display MSG in BUFFER.

ARGS, PARSED, and TYPE are used to format MSG sensibly.

See also `erc-format-message' and `erc-display-line'.
(defalias 'erc-display-message #[(parsed type buffer msg &rest args) "9\203
\306\307	#\202\204\n\202.<\203%\310\311\"\210\n\202.9\205.\312\n\"\313\f!\203D\fG\314Y\203D\f\315H
>\204L\316\n\"\202j\317\f!?\205j\320\315\nG\321\f\n%\210\320\315\nG\322\323\n%\210\316\n\")\207" [msg args string type parsed cl-struct-erc-response-tags apply erc-format-message mapc #[(type) "\302	\"\211\207" [type string erc-display-message-highlight] 3] erc-display-message-highlight vectorp 6 0 erc-display-line erc-hide-current-message-p erc-put-text-property erc-parsed rear-sticky t buffer] 6 (#$ . 97516)])
#@141 Return non-nil if the erc-parsed text-property at POSITION is in LIST.

This function relies on the erc-parsed text-property being
present.
(defalias 'erc-message-type-member #[(position list) "\304!\211\205	\305H\n>\204\306\307\310\311#\210	\312H\235)\207" [position prop-val cl-struct-erc-response-tags list erc-get-parsed-vector 0 error "%s accessing a non-%s" erc-response\.command erc-response 3] 5 (#$ . 98279)])
(defvar erc-send-input-line-function 'erc-send-input-line)
(make-variable-buffer-local 'erc-send-input-line-function)
#@51 Send LINE to TARGET.

See also `erc-server-send'.
(defalias 'erc-send-input-line #[(target line &optional force) "\303\304	\305\230\203
\306\202	#\307	\n#\207" [target line force format "PRIVMSG %s :%s" "\n" " \n" erc-server-send] 5 (#$ . 98829)])
#@60 Return the argument list of a function without the parens.
(defalias 'erc-get-arglist #[(fun) "\302\303\304!\"\305\306	\"\203\307\310	\"\202	)\207" [fun arglist format "%S" erc-function-arglist string-match "^(\\(.*\\))$" match-string 1] 4 (#$ . 99089)])
#@103 Return non-nil if STR is an ERC command that can be run when the process
is not alive, nil otherwise.
(defalias 'erc-command-no-process-p #[(str) "\302!\211\205	@9\205	@\303N)\207" [str fun erc-extract-command-from-line process-not-needed] 3 (#$ . 99357)])
#@107 For CMD being the function name of a ERC command, something like
erc-cmd-FOO, this returns a string /FOO.
(defalias 'erc-command-name #[(cmd) "\302!\303\304	\"\203\305\306\307	\"P\202	)\207" [cmd command-name symbol-name string-match "^erc-cmd-\\(.*\\)$" "/" match-string 1] 4 (#$ . 99627)])
#@530 Translate LINE to an RFC1459 command and send it based.
Returns non-nil if the command is actually sent to the server, and nil
otherwise.

If the command in the LINE is not bound as a function `erc-cmd-<COMMAND>',
it is passed to `erc-cmd-default'.  If LINE is not a command (i.e. doesn't
start with /<COMMAND>) then it is sent as a message.

An optional FORCE argument forces sending the line when flood
protection is in effect.  The optional NO-COMMAND argument prohibits
this function from interpreting the line as a command.
(defalias 'erc-process-input-line #[(line &optional force no-command) "\306!\211\203\n\204	@	A@\307\310\311\217*\2025\312 \211\203,
#\2024\313\307\314p\315$\210\307))\207" [line command-list no-command cmd args r erc-extract-command-from-line nil (byte-code "<\203\n\302	\"\207	!\207" [args cmd apply] 3) ((wrong-number-of-arguments (byte-code "\301\302\303p\304\305\306!\307\310!\206\311\312\313\314\315!\206\311\"&\n\210\302\207" [cmd erc-display-message nil error incorrect-args 99 erc-command-name 117 erc-get-arglist "" 100 format "%s\n" documentation] 14))) erc-default-target erc-display-message error no-target erc-send-input-line-function force] 6 (#$ . 99932)])
#@66 Send LINE to all channels of the current server that you are on.
(defalias 'erc-cmd-AMSG #[(line) "\303!\304\305\306\307\310\n	\"\"*\207" [line #1=#:pro #2=#:pre erc-trim-string nil #[nil "\300\301 !\207" [erc-channel-p erc-default-target] 2] mapcar #[(buffer) "rq\210\302	!)\207" [buffer line erc-send-message] 2] erc-buffer-list] 6 (#$ . 101167) "sSend to all channels you're on: "])
(put 'erc-cmd-AMSG 'do-not-parse-args t)
#@249 Send LINE to the current query or channel as a message, not a command.

Use this when you want to send a message with a leading '/'.  Note
that since multi-line messages are never a command, you don't
need this when pasting multiple lines of text.
(defalias 'erc-cmd-SAY #[(line) "\301\302\"?\205\301\303\"\210\304\305\306\"\307\310#\207" [line string-match "^\\s-*$" "^ ?\\(.*\\)" erc-process-input-line match-string 1 nil t] 4 (#$ . 101606)])
(put 'erc-cmd-SAY 'do-not-parse-args t)
#@123 Set the variable named by the first word in LINE to some VALUE.
VALUE is computed by evaluating the rest of LINE in Lisp.
(defalias 'erc-cmd-SET #[(line) "\303\304\"\203^\305\306\307\310\"P!\305\307\311\"!\312\n!\2032\n\313	!L\210\314\315\211\316\317\320\n	#$\210\321\202\\\305\307\310\"!\312\n!\203T\n\313	!L\210\314\315\211\316\317\320\n	#$\210\321\202\\\314\315\322\316\323$\210\315*\207\303\324\"\203w\325\326\327\330\331\332\333\334\335\"\"\"Pp\"\210\321\207\315\207" [line val var string-match "^\\s-*\\(\\S-+\\)\\s-+\\(.*\\)$" read "erc-" match-string 1 2 boundp eval erc-display-message nil active format "Set %S to %S" t error variable-not-bound "^\\s-*$" erc-display-line "Available user variables:\n" apply concat mapcar #[(var) "J\302\303\"	:\203\304\305	!P\202\302\306	\"P)\207" [var val format "%S:" "\n" pp-to-string " %S\n"] 4] apropos-internal "^erc-" custom-variable-p] 9 (#$ . 102103)])
(byte-code "\300\301\302\"\210\300\303\302\"\210\304\302\305\306#\210\304\302\307\306#\207" [defalias erc-cmd-VAR erc-cmd-SET erc-cmd-VARIABLE put do-not-parse-args t process-not-needed] 4)
#@193 Fallback command.

Commands for which no erc-cmd-xxx exists, are tunneled through
this function.  LINE is sent to the server verbatim, and
therefore has to contain the command itself as well.
(defalias 'erc-cmd-default #[(line) "\303\304\"\n\205\f\305	!)\210\306\307\310O!\210\311\207" [line string erc-log-p format "cmd: DEFAULT: %s" erc-log-aux erc-server-send 1 nil t] 4 (#$ . 103227)])
#@138 Ignore USER.  This should be a regexp matching nick!user@host.
If no USER argument is specified, list the contents of `erc-ignore-list'.
(defalias 'erc-cmd-IGNORE #[(&optional user) "\203:\306!	\230\204\307\310\311	\"!\203	\312\313\310\314\"!\315\"\210\316 \317\n!\2036r\nq\210\320\304\"\210)*\202r\316 \317!\205Irq\210\f))\204W\312\313\321!\315\"\210\202r\312\313\322!\315\"\210\323\324\316 \317
!\205or
q\210\f))\"\210\325\207" [user quoted #1=#:buffer #2=#:buffer erc-ignore-list #3=#:buffer regexp-quote y-or-n-p format "Use regexp-quoted form (%s) instead? " erc-display-line erc-make-notice "Now ignoring %s" active erc-server-buffer buffer-live-p add-to-list "Ignore list is empty" "Ignore list:" mapc #[(item) "\301\302!\303\"\207" [item erc-display-line erc-make-notice active] 3] t] 5 (#$ . 103628)])
#@57 Remove the user specified in USER from the ignore list.
(defalias 'erc-cmd-UNIGNORE #[(user) "\305 \306!\205rq\210\307\310	!\n\"))@\211\204;\311	!\211\2031\312\313\314\"!\204;\315\202;\316\317\313\320	\"!\321\"\210\203]\316\317\313\322	\"!\321\"\210\305 \306\f!\203\\r\fq\210\323\n\")))\324\207" [#1=#:buffer user erc-ignore-list ignored-nick #2=#:buffer erc-server-buffer buffer-live-p erc-member-ignore-case regexp-quote erc-ignored-user-p y-or-n-p format "Remove this regexp (%s)? " nil erc-display-line erc-make-notice "%s is not currently ignored!" active "No longer ignoring %s" delete t] 6 (#$ . 104469)])
#@27 Clear the window content.
(defalias 'erc-cmd-CLEAR #[nil "\300\301!\210\302\207" [recenter 0 t] 2 (#$ . 105107)])
(put 'erc-cmd-CLEAR 'process-not-needed t)
#@38 Show the ops in the current channel.
(defalias 'erc-cmd-OPS #[nil "\302	\203\303\304	\"\210\305\306\"\211\2035\307\302\310p\300\311G\312G\313V\203(\314\202)\315\316\317\320\321#&\n\210\202<\307\302\310p\322$\210)\323\207" [ops erc-channel-users nil maphash #[(nick user-data) "A\211\2052	\305H\n>\204\306\307\310\311#\210	\312H\2052@\305H>\204*\306\307\313\314#\210@\312H\fB\211)\207" [user-data cuser cl-struct-erc-channel-user-tags cl-struct-erc-server-user-tags ops 0 error "%s accessing a non-%s" erc-channel-user-op erc-channel-user 1 erc-server-user-nickname erc-server-user] 5] sort string-lessp erc-display-message notice 105 115 1 "s" "" 111 mapconcat identity " " ops-none t] 15 (#$ . 105270) nil])
#@63 Display the country associated with the top level domain TLD.
(defalias 'erc-cmd-COUNTRY #[(tld) "\302\303!\210\304\305\306\217\211\203\307\304\310\311\312\313\314	&\210\202&\307\304\310\311\315\314	&\210)\316\207" [co tld require mail-extr nil (what-domain tld) ((error)) erc-display-message notice active country 99 100 country-unknown t] 10 (#$ . 106008)])
(put 'erc-cmd-COUNTRY 'process-not-needed t)
#@108 Mark the user as being away, the reason being indicated by LINE.
If no reason is given, unset away status.
(defalias 'erc-cmd-AWAY #[(line) "\304\305\"\205,\306\307\"\310\311	\"\205\312\n!)\210\313	\314\230\203%\315\202(\316	P!\210)\317\207" [line reason string erc-log-p string-match "^\\s-*\\(.*\\)$" match-string 1 format "cmd: AWAY: %s" erc-log-aux erc-server-send "" "AWAY" "AWAY :" t] 3 (#$ . 106427)])
(put 'erc-cmd-AWAY 'do-not-parse-args t)
#@77 Mark the user as being away everywhere, the reason being indicated by LINE.
(defalias 'erc-cmd-GAWAY #[(line) "\302\303\304\305\306	\"\"*\207" [#1=#:pro #2=#:pre nil erc-open-server-buffer-p mapcar #[(buffer) "rq\210\302	!)\207" [buffer line erc-cmd-AWAY] 2] erc-buffer-list] 6 (#$ . 106893)])
(put 'erc-cmd-GAWAY 'do-not-parse-args t)
#@175 Send a Client To Client Protocol message to NICK.

CMD is the CTCP command, possible values being ECHO, FINGER, CLIENTINFO, TIME,
VERSION and so on.  It is called with ARGS.
(defalias 'erc-cmd-CTCP #[(nick cmd &rest args) "	\205\f\306\307\310	\306#PP\311\312\n#
\205\313\f!)\210\314\n\"\210)\315\207" [cmd args str nick string erc-log-p " " mapconcat identity format "cmd: CTCP [%s]: [%s]" erc-log-aux erc-send-ctcp-message t] 6 (#$ . 107240)])
#@400 Popup help information.

If FUNC contains a valid function or variable, help about that
will be displayed.  If FUNC is empty, display an apropos about
ERC commands.  Otherwise, do `apropos' in the ERC namespace
("erc-.*LINE").

Examples:
To find out about erc and bbdb, do
  /help bbdb.*

For help about the WHOIS command, do:
  /help whois

For a list of user commands (/join /part, ...):
  /help.
(defalias 'erc-cmd-HELP #[(&optional func) "\203}\302\303\226P!\211\205\304	!\204\305	!\205	)\206Q\302!\211\2055\304	!\2044\305	!\2055	)\206Q\302\306P!\211\205P\304	!\204O\305	!\205P	)\211\203r\304	!\203b\307	!\202{\305	!\203n\310	!\202{\311\202{\312\313P\311\314#\210\315)\207\316\303!\210\317\320!\210\315\207" [func sym intern-soft "erc-cmd-" boundp fboundp "erc-" describe-variable describe-function nil apropos-command "erc-.*" #[(x) "\301!\206	\302N\207" [x commandp custom-type] 2] t apropos message "Type C-h m to get additional information about keybindings."] 5 (#$ . 107700)])
(byte-code "\300\301\302\"\210\303\302\304\305#\207" [defalias erc-cmd-H erc-cmd-HELP put process-not-needed t] 4)
#@177 Join the channel given in CHANNEL, optionally with KEY.
If CHANNEL is specified as "-invite", join the channel to which you
were most recently invited.  See also `invitation'.
(defalias 'erc-cmd-JOIN #[(channel &optional key) "\306	\226\307\230\203\n\203\n\202 \310\306\311p\312$\210\202 \313	!\203i\314\315\316!\"\317\f\"\203=\320\317\f\"@!\210\202h\321\322\"\205J\323
!)\210\203a\203a\324\321\325#!\210\202h\324\321\326\"!\210))\327\207" [chnl channel erc-invitation erc-server-process joined-channels string nil "-INVITE" erc-display-message error no-invitation erc-ensure-channel-name mapcar #[(chanbuf) "rq\210\301 )\207" [chanbuf erc-default-target] 1] erc-channel-list erc-member-ignore-case switch-to-buffer format "cmd: JOIN: %s" erc-log-aux erc-server-send "JOIN %s %s" "JOIN %s" t erc-log-p key] 5 (#$ . 108842)])
(byte-code "\300\301\302\"\210\300\303\302\"\207" [defalias erc-cmd-CHANNEL erc-cmd-JOIN erc-cmd-J] 3)
#@137 If non-nil, a names list is currently being received.

If non-nil, this variable is a hash-table that associates
received nicks with t.
(defvar erc-channel-new-member-names nil (#$ . 109810))
(make-variable-buffer-local 'erc-channel-new-member-names)
#@176 Display the users in CHANNEL.
If CHANNEL is not specified, display the users in the current channel.
This function clears the channel name list first, then sends the
command.
(defalias 'erc-cmd-NAMES #[(&optional channel) "\306!\203\n\206\f\307 \211\203m\306	!\203m\310\311	\"\205#\312\n!)\210	\313\314\f!\2033\f\202Q
\206@\315!\205@\f\205P\205P\316\f\")\317!\203crq\210\320 \210)+\321\322	P!\210\202t\323\313\324p\325$\210)\326\207" [channel tgt string erc-log-p #1=#:target #2=#:process erc-channel-p erc-default-target format "cmd: DEFAULT: NAMES %s" erc-log-aux nil bufferp processp erc-get-buffer buffer-live-p erc-channel-begin-receiving-names erc-server-send "NAMES " erc-display-message error no-default-channel t erc-server-process #3=#:proc #4=#:buf] 6 (#$ . 110068)])
(defalias 'erc-cmd-N 'erc-cmd-NAMES)
#@121 Kick the user indicated in LINE from the current channel.
LINE has the format: "#CHANNEL NICK REASON" or "NICK REASON".
(defalias 'erc-cmd-KICK #[(target &optional reason-or-nick &rest reasonwords) "\306\307\310#\211\311\230\203\312\313\314 \"\315\n!\203;\312\316\f\n	$\205)\317
!)\210\320\312\321\n\f	$\322\n#\210)\323\202}\n\205}\324 \205J\310P	P\203t\312\316\n	$\205b\317
!)\210\320\312\321\n	$\322#\210\202{\325\322\326p\327$\210)\323)\207" [reasonwords reasonstring target reason-or-nick nick string mapconcat identity " " "" format "Kicked by %s" erc-current-nick erc-channel-p "cmd: KICK: %s/%s: %s" erc-log-aux erc-server-send "KICK %s %s :%s" nil t erc-default-target erc-display-message error no-default-channel erc-log-p ch] 7 (#$ . 110927)])
(defvar erc-script-args nil)
#@300 Load the script provided in the LINE.
If LINE continues beyond the file name, the rest of
it is put in a (local) variable `erc-script-args',
which can be used in Emacs Lisp scripts.

The optional FORCE argument is ignored here - you can't force loading
a script after exceeding the flood threshold.
(defalias 'erc-cmd-LOAD #[(line) "\306\307\"\203Z\310\311\"\310\312\"\313	\"\314\315	\"\205#\316
!)\210\f\2046\317\320\321p\322\323	&\210\202W\324\f!\204I\317\320\321p\325\323\f&\210\202W\326\327\f\"\210\330\f!\210\326\331\f\"\210+\332\207\320\207" [line file-to-find erc-script-args erc-script-path file string string-match "^\\s-*\\(\\S-+\\)\\(.*\\)$" match-string 1 2 erc-find-file format "cmd: LOAD: %s" erc-log-aux erc-display-message nil error cannot-find-file 102 file-readable-p cannot-read-file message "Loading '%s'..." erc-load-script "Loading '%s'...done" t erc-log-p] 7 (#$ . 111751)])
#@102 Display whois information for USER.

If SERVER is non-nil, use that, rather than the current server.
(defalias 'erc-cmd-WHOIS #[(user &optional server) "\203\f\305\306	#\202\305\307	\"\305\310\n\"\f\205\311!)\210\312\n!\210)\313\207" [server user send string erc-log-p format "WHOIS %s %s" "WHOIS %s" "cmd: %s" erc-log-aux erc-server-send t] 4 (#$ . 112674)])
(defalias 'erc-cmd-WI 'erc-cmd-WHOIS)
#@43 Display whois information about yourself.
(defalias 'erc-cmd-WHOAMI #[nil "\300\301 !\210\302\207" [erc-cmd-WHOIS erc-current-nick t] 2 (#$ . 113088)])
#@45 Show the length of time NICK has been idle.
(defalias 'erc-cmd-IDLE #[(nick) "p\304\305 \306\n!\203\231r\nq\210\307\300\310\311\312\313BB\"\314B\"\210\307\300\310\315\312\316BB\"\317B\"\210\307\300\310\320\312\321BB\"\322B\"\210\307\300\310\323\312\324BB\"\325B\"\210\307\300\310\326\312\327BB\"\330B\"\210\307\300\310\331\312\332BB\"\333B\"\210\307\300\310\334\335\336\337\340\341\342\343D\344BBBD	EE\345#\346B\"\210\347!\210\350\351\304\352\304\353p\354\355\356DD\357BBEE#\210)+\345\207" [symlist origbuf #1=#:buffer nick nil erc-server-buffer buffer-live-p add-to-list erc-once-with-server-event 311 string= ((second (erc-response\.command-args parsed))) erc-server-311-functions 312 ((second (erc-response\.command-args parsed))) erc-server-312-functions 318 ((second (erc-response\.command-args parsed))) erc-server-318-functions 319 ((second (erc-response\.command-args parsed))) erc-server-319-functions 320 ((second (erc-response\.command-args parsed))) erc-server-320-functions 330 ((second (erc-response\.command-args parsed))) erc-server-330-functions 317 let ((idleseconds (string-to-number (third (erc-response\.command-args parsed))))) erc-display-line erc-make-notice format "%s has been idle for %s." erc-string-no-properties ((erc-seconds-to-string idleseconds)) t erc-server-317-functions erc-cmd-WHOIS run-at-time 20 lambda with-current-buffer dolist sym quote ((let ((hooksym (cdr sym)) (funcsym (car sym))) (remove-hook hooksym funcsym t)))] 12 (#$ . 113246)])
#@72 Pose some action to a certain user.
LINE has the format "USER ACTION".
(defalias 'erc-cmd-DESCRIBE #[(line) "\305\306\"\203(\307\310\"\307\311\"\312\313\n	#\f\205\314!)\210\315\n	\"\210*\316\207\317\207" [line s dst string erc-log-p string-match "^\\s-*\\(\\S-+\\)\\s-\\(.*\\)$" match-string 1 2 format "cmd: DESCRIBE: [%s] %s" erc-log-aux erc-send-action t nil] 4 (#$ . 114747)])
(put 'erc-cmd-DESCRIBE 'do-not-parse-args t)
#@25 Send LINE as an action.
(defalias 'erc-cmd-ME #[(line) "\304\305\"\203#\306\307\"\310\311	\"\205\312\n!)\210\313\314 	\"\210)\315\207\316\207" [line s string erc-log-p string-match "^\\s-\\(.*\\)$" match-string 1 format "cmd: ME: %s" erc-log-aux erc-send-action erc-default-target t nil] 3 (#$ . 115189)])
(put 'erc-cmd-ME 'do-not-parse-args t)
#@62 Do a /ME command, but add the string " 's" to the beginning.
(defalias 'erc-cmd-ME\'S #[(line) "\301\302P!\207" [line erc-cmd-ME " 's"] 3 (#$ . 115548)])
(put 'erc-cmd-ME\'S 'do-not-parse-args t)
#@407 Show all lines in the current buffer matching the regexp LINE.

If a match spreads across multiple lines, all those lines are shown.

The lines are shown in a buffer named `*Occur*'.
It serves as a menu to find any of the occurrences in this buffer.
\[describe-mode] in that buffer will explain how.

If LINE contains upper case characters (excluding those preceded by `'),
the matching is case-sensitive.
(defalias 'erc-cmd-LASTLOG #[(line) "\301!\210\302\207" [line occur t] 2 (#$ . 115752)])
(byte-code "\300\301\302\303#\210\300\301\304\303#\207" [put erc-cmd-LASTLOG do-not-parse-args t process-not-needed] 4)
#@106 Send LINE to the current channel or user and display it.

See also `erc-message' and `erc-display-line'.
(defalias 'erc-send-message #[(line &optional force) "\302\303\304 \305Q	#\210\306\307 Pp\"\210\310\207" [line force erc-message "PRIVMSG" erc-default-target " " erc-display-line erc-format-my-nick t] 5 (#$ . 116375)])
#@302 Change or display the mode value of a channel or user.
The first word specifies the target.  The rest is the mode string
to send.

If only one word is given, display the mode of that target.

A list of valid mode strings for Freenode may be found at
URL `http://freenode.net/using_the_network.shtml'.
(defalias 'erc-cmd-MODE #[(line) "\304\305\"\203#\306\307\"\310\311	\"\205\312\n!)\210\313\314P!\210)\315\207\316\207" [line s string erc-log-p string-match "^\\s-\\(.*\\)$" match-string 1 format "cmd: MODE: %s" erc-log-aux erc-server-send "MODE " t nil] 3 (#$ . 116708)])
(put 'erc-cmd-MODE 'do-not-parse-args t)
#@96 Send a notice to the channel or user given as the first word.
The rest is the message to send.
(defalias 'erc-cmd-NOTICE #[(channel-or-user &rest message) "\302\303\304\305\306	\304#Q\"\207" [channel-or-user message erc-message "NOTICE" " " mapconcat identity] 8 (#$ . 117338)])
#@114 Send a message to the channel or user given as the first word in LINE.

The rest of LINE is the message to send.
(defalias 'erc-cmd-MSG #[(line) "\301\302\"\207" [line erc-message "PRIVMSG"] 3 (#$ . 117625)])
(byte-code "\300\301\302\"\210\303\302\304\305#\207" [defalias erc-cmd-M erc-cmd-MSG put do-not-parse-args t] 4)
#@112 Send a Service Query to the service given as the first word in LINE.

The rest of LINE is the message to send.
(defalias 'erc-cmd-SQUERY #[(line) "\301\302\"\207" [line erc-message "SQUERY"] 3 (#$ . 117955)])
#@34 Change current nickname to NICK.
(defalias 'erc-cmd-NICK #[(nick) "\306\307	#\205
\310\n!)\210\311\312\313 \314\f!\205 r\fq\210
))\"A\211\203AG\315!V\203A\316\317\320\321\322\323G\324&\210)\325\306\326\"!\210	\203V\327!\210\330 \210\317\331\207" [nick erc-bad-nick string erc-log-p #1=#:buffer erc-server-parameters format "cmd: NICK: %s (erc-bad-nick: %S)" erc-log-aux assoc "NICKLEN" erc-server-buffer buffer-live-p string-to-number erc-display-message nil notice active nick-too-long 105 108 erc-server-send "NICK %s" erc-set-current-nick erc-update-mode-line t nicklen] 10 (#$ . 118171)])
#@105 When LINE is an empty string, leave the current channel.
Otherwise leave the channel indicated by LINE.
(defalias 'erc-cmd-PART #[(line) "\306\307\"\203F\310\311\"\310\312\"\n\313\232?\205\n!\314\315	\f#\205*\316
!)\210\317\f\313\230\203:\314\320	\"\202?\314\321	\f#\322	#\210+\323\207\306\324\"\203\236\325 \310\311\"\n\313\232?\205^\n!	\203\224\326	!\203\224\314\315	\f#\205x\316
!)\210\317\f\313\230\203\210\314\320	\"\202\215\314\321	\f#\322	#\210\202\233\327\322\330p\331$\210+\323\207\322\207" [line ch msg erc-part-reason reason string string-match "^\\s-*\\([&#+!]\\S-+\\)\\s-?\\(.*\\)$" match-string 1 2 "" format "cmd: PART: %s: %s" erc-log-aux erc-server-send "PART %s" "PART %s :%s" nil t "^\\s-*\\(.*\\)$" erc-default-target erc-channel-p erc-display-message error no-target erc-log-p] 5 (#$ . 118792)])
(byte-code "\300\301\302\303#\210\304\305\301\"\207" [put erc-cmd-PART do-not-parse-args t defalias erc-cmd-LEAVE] 4)
#@17 Ping RECIPIENT.
(defalias 'erc-cmd-PING #[(recipient) "\304\305\306 \"\304\307\"\n\205\310	!)\210\311\312#)\207" [time string erc-log-p recipient format "%f" erc-current-time "cmd: PING: %s" erc-log-aux erc-cmd-CTCP "PING"] 4 (#$ . 119766)])
#@156 Send LINE directly to the server.
All the text given as argument is sent to the sever as unmodified,
just as you provided it.  Use this command with care!
(defalias 'erc-cmd-QUOTE #[(line) "\301\302\"\203\303\304\305\"!\207\306\207" [line string-match "^ ?\\(.+\\)$" erc-server-send match-string 1 nil] 4 (#$ . 120022)])
(byte-code "\300\301\302\303#\210\304\305\306\307\310\311\312\313&\207" [put erc-cmd-QUOTE do-not-parse-args t custom-declare-variable erc-query-display 'window "Indicates how to display query buffers when using the /QUERY\ncommand to talk to someone.\n\nThe default behavior is to display the message in a new window\nand bring it to the front.  See the documentation for\n`erc-join-buffer' for a description of the available choices.\n\nSee also `erc-auto-query' to decide how private messages from\nother people should be displayed." :group erc-query :type (choice (const :tag "Split window and select" window) (const :tag "Split window, don't select" window-noselect) (const :tag "New frame" frame) (const :tag "Bury in new buffer" bury) (const :tag "Use current buffer" buffer) (const :tag "Use current buffer" t))] 8)
#@207 Open a query with USER.
The type of query window/frame/etc will depend on the value of
`erc-query-display'.

If USER is omitted, close the current query buffer if one exists
- except this is broken now ;-)
(defalias 'erc-cmd-QUERY #[(&optional user) "\304 \203\305\n\"\202\306\307\310\"*\207" [erc-query-display erc-join-buffer session-buffer user erc-server-buffer erc-query signal wrong-number-of-arguments ""] 3 (#$ . 121179) (list (read-from-minibuffer "Start a query with: " nil))])
(defalias 'erc-cmd-Q 'erc-cmd-QUERY)
#@76 Normal quit message.

If S is non-nil, it will be used as the quit reason.
(defalias 'erc-quit-reason-normal #[(&optional s) "\206\302\303	\"\207" [s erc-version-string format "ERC %s (IRC client for Emacs)"] 3 (#$ . 121719)])
#@75 Zippy quit message.

If S is non-nil, it will be used as the quit reason.
(defalias 'erc-quit-reason-zippy #[(&optional s) "\206\n\301\302\303\304 #\207" [s erc-replace-regexp-in-string "\n" "" yow] 4 (#$ . 121957)])
#@45 Choose a quit reason based on S (a string).
(defalias 'erc-quit-reason-various #[(s) "\303\206\304	\305#@\306\n!\203\n \202)\n;\203\n\202)\203'\202)\307 )\207" [s erc-quit-reason-various-alist res assoc-default "" string-match functionp erc-quit-reason-normal] 4 (#$ . 122182)])
#@76 Normal part message.

If S is non-nil, it will be used as the quit reason.
(defalias 'erc-part-reason-normal #[(&optional s) "\206\302\303	\"\207" [s erc-version-string format "ERC %s (IRC client for Emacs)"] 3 (#$ . 122481)])
#@75 Zippy part message.

If S is non-nil, it will be used as the quit reason.
(defalias 'erc-part-reason-zippy #[(&optional s) "\206\n\301\302\303\304 #\207" [s erc-replace-regexp-in-string "\n" "" yow] 4 (#$ . 122719)])
#@45 Choose a part reason based on S (a string).
(defalias 'erc-part-reason-various #[(s) "\303\206\304	\305#@\306\n!\203\n \202)\n;\203\n\202)\203'\202)\307 )\207" [s erc-part-reason-various-alist res assoc-default "" string-match functionp erc-part-reason-normal] 4 (#$ . 122944)])
#@138 Disconnect from the current server.
If REASON is omitted, display a default quit message, otherwise display
the message given by REASON.
(defalias 'erc-cmd-QUIT #[(reason) "\204\306\307\310\"\203n\311\312\"\313 	\306\232?\205	!\314r\n\2031\315\n!\2031\n\2022pq\210\316\317\"\205A\320
!)\210\321\322\313 !\210\323\316\324\"!\210)\325\326\f\"\210\203d\327\f!\210\330\331\314\332\f$\210,\321\207\314\207" [reason s buffer erc-quit-reason server-proc string "" string-match "^\\s-*\\(.*\\)$" match-string 1 erc-server-buffer nil bufferp format "cmd: QUIT: %s" erc-log-aux t erc-set-active-buffer erc-server-send "QUIT :%s" run-hook-with-args erc-quit-hook erc-kill-query-buffers run-at-time 4 #[(proc) "\301!\205\302!\303>\205\304!\207" [proc processp process-status (run open) delete-process] 2] erc-log-p erc-server-quitting erc-server-process erc-kill-queries-on-quit] 5 (#$ . 123244)])
(byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\210\305\302\306\307#\210\305\302\310\307#\207" [defalias erc-cmd-BYE erc-cmd-QUIT erc-cmd-EXIT erc-cmd-SIGNOFF put do-not-parse-args t process-not-needed] 4)
#@64 Disconnect from all servers at once with the same quit REASON.
(defalias 'erc-cmd-GQUIT #[(reason) "\303\304\305\306\307	\"\"\210*\n\203\310\311\303\312#\210\313\207" [#1=#:pro #2=#:pre erc-kill-queries-on-quit nil erc-open-server-buffer-p mapcar #[(buffer) "rq\210\302	!)\207" [buffer reason erc-cmd-QUIT] 2] erc-buffer-list run-at-time 4 #[nil "\302\303!\304\211\205	@\305!\210	A\211\204\n\304*\207" [buffer --dolist-tail-- erc-buffer-list #[(buf) "\301!?\207" [buf erc-server-buffer-p] 2] nil kill-buffer] 3] t] 6 (#$ . 124395)])
(byte-code "\300\301\302\"\210\303\302\304\305#\210\303\302\306\305#\207" [defalias erc-cmd-GQ erc-cmd-GQUIT put do-not-parse-args t process-not-needed] 4)
#@45 Try to reconnect to the current IRC server.
(defalias 'erc-cmd-RECONNECT #[nil "\305 \306\307	!\204
pr	q\210\306\310\311\312\305 !\211\203'\313!\210\202*\314 \210\306+\310\207" [process buffer erc-server-quitting erc-server-reconnecting erc-server-reconnect-count erc-server-buffer nil buffer-live-p t 0 get-buffer-process delete-process erc-server-reconnect] 3 (#$ . 125105)])
(put 'erc-cmd-RECONNECT 'process-not-needed t)
#@56 Connect to SERVER, leaving existing connection intact.
(defalias 'erc-cmd-SERVER #[(server) "\303\304\"\n\205\f\305	!)\210\306\307\310\217\210\311\207" [server string erc-log-p format "cmd: SERVER: %s" erc-log-aux nil (byte-code "\301\302\303\304 $\207" [server erc :server :nick erc-current-nick] 5) ((error (erc-error "Cannot find host %s." server))) t] 3 (#$ . 125548)])
(put 'erc-cmd-SERVER 'process-not-needed t)
#@53 Say the current ERC and Emacs version into channel.
(defalias 'erc-cmd-SV #[nil "\306\307\310\311	\n\312\313!\203\314\315\316OP\202-\312\317!\203\"\320\fP\202-\312\321!\203,\322\202-\323\324\305!\203D
\325>\203D\307\326\327\330
!!\"\202E\323\312\331!\203O\332\202P\323Q&!\210\333\207" [erc-version-string emacs-version system-configuration motif-version-string gtk-version-string x-toolkit-scroll-bars erc-send-message format "I'm using ERC %s with %s %s (%s%s) of %s." "GNU Emacs" featurep motif ", " 4 nil gtk ", GTK+ Version " x-toolkit ", X toolkit" "" boundp (xaw xaw3d) ", %s scroll bars" capitalize symbol-name multi-tty ", multi-tty" t erc-emacs-build-time] 13 (#$ . 125976)])
#@41 Say the current ERC modes into channel.
(defalias 'erc-cmd-SM #[nil "\300\301\302\303 \"!\210\304\207" [erc-send-message format "I'm using the following modules: %s!" erc-modes t] 4 (#$ . 126684)])
#@59 Remove the operator setting from user(s) given in PEOPLE.
(defalias 'erc-cmd-DEOP #[(&rest people) "G\301V\205\302\303\304 \305\306G\307\"\310\311\312\310#\260!\210\313\207" [people 0 erc-server-send "MODE " erc-default-target " -" make-string 111 " " mapconcat identity t] 10 (#$ . 126888)])
#@55 Add the operator setting to users(s) given in PEOPLE.
(defalias 'erc-cmd-OP #[(&rest people) "G\301V\205\302\303\304 \305\306G\307\"\310\311\312\310#\260!\210\313\207" [people 0 erc-server-send "MODE " erc-default-target " +" make-string 111 " " mapconcat identity t] 10 (#$ . 127193)])
#@60 Request the current time and date from the current server.
(defalias 'erc-cmd-TIME #[(&optional line) "\203'\304\305\"\203'\306\307\"\310\311	\"\205\312\n!)\210\313\314	P!\210)\315\207\313\316!\207" [line args string erc-log-p string-match "^\\s-*\\(.*\\)$" match-string 1 format "cmd: TIME: %s" erc-log-aux erc-server-send "TIME " t "TIME"] 3 (#$ . 127492)])
(defalias 'erc-cmd-DATE 'erc-cmd-TIME)
#@274 Set or request the topic for a channel.
LINE has the format: "#CHANNEL TOPIC", "#CHANNEL", "TOPIC"
or the empty string.

If no #CHANNEL is given, the default channel is used.  If TOPIC is
given, the channel topic is modified, otherwise the current topic will
be displayed.
(defalias 'erc-cmd-TOPIC #[(topic) "\304\305\"\203-\306\307\"\306\310\"\311\312	#\205\313\n!)\210\314\311\315	#\316	#\210*\317\207\304\320\"\203E\306\307\"\314\311\321	\"\316	#\210)\317\207\304\322\"\203[\323 \314\311\321	\"\316	#\210)\317\207\304\324\"\203\232\323 \306\307\"\211\203\220\325	!\203\220\311\312	#\205\201\313\n!)\210\314\311\315	#\316	#\210\202\227\326\316\327p\330$\210*\317\207\316\207" [topic ch string erc-log-p string-match "^\\s-*\\([&#+!]\\S-+\\)\\s-\\(.*\\)$" match-string 1 2 format "cmd: TOPIC [%s]: %s" erc-log-aux erc-server-send "TOPIC %s :%s" nil t "^\\s-*\\([&#+!]\\S-+\\)" "TOPIC %s" "^\\s-*$" erc-default-target "^\\s-*\\(.*\\)$" erc-channel-p erc-display-message error no-target] 6 (#$ . 127908)])
(byte-code "\300\301\302\"\210\303\302\304\305#\207" [defalias erc-cmd-T erc-cmd-TOPIC put do-not-parse-args t] 4)
#@66 Append TOPIC to the current channel topic, separated by a space.
(defalias 'erc-cmd-APPENDTOPIC #[(topic) "\303\304\n\"\203\305\306\307\"\210\303\310	\"\205\311\312\313	\"\nP!)\207" [erc-channel-topic oldtopic topic string-match "^\\s-*$" signal wrong-number-of-arguments nil "\\(.*\\)" erc-cmd-TOPIC match-string 1] 4 (#$ . 129066)])
(byte-code "\300\301\302\"\210\303\302\304\305#\207" [defalias erc-cmd-AT erc-cmd-APPENDTOPIC put do-not-parse-args t] 4)
#@102 Clear the topic for a CHANNEL.
If CHANNEL is not specified, clear the topic for the default channel.
(defalias 'erc-cmd-CLEARTOPIC #[(&optional channel) "\302!\203\n\206\f\303 \211\205\304\305\306	\"!\210\307)\207" [channel chnl erc-channel-p erc-default-target erc-server-send format "TOPIC %s :" t] 5 (#$ . 129537) "sClear topic of channel (RET is current channel): "])
#@210 A list of bans seen for the current channel.

Each ban is an alist of the form:
  (WHOSET . MASK)

The property `received-from-server' indicates whether
or not the ban list has been requested from the server.
(defvar erc-channel-banlist nil (#$ . 129923))
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local erc-channel-banlist put received-from-server nil] 4)
#@108 Pretty-print the contents of `erc-channel-banlist'.

The ban list is fetched from the server if necessary.
(defalias 'erc-cmd-BANLIST #[nil "\306 \307 \310	!\204\311\312\313!\314\"\210\202\316\304\315N\204M\n\316\317\320 \321
!\203Ir
q\210\322\323\324\325\326\302\327DE\330BBBB\"\210\331\332\333	\"!\210)*\202\316\f\204d\311\312\332\334	\"!\314\"\210\335\304\315\317#\210\202\316\336\337!\203o\206}\336\340!\203z \206}\341 S\342\343\"0\344\345\346\245!\347\350\345\346\245!\347\2601\311\312\332\351\306 \"!\314\"\210\3110\314\"\210\311\3321\352\353#\314\"\210\3110\314\"\210\354\355\f\"\210\311\312\356!\314\"\210\335\304\315\317#\210+*\357\207" [chnl-name chnl erc-server-367-functions old-367-hook erc-channel-banlist #1=#:buffer erc-default-target buffer-name erc-channel-p erc-display-line erc-make-notice "You're not on a channel\n" active received-from-server erc-banlist-store nil erc-server-buffer buffer-live-p erc-once-with-server-event 368 with-current-buffer (put 'erc-channel-banlist 'received-from-server t) setq quote ((erc-cmd-BANLIST) t) erc-server-send format "MODE %s b" "No bans for channel: %s\n" put boundp erc-fill-column fill-column window-width make-string 61 "%-" number-to-string 2 "s" "%" "Ban list for channel: %s\n" "Ban Mask" "Banned By" mapc #[(x) "\303\304\305	A\n\306\245\"	@\203\305	@\n\306\245\"\202\307#\310\"\207" [fmt x erc-fill-column erc-display-line format truncate-string-to-width 2 "" active] 8] "End of Ban list" t separator fmt] 9 (#$ . 130315)])
(defalias 'erc-cmd-BL 'erc-cmd-BANLIST)
#@71 Mass Unban.

Unban all currently banned users in the current channel.
(defalias 'erc-cmd-MASSUNBAN #[nil "\306 \307!\204\310\311\312!\313\"\202W\304\314N\204D	\315\316 \317!\205@rq\210\320\321\322\323\324\301\nE\325BBBB\"\210\326\327\330\"!)*\202W\331\332\f\"\211\203U\333\334\335
\336\"\"\210)\337)\207" [chnl erc-server-367-functions old-367-hook #1=#:buffer erc-channel-banlist bans erc-default-target erc-channel-p erc-display-line erc-make-notice "You're not on a channel\n" active received-from-server erc-banlist-store erc-server-buffer buffer-live-p erc-once-with-server-event 368 with-current-buffer (put 'erc-channel-banlist 'received-from-server t) setq ((erc-cmd-MASSUNBAN) t) erc-server-send format "MODE %s b" mapcar cdr mapc #[(x) "\301\302\303\304 \305G\306\"\307\310\311#$!\207" [x erc-server-send format "MODE %s -%s %s" erc-default-target make-string 98 mapconcat identity " "] 9] erc-group-list 3 t] 9 (#$ . 131896)])
(defalias 'erc-cmd-MUB 'erc-cmd-MASSUNBAN)
#@126 Return CHANNEL if it is a valid channel name.
Eventually add a # in front of it, if that turns it into a valid channel name.
(defalias 'erc-ensure-channel-name #[(channel) "\301!\203\207\302P\207" [channel erc-channel-p "#"] 2 (#$ . 132903)])
#@268 Copy the region between START and END in a recreatable format.

Converts all the IRC text properties in each line of the region
into control codes and writes them to a separate buffer.  The
resulting text may be used directly as a script to generate this
text again.
(defalias 'erc-grab-region #[(start end) "\306p!\210\212p\307	!\f{\310
!\nq\210\311\211\2035@\211\312Pc\210A\211\204\"*q\210\313\n!\210-\314\315!\210\316 \207" [cb erc-grab-buffer-name buf start end region erc-set-active-buffer generate-new-buffer erc-split-multiline-safe nil "\n" switch-to-buffer-other-window message "erc-grab-region doesn't grab colors etc. anymore. If you use this, please tell the maintainers." ding lines line --dolist-tail--] 3 (#$ . 133158) "r"])
#@355 Display PROMPT in BUFFER at position POS.
Display an ERC prompt in BUFFER.

If PROMPT is nil, one is constructed with the function `erc-prompt'.
If BUFFER is nil, the `current-buffer' is used.
If POS is nil, PROMPT will be displayed at `point'.
If FACE is non-nil, it will be used to propertize the prompt.  If it is nil,
`erc-prompt-face' will be used.
(defalias 'erc-display-prompt #[(&optional buffer pos prompt face) "\206\306 \211Gp\203\307!\203q\210\212\f\206`\211b\210	\310V\203K\311\312\313\314\313\306\313\315\313\316\313\317\313&
\320\310GS\305
\206E\321%\210c\210`\322\223\210)\f\203\\`\fX\203_	u\210\322\nq+\207" [prompt l ob buffer pos face erc-prompt bufferp 0 erc-propertize start-open t rear-nonsticky field front-sticky read-only erc-put-text-property erc-prompt-face nil erc-input-marker buffer-undo-list] 15 (#$ . 133928)])
#@33 Read input from the minibuffer.
(defalias 'erc-input-message #[nil "\304\305\306\307!	#c\210\310 *\207" [minibuffer-local-map read-map minibuffer-allow-text-properties last-command-event t read-from-minibuffer "Message: " string erc-send-current-line] 4 (#$ . 134806) nil])
#@44 History list for interactive action input.
(defvar erc-action-history-list nil (#$ . 135090))
#@55 Interactively input a user action and send it to IRC.
(defalias 'erc-input-action #[nil "\301p!\210\302\303\304\211\211\305%\306\307\"?\205\310\311 \")\207" [action erc-set-active-buffer read-from-minibuffer "Action: " nil erc-action-history-list string-match "^\\s-*$" erc-send-action erc-default-target] 6 (#$ . 135190) ""])
#@87 Join CHANNEL.

If `point' is at the beginning of a channel name, use that as default.
(defalias 'erc-join-channel #[(channel &optional key) "\302	G\303Y\205\n	\"\207" [channel key erc-cmd-JOIN 1] 4 (#$ . 135528) (list (let ((chnl (if (looking-at "\\([&#+!][^ \n]+\\)") (match-string 1) "")) (table (if (erc-server-buffer-live-p) (progn (set-buffer (process-buffer erc-server-process)) erc-channel-list)))) (completing-read "Join channel: " table nil nil nil nil chnl)) (if (or current-prefix-arg erc-prompt-for-channel-key) (progn (read-from-minibuffer "Channel key (RET for none): " nil))))])
#@56 Part from the current channel and prompt for a REASON.
(defalias 'erc-part-from-channel #[(reason) "\301\302 \303Q!\207" [reason erc-cmd-PART erc-default-target " "] 4 (#$ . 136130) (list (if (and (boundp 'reason) (stringp reason) (not (string= reason ""))) reason (read-from-minibuffer (concat "Reason for leaving " (erc-default-target) ": "))))])
#@45 Prompt for a TOPIC for the current channel.
(defalias 'erc-set-topic #[(topic) "\302\303\"\304\305 \306	@Q!)\207" [topic topic-list split-string "" erc-cmd-TOPIC erc-default-target " "] 4 (#$ . 136486) (list (read-from-minibuffer (concat "Set topic of " (erc-default-target) ": ") (if erc-channel-topic (progn (let ((ss (split-string erc-channel-topic ""))) (cons (apply 'concat (if (cdr ss) (butlast ss) ss)) 0))))))])
#@100 Set a LIMIT for the current channel.  Remove limit if nil.
Prompt for one if called interactively.
(defalias 'erc-set-channel-limit #[(&optional limit) "\302 	\203	G\303Y\203\304\305\306	#!\202\304\305\307\"!)\207" [tgt limit erc-default-target 1 erc-server-send format "MODE %s +l %s" "MODE %s -l"] 5 (#$ . 136917) (list (read-from-minibuffer (format "Limit for %s (RET to remove limit): " (erc-default-target))))])
#@96 Set a KEY for the current channel.  Remove key if nil.
Prompt for one if called interactively.
(defalias 'erc-set-channel-key #[(&optional key) "\302 	\203	G\303Y\203\304\305\306	#!\202\304\305\307\"!)\207" [tgt key erc-default-target 1 erc-server-send format "MODE %s +k %s" "MODE %s -k"] 5 (#$ . 137349) (list (read-from-minibuffer (format "Key for %s (RET to remove key): " (erc-default-target))))])
#@125 Disconnect from current server after prompting for REASON.
`erc-quit-reason' works with this just like with `erc-cmd-QUIT'.
(defalias 'erc-quit-server #[(reason) "\301!\207" [reason erc-cmd-QUIT] 2 (#$ . 137768) (list (read-from-minibuffer (format "Reason for quitting %s: " (or erc-server-announced-name erc-session-server))))])
#@129 Move `point' to the beginning of the current line.

This places `point' just after the prompt, or at the beginning of the line.
(defalias 'erc-bol #[nil "\301y\210\302`\303\"\203
b\210`\207" [erc-input-marker 0 get-text-property erc-prompt] 3 (#$ . 138106) nil])
#@66 Kill current input line using `erc-bol' followed by `kill-line'.
(defalias 'erc-kill-input #[nil "\301 \205`dU?\205\302\300!\203\303\304 \207" [erc-input-ring-index erc-bol boundp nil kill-line] 2 (#$ . 138377) nil])
(defalias 'erc-complete-word-at-point #[nil "\300\301!\207" [run-hook-with-args-until-success erc-complete-functions] 2])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\306\307\310\311\312\313\314\315&\207" [defalias erc-complete-word completion-at-point nil make-obsolete "24.1" custom-declare-variable erc-default-server-hook '(erc-debug-missing-hooks erc-default-server-handler) "Default for server messages which aren't covered by `erc-server-hooks'." :group erc-server-hooks :type hook] 8)
#@94 Default server handler.

Displays PROC and PARSED appropriately using `erc-display-message'.
(defalias 'erc-default-server-handler #[(proc parsed) "\303\304	\305\306\307\310\311\"\210\n)\312#$\207" [parsed proc res erc-display-message notice mapconcat identity nil mapc #[(x) ";\205\f\302	C\"\211\207" [x res append] 3] " "] 9 (#$ . 139111)])
#@105 List of received server messages which ERC does not specifically handle.
See `erc-debug-missing-hooks'.
(defvar erc-server-vectors '(["msgtype" "sender" "to" "arg1" "arg2" "arg3" "..."]) (#$ . 139468))
#@184 Add PARSED server message ERC does not yet handle to `erc-server-vectors'.
These vectors can be helpful when adding new server message handlers to ERC.
See `erc-default-server-hook'.
(defalias 'erc-debug-missing-hooks #[(proc parsed) "	C\244\210\302\207" [erc-server-vectors parsed nil] 2 (#$ . 139677)])
#@149 Open a query buffer on TARGET, using SERVER.
To change how this query window is displayed, use `let' to bind
`erc-join-buffer' before calling this.
(defalias 'erc-query #[(target server) "\203\306!\203q\204\307\310!\210\311	\n\312 \313\211\fC\f
&	\211\204+\307\314!\210\315 \210)\207" [server erc-session-server erc-session-port erc-session-user-full-name target erc-server-process buffer-live-p error "Couldn't switch to server buffer" erc-open erc-current-nick nil "Couldn't open query window" erc-update-mode-line buf] 11 (#$ . 139990)])
(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\317\320\304\321\306\313&\210\300\322\317\323\304\324\306\313&\207" [custom-declare-variable erc-auto-query 'window-noselect "If non-nil, create a query buffer each time you receive a private message.\nIf the buffer doesn't already exist, it is created.\n\nThis can be set to a symbol, to control how the new query window\nshould appear.  The default behavior is to display the buffer in\na new window, but not to select it.  See the documentation for\n`erc-join-buffer' for a description of the available choices." :group erc-query :type (choice (const :tag "Don't create query window" nil) (const :tag "Split window and select" window) (const :tag "Split window, don't select" window-noselect) (const :tag "New frame" frame) (const :tag "Bury in new buffer" bury) (const :tag "Use current buffer" buffer) (const :tag "Use current buffer" t)) erc-query-on-unjoined-chan-privmsg t "If non-nil create query buffer on receiving any PRIVMSG at all.\nThis includes PRIVMSGs directed to channels.  If you are using an IRC\nbouncer, such as dircproxy, to keep a log of channels when you are\ndisconnected, you should set this option to t." boolean erc-format-query-as-channel-p "If non-nil, format text from others in a query buffer like in a channel,\notherwise format like a private message." erc-minibuffer-notice nil "If non-nil, print ERC notices for the user in the minibuffer.\nOnly happens when the session buffer isn't visible." erc-display erc-minibuffer-ignored "If non-nil, print a message in the minibuffer if we ignored something." erc-ignore] 8)
#@279 Remove duplicate text from quit REASON.
Specifically in relation to NICK (user@host) information.  Returns REASON
unmodified if nothing can be removed.
E.g. "Read error to Nick [user@some.host]: 110" would be shortened to
"Read error: 110". The same applies for "Ping Timeout".
(defalias 'erc-wash-quit-reason #[(reason nick login host) "\304!\304	!\304\n!\305\306\307\n\310\311\260\"\203'\312\313\"\314\312\315\"Q\206<\305\316\307\n\317\260\"\203;\312\313\"\206<\207" [nick login host reason regexp-quote string-match "^\\(Read error\\) to " "\\[" "\\]: " "\\(.+\\)$" match-string 1 ": " 2 "^\\(Ping timeout\\) for " "\\]$"] 7 (#$ . 142244)])
#@89 If NICK is unavailable, tell the user the REASON.

See also `erc-display-error-notice'.
(defalias 'erc-nickname-in-use #[(nick reason) "\203	\n:\203\nGT\202\306=\203\307\310\311\312\f#\"\207	T
A@\313\314\315 \316!\2059rq\210))\"A\317
\203J
A\204q\320\203f\203f\321!GZ\202k\322GZ\"P\323!\210\307\310\311\324\f$\"*\207" [erc-try-new-nick-p erc-nick-change-attempt-count erc-nick nick reason erc-default-nicks 1 erc-display-error-notice nil format "Nickname %s is %s, try another." assoc "NICKLEN" erc-server-buffer buffer-live-p t truncate-string-to-width string-to-number 9 erc-cmd-NICK "Nickname %s is %s, trying %s" #1=#:buffer erc-server-parameters nicklen newnick erc-bad-nick erc-server-connected erc-nick-uniquifier] 7 (#$ . 142912)])
(custom-declare-group 'erc-server-hooks nil "Server event callbacks.\nEvery server event - like numeric replies - has its own hook.\nThose hooks are all called using `run-hook-with-args-until-success'.\nThey receive as first argument the process object from where the event\noriginated from,\nand as second argument the event parsed as a vector." :group 'erc-hooks)
#@53 Display the message sent by the server as a notice.
(defalias 'erc-display-server-message #[(proc parsed) "\302\303\304\305H	>\204\306\307\310\311#\210\312H$\207" [parsed cl-struct-erc-response-tags erc-display-message notice active 0 error "%s accessing a non-%s" erc-response\.contents erc-response 5] 8 (#$ . 144078)])
#@45 Put this on `erc-server-PRIVMSG-functions'.
(defalias 'erc-auto-query #[(proc parsed) "\205\220\306	\307H\n>\204\310\311\312\313#\210	\314H!@	\307H\n>\204'\310\311\315\313#\210	\316H@	\307H\n>\204:\310\311\317\313#\210	\320H\204G\202R\321\f!\203Q\202R\f\322	\307H\n>\204c\310\311\312\313#\210	\314H!\204\216\204v\f\323 \230\203\216\324\"\204\216\325
!\204\216\326!\210),\327\207" [erc-auto-query parsed cl-struct-erc-response-tags nick target msg erc-parse-user 0 error "%s accessing a non-%s" erc-response\.sender erc-response 2 erc-response\.command-args 4 erc-response\.contents 5 erc-current-nick-p erc-ignored-user-p erc-current-nick erc-get-buffer erc-is-message-ctcp-and-not-action-p erc-cmd-QUERY nil erc-query-on-unjoined-chan-privmsg query proc erc-query-display] 5 (#$ . 144411)])
#@44 Check if MESSAGE is a CTCP message or not.
(defalias 'erc-is-message-ctcp-p #[(message) "\301\302\"\207" [message string-match "^\\([^]*\\)?$"] 3 (#$ . 145245)])
#@44 Check if MESSAGE is a CTCP message or not.
(defalias 'erc-is-message-ctcp-and-not-action-p #[(message) "\301!\205\302\303\"?\207" [message erc-is-message-ctcp-p string-match "^\\ACTION.*$"] 3 (#$ . 145417)])
#@44 Format a PRIVMSG in an insertable fashion.
(defalias 'erc-format-privmessage #[(nick msg privp msgp) "\203	\203\f\306\202\307\202\310\203\"	\203\306\202#\311\202#\310\312\313\n\f
%	\2035\314\2026\315	\203@\316\202A\317\320\321\nG\322%\210\320\nG\nG\fG\\\322%\210\320\nG\fG\\G\322%\210-\207" [msgp privp mark-s mark-e nick msg "*" "<" "-" ">" format "%s%s%s %s" erc-nick-msg-face erc-nick-default-face erc-direct-msg-face erc-default-face erc-put-text-property 0 face str nick-face msg-face] 6 (#$ . 145637)])
#@52 Function to format a nickname for message display.
(custom-declare-variable 'erc-format-nick-function ''erc-format-nick '(#$ . 146195) :group 'erc-display :type 'function)
#@67 Return the nickname of USER.
See also `erc-format-nick-function'.
(defalias 'erc-format-nick #[(&optional user channel-data) "\205\302H	>\204\303\304\305\306#\210\307H\207" [user cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1] 4 (#$ . 146373)])
#@224 Format the nickname of USER showing if USER is an operator or has voice.
Operators have "@" and users with voice have "+" as a prefix.
Use CHANNEL-DATA to determine op and voice status.
See also `erc-format-nick-function'.
(defalias 'erc-format-@nick #[(&optional user channel-data) "\205M	\205	\306H\n>\204\307\310\311\312#\210	\313H\205\314	\2056	\306H\n>\204/\307\310\315\312#\210	\316H\2056\317\f\306H
>\204H\307\310\320\321#\210\313HQ*\207" [user channel-data cl-struct-erc-channel-user-tags voice op cl-struct-erc-server-user-tags 0 error "%s accessing a non-%s" erc-channel-user-op erc-channel-user 1 "@" erc-channel-user-voice 2 "+" erc-server-user-nickname erc-server-user] 6 (#$ . 146691)])
#@69 Return the beginning of this user's message, correctly propertized.
(defalias 'erc-format-my-nick #[nil "\203\305\306\307 \310\311\312#\310	\311\313#\310\n\311\312#Q+\207\306\310\f\311\312#)\207" [erc-show-my-nick nick close open prefix "<" "> " erc-current-nick erc-propertize face erc-default-face erc-my-nick-face] 6 (#$ . 147415)])
#@270 Echos a private notice in the default buffer, namely the
target buffer specified by BUFFER, or there is no target buffer,
the server buffer.  This function is designed to be added to
either `erc-echo-notice-hook' or `erc-echo-notice-always-hook',
and always returns t.
(defalias 'erc-echo-notice-in-default-buffer #[(s parsed buffer sender) "\303\304	\n$\210\305\207" [parsed buffer s erc-display-message nil t] 5 (#$ . 147766)])
#@205 Echos a private notice in BUFFER, if BUFFER is non-nil.  This
function is designed to be added to either `erc-echo-notice-hook'
or `erc-echo-notice-always-hook', and returns non-nil if BUFFER
is non-nil.
(defalias 'erc-echo-notice-in-target-buffer #[(s parsed buffer sender) "\205\f\303	\304\n$\210\305\207" [buffer parsed s erc-display-message nil t] 5 (#$ . 148204)])
#@171 Echos a private notice in the minibuffer.  This function is
designed to be added to either `erc-echo-notice-hook' or
`erc-echo-notice-always-hook', and always returns t.
(defalias 'erc-echo-notice-in-minibuffer #[(s parsed buffer sender) "\301\302\303P\"\210\304\207" [s message "%s" "NOTICE: " t] 4 (#$ . 148584)])
#@174 Echos a private notice in the server buffer.  This function is
designed to be added to either `erc-echo-notice-hook' or
`erc-echo-notice-always-hook', and always returns t.
(defalias 'erc-echo-notice-in-server-buffer #[(s parsed buffer sender) "\302\303\211	$\210\304\207" [parsed s erc-display-message nil t] 5 (#$ . 148908)])
#@265 Echos a private notice in the active buffer if the active
buffer is not the server buffer.  This function is designed to be
added to either `erc-echo-notice-hook' or
`erc-echo-notice-always-hook', and returns non-nil if the active
buffer is not the server buffer.
(defalias 'erc-echo-notice-in-active-non-server-buffer #[(s parsed buffer sender) "\302 \303 =?\205\304\305\306	$\210\307\207" [parsed s erc-server-buffer erc-active-buffer erc-display-message nil active t] 5 (#$ . 149244)])
#@174 Echos a private notice in the active buffer.  This function is
designed to be added to either `erc-echo-notice-hook' or
`erc-echo-notice-always-hook', and always returns t.
(defalias 'erc-echo-notice-in-active-buffer #[(s parsed buffer sender) "\302\303\304	$\210\305\207" [parsed s erc-display-message nil active t] 5 (#$ . 149743)])
#@348 Echos a private notice in all of the buffers for which SENDER
is a member.  This function is designed to be added to either
`erc-echo-notice-hook' or `erc-echo-notice-always-hook', and
returns non-nil if there is at least one buffer for which the
sender is a member.

See also: `erc-echo-notice-in-first-user-buffer',
`erc-buffer-list-with-nick'.
(defalias 'erc-echo-notice-in-user-buffers #[(s parsed buffer sender) "\305	\"\211\205\306\307\n\f$\210\310)\207" [sender erc-server-process buffers parsed s erc-buffer-list-with-nick erc-display-message nil t] 6 (#$ . 150086)])
#@379 Echos a private notice in BUFFER and in all of the buffers for
which SENDER is a member.  This function is designed to be added
to either `erc-echo-notice-hook' or
`erc-echo-notice-always-hook', and returns non-nil if there is
at least one buffer for which the sender is a member or the
default target.

See also: `erc-echo-notice-in-user-buffers',
`erc-buffer-list-with-nick'.
(defalias 'erc-echo-notice-in-user-and-target-buffers #[(s parsed buffer sender) "\306	\"\307\302\"\210\n\205\310\f\311\n
$\210\312)\207" [sender erc-server-process buffers buffer parsed s erc-buffer-list-with-nick add-to-list erc-display-message nil t] 5 (#$ . 150674)])
#@343 Echos a private notice in one of the buffers for which SENDER
is a member.  This function is designed to be added to either
`erc-echo-notice-hook' or `erc-echo-notice-always-hook', and
returns non-nil if there is at least one buffer for which the
sender is a member.

See also: `erc-echo-notice-in-user-buffers',
`erc-buffer-list-with-nick'.
(defalias 'erc-echo-notice-in-first-user-buffer #[(s parsed buffer sender) "\305	\"\211\205\306\307\n@\f$\210\310)\207" [sender erc-server-process buffers parsed s erc-buffer-list-with-nick erc-display-message nil t] 6 (#$ . 151336)])
#@35 Record ban entries for a channel.
(defalias 'erc-banlist-store #[(proc parsed) "\306H	>\204\307\310\311\312#\210\313HA\211@\nA@\314\n8\315\"rq\210
\fB\235\204;
\fBB.\316\207" [parsed cl-struct-erc-response-tags #1=#:--cl-var-- channel mask whoset 0 error "%s accessing a non-%s" erc-response\.command-args erc-response 4 2 erc-get-buffer nil proc buffer erc-channel-banlist] 5 (#$ . 151924)])
#@43 Record that we have received the banlist.
(defalias 'erc-banlist-finished #[(proc parsed) "\306H	>\204\307\310\311\312#\210\313H\211A@)\314\f\"r
q\210\315\316\317\320#\210+\320\207" [parsed cl-struct-erc-response-tags x channel proc buffer 0 error "%s accessing a non-%s" erc-response\.command-args erc-response 4 erc-get-buffer put erc-channel-banlist received-from-server t] 5 (#$ . 152346)])
#@68 Check MODE commands for bans and update the banlist appropriately.
(defalias 'erc-banlist-update #[(proc parsed) "\306H	>\204\307\310\311\312#\210\313H@\306H	>\204!\307\310\314\312#\210\315H\306H	>\2043\307\310\316\312#\210\317H\320\n
\"\211\203trq\210\321\322N\203s\323\324\"\203s\323\325\"\203d\326\327\"\202s\323\330\"\203s\331\332\333!A\"\210),\334\207" [parsed cl-struct-erc-response-tags tgt mode whoset proc 0 error "%s accessing a non-%s" erc-response\.command-args erc-response 4 erc-response\.contents 5 erc-response\.sender 2 erc-get-buffer erc-channel-banlist received-from-server string-match "^\\([+-]\\)b" "^-" erc-delete-if #[(y) "A\226\302\303\304	!A\"\235\207" [y mode mapcar upcase split-string] 5] "^+" mapc #[(mask) "	B\n\235?\205	B\nB\211\207" [whoset mask erc-channel-banlist] 2] split-string nil buffer] 5 (#$ . 152755)])
#@39 Group LIST into sublists of length N.
(defalias 'erc-group-list #[(list n) "\204\302\207	\233\204C\207\303\304	#\305	\233	\"B\207" [list n nil erc-subseq 0 erc-group-list] 4 (#$ . 153644)])
#@46 Handle the logging in process of connection.
(defalias 'erc-handle-login #[nil "?\205\302\303\304\305 \"\210\306 \211\205\307	!)\207" [erc-logged-in f t message "Logging in as '%s'... done" erc-current-nick erc-select-startup-file erc-load-script] 4 (#$ . 153849)])
#@78 Run just after connection.

Set user modes and run `erc-after-connect' hook.
(defalias 'erc-connection-established #[(proc parsed) "r\306!q\210	?\205Q\n\206 \307H\f>\204\310\311\312\313#\210\314H\307H\f>\204.\310\311\315\313#\210\316H@\306!\317\320 \210\321
\"\210\322
!\210\323\324#+)\207" [proc erc-server-connected erc-server-announced-name parsed cl-struct-erc-response-tags buffer process-buffer 0 error "%s accessing a non-%s" erc-response\.sender erc-response 2 erc-response\.command-args 4 t erc-update-mode-line erc-set-initial-user-mode erc-server-setup-periodical-ping run-hook-with-args erc-after-connect nick server] 5 (#$ . 154128)])
#@99 If `erc-user-mode' is non-nil for NICK, set the user modes.
The server buffer is given by BUFFER.
(defalias 'erc-set-initial-user-mode #[(nick buffer) "rq\210	\2051\306	!\203	 \202	\211;\2050\307\310\n#
\205'\311\f!)\210\312\307\313\n#!))\207" [buffer erc-user-mode mode nick string erc-log-p functionp format "changing mode for %s to %s" erc-log-aux erc-server-send "MODE %s %s"] 6 (#$ . 154805)])
#@69 Display STRING as an error notice.

See also `erc-display-message'.
(defalias 'erc-display-error-notice #[(parsed string) "\302\303\304	$\207" [parsed string erc-display-message (notice error) active] 5 (#$ . 155222)])
#@23 Process a CTCP query.
(defalias 'erc-process-ctcp-query #[(proc parsed nick login host) "\306\307\310\311H	>\204\312\313\314\315#\210\316H\317\"\"\211G\320V\203*\321\322\312D\323$\202\nG\311U\203?\321\322\312D\324\325\f&\202\n\205\310\n@!@\226\326\327
\330Q!\211'\203\331'!\203
\332\230\203\207\333'\f()\311H	>\204{\312\313\334\315#\210\320H@\n@&\210\202*\203\337\335\311H	>\204\233\312\313\334\315#\210\320H@!\203\271\321\312\336\337\325\f\340(\341)\342\n@&\f\210\202\337\321\312\336\343\325\f\340(\341)\342\n@\344\311H	>\204\330\312\313\334\315#\210\320H@&\210\333'\f()\311H	>\204\366\312\313\334\315#\210\320H@\n@&\210\202\321\322\312D\345$\210*\nA\211\204C\346)\207" [parsed cl-struct-erc-response-tags queries proc nick type delete "" split-string 0 error "%s accessing a non-%s" erc-response\.contents erc-response 5 "" 4 erc-display-message notice ctcp-too-many ctcp-empty 110 intern-soft "erc-ctcp-query-" "-hook" boundp "ACTION" run-hook-with-args-until-success erc-response\.command-args erc-current-nick-p active ctcp-request 117 104 114 ctcp-request-to 116 undefined-ctcp nil hook login host erc-paranoid] 19 (#$ . 155448)])
(defvar erc-ctcp-query-ACTION-hook '(erc-ctcp-query-ACTION))
#@33 Respond to a CTCP ACTION query.
(defalias 'erc-ctcp-query-ACTION #[(proc parsed nick login host to msg) "\306\307\"\2051\310\311\"\312	\n\"\206\312\n\"\206\313\n!\314\315\f\316\317\320\321\322
&\f*\207" [msg to proc nick buf s string-match "^ACTION\\s-\\(.*\\)\\s-*$" match-string 1 erc-get-buffer process-buffer erc-display-message action ACTION 110 117 104 97 parsed login host] 13 (#$ . 156721)])
(defvar erc-ctcp-query-CLIENTINFO-hook '(erc-ctcp-query-CLIENTINFO))
#@37 Respond to a CTCP CLIENTINFO query.
(defalias 'erc-ctcp-query-CLIENTINFO #[(proc nick login host to msg) "\304\305\"\203\306\307\310\311\"!!\n\204\312\313\314	\"\"\210)\315\207" [msg s erc-disable-ctcp-replies nick string-match "^CLIENTINFO\\(\\s-*\\|\\s-+.*\\)$" erc-client-info erc-trim-string match-string 1 erc-send-ctcp-notice format "CLIENTINFO %s" nil] 5 (#$ . 157213)])
(defvar erc-ctcp-query-ECHO-hook '(erc-ctcp-query-ECHO))
#@31 Respond to a CTCP ECHO query.
(defalias 'erc-ctcp-query-ECHO #[(proc nick login host to msg) "\304\305\"\203\306\307\"\n\204\310\311\312	\"\"\210)\313\207" [msg s erc-disable-ctcp-replies nick string-match "^ECHO\\s-+\\(.*\\)\\s-*$" match-string 1 erc-send-ctcp-notice format "ECHO %s" nil] 5 (#$ . 157662)])
(defvar erc-ctcp-query-FINGER-hook '(erc-ctcp-query-FINGER))
#@33 Respond to a CTCP FINGER query.
(defalias 'erc-ctcp-query-FINGER #[(proc nick login host to msg) "\2043	\203\306\307\310 \"\202\306\311\312 \313 \314 $\315\n\316 \"\317V\203-\f\320\321!Q\322
\f\"\210*\323\207" [erc-disable-ctcp-replies erc-anonymous-login erc-server-last-sent-time ns s nick format "FINGER I'm %s." erc-current-nick "FINGER %s (%s@%s)." user-full-name user-login-name system-name erc-time-diff erc-current-time 0 " Idle for " erc-sec-to-time erc-send-ctcp-notice nil] 5 (#$ . 158046)])
(defvar erc-ctcp-query-PING-hook '(erc-ctcp-query-PING))
#@31 Respond to a CTCP PING query.
(defalias 'erc-ctcp-query-PING #[(proc nick login host to msg) "\304\305\"\203	\204\306\307\"\310\311\312\n\"\"\210)\313\207" [msg erc-disable-ctcp-replies arg nick string-match "^PING\\s-+\\(.*\\)" match-string 1 erc-send-ctcp-notice format "PING %s" nil] 5 (#$ . 158624)])
(defvar erc-ctcp-query-TIME-hook '(erc-ctcp-query-TIME))
#@31 Respond to a CTCP TIME query.
(defalias 'erc-ctcp-query-TIME #[(proc nick login host to msg) "\204
\302	\303\304\305 \"\"\210\306\207" [erc-disable-ctcp-replies nick erc-send-ctcp-notice format "TIME %s" current-time-string nil] 5 (#$ . 159000)])
(defvar erc-ctcp-query-USERINFO-hook '(erc-ctcp-query-USERINFO))
#@35 Respond to a CTCP USERINFO query.
(defalias 'erc-ctcp-query-USERINFO #[(proc nick login host to msg) "\204\f\303	\304\305\n\"\"\210\306\207" [erc-disable-ctcp-replies nick erc-user-information erc-send-ctcp-notice format "USERINFO %s" nil] 5 (#$ . 159320)])
(defvar erc-ctcp-query-VERSION-hook '(erc-ctcp-query-VERSION))
#@34 Respond to a CTCP VERSION query.
(defalias 'erc-ctcp-query-VERSION #[(proc nick login host to msg) "\204
\304	\305\306\n#\"\210\307\207" [erc-disable-ctcp-replies nick erc-version-string erc-official-location erc-send-ctcp-notice format "VERSION ERC %s - an IRC client for emacs (%s)" nil] 6 (#$ . 159649)])
#@30 Process MSG as a CTCP reply.
(defalias 'erc-process-ctcp-reply #[(proc parsed nick login host msg) "\306!@\307\310	\311Q!\312\n!\2034\313\n\f
\314H>\204)\315\316\317\320#\210\321H@&\202E\322\323\324\325\326\f\327
\330\331&\f*\207" [msg type hook proc nick login split-string intern "erc-ctcp-reply-" "-hook" boundp run-hook-with-args-until-success 0 error "%s accessing a non-%s" erc-response\.command-args erc-response 4 erc-display-message notice active CTCP-UNKNOWN 110 117 104 109 host parsed cl-struct-erc-response-tags] 13 (#$ . 159970)])
(defvar erc-ctcp-reply-ECHO-hook '(erc-ctcp-reply-ECHO))
#@27 Handle a CTCP ECHO reply.
(defalias 'erc-ctcp-reply-ECHO #[(proc nick login host to msg) "\303\304\"\203\305\306\"\307\310\311\312\313\314\n\315	&\210)\310\207" [msg message nick string-match "^ECHO\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil (notice action) active CTCP-ECHO 110 109] 9 (#$ . 160600)])
(defvar erc-ctcp-reply-CLIENTINFO-hook '(erc-ctcp-reply-CLIENTINFO))
#@33 Handle a CTCP CLIENTINFO reply.
(defalias 'erc-ctcp-reply-CLIENTINFO #[(proc nick login host to msg) "\303\304\"\203\305\306\"\307\310\311\312\313\314\n\315	&\210)\310\207" [msg message nick string-match "^CLIENTINFO\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-CLIENTINFO 110 109] 9 (#$ . 160999)])
(defvar erc-ctcp-reply-FINGER-hook '(erc-ctcp-reply-FINGER))
#@29 Handle a CTCP FINGER reply.
(defalias 'erc-ctcp-reply-FINGER #[(proc nick login host to msg) "\303\304\"\203\305\306\"\307\310\311\312\313\314\n\315	&\210)\310\207" [msg message nick string-match "^FINGER\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-FINGER 110 109] 9 (#$ . 161405)])
(defvar erc-ctcp-reply-PING-hook '(erc-ctcp-reply-PING))
#@27 Handle a CTCP PING reply.
(defalias 'erc-ctcp-reply-PING #[(proc nick login host to msg) "\302\303\"\205\304\305\"\306\307\310\217)\207" [msg time string-match "^PING\\s-+\\([0-9.]+\\)" match-string 1 nil (byte-code "\303\304!\305 \"\306\307\310\311\312\313\n\314\315	!&)\207" [time delta nick erc-time-diff string-to-number erc-current-time erc-display-message nil notice active CTCP-PING 110 116 erc-sec-to-time] 10) ((range-error (byte-code "\302\303\304\305\306\307\310	&\207" [nick time erc-display-message nil error active bad-ping-response 110 116] 9)))] 3 (#$ . 161791)])
(defvar erc-ctcp-reply-TIME-hook '(erc-ctcp-reply-TIME))
#@27 Handle a CTCP TIME reply.
(defalias 'erc-ctcp-reply-TIME #[(proc nick login host to msg) "\303\304\"\203\305\306\"\307\310\311\312\313\314\n\315	&\210)\310\207" [msg message nick string-match "^TIME\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-TIME 110 109] 9 (#$ . 162444)])
(defvar erc-ctcp-reply-VERSION-hook '(erc-ctcp-reply-VERSION))
#@30 Handle a CTCP VERSION reply.
(defalias 'erc-ctcp-reply-VERSION #[(proc nick login host to msg) "\303\304\"\203\305\306\"\307\310\311\312\313\314\n\315	&\210)\310\207" [msg message nick string-match "^VERSION\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-VERSION 110 109] 9 (#$ . 162828)])
#@137 Toggle the away status of the user depending on the value of AWAY-P.

If nil, set the user as away.
If non-nil, return from being away.
(defalias 'erc-process-away #[(proc away-p) "\306!\211\203er	q\210\n\203,\307\310\n#
\205\311\f!)\210\312\203(\n\202*!\210\2037\313 \202d\314r\315 q\210\203c\316\317 \203`\307\320\321\322\323!\324 \"!\"\202a\325\"\210*)\326 )\207" [proc sessionbuf erc-away-nickname away-p string erc-log-p process-buffer format "erc-process-away: away-nick: %s, away-p: %s" erc-log-aux erc-cmd-NICK current-time nil erc-active-buffer erc-send-action erc-default-target "is back (gone for %s)" erc-sec-to-time erc-time-diff erc-emacs-time-to-erc-time erc-current-time "is back" erc-update-mode-line erc-nick erc-away away-time erc-public-away-p] 9 (#$ . 163162)])
#@191 Internal function.

Used when a channel names list is about to be received.  Should
be called with the current buffer set to the channel buffer.

See also `erc-channel-end-receiving-names'.
(defalias 'erc-channel-begin-receiving-names #[nil "\301\302\303\"\211\207" [erc-channel-new-member-names make-hash-table :test equal] 3 (#$ . 163985)])
#@215 Internal function.

Used to fix `erc-channel-users' after a channel names list has been
received.  Should be called with the current buffer set to the
channel buffer.

See also `erc-channel-begin-receiving-names'.
(defalias 'erc-channel-end-receiving-names #[nil "\302\303\"\210\304\211\207" [erc-channel-users erc-channel-new-member-names maphash #[(nick user) "\302	\"?\205\303!\207" [nick erc-channel-new-member-names gethash erc-remove-channel-user] 3] nil] 3 (#$ . 164336)])
#@121 Return an alist of valid prefix character types and their representations.
Example: (operator) o => @, (voiced) v => +.
(defalias 'erc-parse-prefix #[nil "\306\307\310 \311!\205rq\210	))\"A\206\312\313\211\314\315\f\"\205Y\316\317\f\"\316\320\f\"G\nG^\321\313W\203W\234\n\234B
BT\211\202<
++\207" [#1=#:buffer erc-server-parameters chars types str alist assoc "PREFIX" erc-server-buffer buffer-live-p "(ov)@+" nil string-match "^(\\([^)]+\\))\\(.+\\)$" match-string 1 2 0 i len] 5 (#$ . 164829)])
#@163 This function is for internal use only.

Update `erc-channel-users' according to NAMES-STRING.
NAMES-STRING is a string listing some of the names on the
channel.
(defalias 'erc-channel-receive-names #[(names-string) "\306\211\211\211\211\211\211\307 \310\236A\311\236A\312\313\314!\"\306\306\211\203\270@\315\306\316\317\234\"\203\221G\320U\203X\306\202\230\317\234
=\203n\320\306O\321\322\202\230\317\234\f=\203\204\320\306O\322\321\202\230\320\306O\322\211\202\230\322\211\203\256\323\324\n!\315#\210\325\n\211\315	%\210*A\211\2044+\326\327!.\207" [voice op name names voice-ch op-ch nil erc-parse-prefix 111 118 delete "" split-string t rassq 0 1 on off puthash erc-downcase erc-update-current-channel-member run-hooks erc-channel-members-changed-hook prefix names-string item --dolist-tail-- ch updatep erc-channel-new-member-names] 8 (#$ . 165368)])
#@147 This hook is called every time the variable `channel-members' changes.
The buffer where the change happened is current while this hook is called.
(custom-declare-variable 'erc-channel-members-changed-hook nil '(#$ . 166317) :group 'erc-hooks :type 'hook)
#@100 Updates the stored user information for the user with nickname
NICK.

See also: `erc-update-user'.
(defalias 'erc-update-user-nick #[(nick &optional new-nick host login full-name info) "\306\307 \310	!\205r	q\210\311\312!\n\")*\f
\f&\207" [nick #1=#:buffer erc-server-users new-nick host login erc-update-user erc-server-buffer buffer-live-p gethash erc-downcase full-name info] 7 (#$ . 166579)])
#@369 Update user info for USER.  USER must be an erc-server-user
struct.  Any of NEW-NICK, HOST, LOGIN, FULL-NAME, INFO which are
non-nil and not equal to the existing values for USER are used to
replace the stored values in USER.

If, and only if, a change is made,
`erc-channel-members-changed-hook' is run for each channel for
which USER is a member, and t is returned.
(defalias 'erc-update-user #[(user &optional new-nick host login full-name info) "\306	\2039\n\203'	\307H>\204\310\311\312\313#\210	\314H\n\232\204'\315\316	\n\"\210\f\203Y	\307H>\2049\310\311\317\313#\210	\320H\f\232\204Y\315	\307H>\204Q\310\311\317\313#\210	\211\320\fI\210)\203\217	\307H>\204l\310\311\321\313#\210	\322H\232\204\217\315	\307H>\204\205\310\311\321\313#\210	\211\322I\210)\203\305	\307H>\204\242\310\311\323\313#\210	\324H\232\204\305\315	\307H>\204\273\310\311\323\313#\210	\211\324I\210) \203\373	\307H>\204\330\310\311\325\313#\210	\326H \232\204\373\315	\307H>\204\361\310\311\325\313#\210	\211!\326 I\210)\2039	\307H>\204
\310\311\327\313#\210	\330H\306\"\211#\2038#@\"\331\"!\203/r\"q\210\332\333!\210)#A\211#\204*)\207" [changed user new-nick cl-struct-erc-server-user-tags host #1=#:v nil 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 t erc-change-user-nickname erc-server-user-host 2 erc-server-user-login 3 erc-server-user-full-name 4 erc-server-user-info 5 erc-server-user-buffers 6 buffer-live-p run-hooks erc-channel-members-changed-hook login #2=#:v full-name #3=#:v info #4=#:v buf --dolist-tail--] 5 (#$ . 166994)])
#@773 Updates the stored user information for the user with nickname
NICK.  `erc-update-user' is called to handle changes to nickname,
HOST, LOGIN, FULL-NAME, and INFO.  If OP or VOICE are non-nil,
they must be equal to either `on' or `off', in which case the
operator or voice status of the user in the current channel is
changed accordingly.  If UPDATE-MESSAGE-TIME is non-nil, the
last-message-time of the user in the current channel is set
to (current-time).

If ADD is non-nil, the user will be added with the specified
information if it is not already present in the user or channel
lists.

If, and only if, changes are made, or the user is added,
`erc-channel-members-updated-hook' is run, and t is returned.

See also: `erc-update-user' and `erc-update-channel-member'.
(defalias 'erc-update-current-channel-member #[(nick new-nick &optional add op voice host login full-name info update-message-time) "\306\211\n\307\310\n!\")\211\205\fA\f\203\f@\2029\n\311 (\312(!\2058r(q\210\307\310\n!)\")**
\203\313\314*
#+,\205P\315+!)\210-\203\240
\316H.>\204f\317\320\321\322#\210
\323H-=\204\240\324
\316H.>\204\200\317\320\321\322#\210
\211/\323-\325=\203\220\324\202\235-\326=\203\233\306\202\235-I\210)0\203\356
\316H.>\204\264\317\320\327\322#\210
\330H0=\204\356\324
\316H.>\204\316\317\320\327\322#\210
\2111\3300\325=\203\336\324\202\3530\326=\203\351\306\202\3530I\210)2\203\f
\316H.>\204\317\320\331\322#\210
\2113\332\333 I\210)\334*45678&\202\3319\203\331*\204_\335\336\n5678pC&*\n**\311 :\312:!\205Zr:q\210\337\310\n!*)#)+\210\202\216*\316H;>\204o\317\320\340\336#\210*\211<\341p*\316H;>\204\206\317\320\340\336#\210*\341HBI\210)\342\343-\325=\203\233\324\202\250-\326=\203\246\306\202\250-\3440\325=\203\264\324\202\3010\326=\203\277\306\202\3010\3452\205\311\333 &\337\310\n!*
B#\210\324\203\345	\204\345\346\347!\210\206\357	\206\3579-\207" [changed user-changed nick erc-channel-users channel-data cuser nil gethash erc-downcase erc-server-buffer buffer-live-p format "update-member: user = %S, cuser = %S" erc-log-aux 0 error "%s accessing a non-%s" erc-channel-user-op erc-channel-user 1 t on off erc-channel-user-voice 2 erc-channel-user-last-message-time 3 current-time erc-update-user vector erc-server-user puthash erc-server-user-buffers 6 make-erc-channel-user :op :voice :last-message-time run-hooks erc-channel-members-changed-hook #1=#:buffer erc-server-users user string erc-log-p op cl-struct-erc-channel-user-tags #2=#:v voice #3=#:v update-message-time #4=#:v new-nick host login full-name info add #5=#:buffer cl-struct-erc-server-user-tags #6=#:v] 9 (#$ . 168622)])
#@138 Updates user and channel information for the user with
nickname NICK in channel CHANNEL.

See also: `erc-update-current-channel-member'.
(defalias 'erc-update-channel-member #[(channel nick new-nick &optional add op voice host login full-name info update-message-time) "\306\307	!\203	\202'\n\206\310!\205	\205&\f\205&\311	\f\")\312
!\205Jr
q\210\313\f
&\n)+\207" [channel #1=#:target #2=#:process erc-server-process #3=#:proc #4=#:buf nil bufferp processp erc-get-buffer buffer-live-p erc-update-current-channel-member nick new-nick add op voice host login full-name info update-message-time] 11 (#$ . 171354)])
#@92 Remove NICK from current channel membership list.
Runs `erc-channel-members-changed-hook'.
(defalias 'erc-remove-current-channel-member #[(nick) "\303\304!	\")\211\205\305!\210\306\307!)\207" [nick erc-channel-users channel-data gethash erc-downcase erc-remove-channel-user run-hooks erc-channel-members-changed-hook] 4 (#$ . 172008)])
#@92 Remove NICK from CHANNEL's membership list.

See also `erc-remove-current-channel-member'.
(defalias 'erc-remove-channel-member #[(channel nick) "\306\307	!\203	\202'\n\206\310!\205	\205&\f\205&\311	\f\")\312
!\2057r
q\210\313\f!)+\207" [channel #1=#:target #2=#:process erc-server-process #3=#:proc #4=#:buf nil bufferp processp erc-get-buffer buffer-live-p erc-remove-current-channel-member nick] 3 (#$ . 172357)])
#@159 Find a buffer for CHANNEL and set the TOPIC for it.

If optional MODIFY is 'append or 'prepend, then append or prepend the
TOPIC string to the current topic.
(defalias 'erc-update-channel-topic #[(channel topic &optional modify) "\306\307	!\203	\202'\n\206\310!\205	\205&\f\205&\311	\f\")\312
!\205\\r
q\210\313=\203CP\202X\314=\203TP\202X\315p!)+\207" [channel #1=#:target #2=#:process erc-server-process #3=#:proc #4=#:buf nil bufferp processp erc-get-buffer buffer-live-p append prepend erc-update-mode-line-buffer modify erc-channel-topic topic] 3 (#$ . 172799)])
#@52 Set the modes for the TGT provided as MODE-STRING.
(defalias 'erc-set-modes #[(tgt mode-string) "\306!\211@	A@\307	8\310
!\205y\205\311
\"\211\205xrq\210\n\312\211\f\203s\f@@\f@A@\307\f@8\313\314\"\203[\315
#\210\202k\313\316\"\203k\317
#\210+\fA\211\2047\320!)),\207" [mode-string modes add-modes remove-modes arg-modes tgt erc-parse-modes 2 erc-channel-p erc-get-buffer nil string-match "^[Ll]" erc-update-channel-limit "^[Kk]" erc-update-channel-key erc-update-mode-line-buffer erc-server-process buf erc-channel-modes erc-channel-user-limit erc-channel-key arg onoff mode] 5 (#$ . 173414)])
#@65 Sort LIST-OF-STRINGS in lexicographic order.

Side-effect free.
(defalias 'erc-sort-strings #[(list-of-strings) "\301\302!\303\"\207" [list-of-strings sort copy-sequence string<] 3 (#$ . 174064)])
#@318 Parse MODE-STRING into a list.

Returns a list of three elements:

  (ADD-MODES REMOVE-MODES ARG-MODES).

The add-modes and remove-modes are lists of single-character strings
for modes without parameters to add and remove respectively.  The
arg-modes is a list of triples of the form:

  (MODE-CHAR ON/OFF ARGUMENT).
(defalias 'erc-parse-modes #[(mode-string) "\306\307\"\205\341\310\311\312\313\"\"\312\314\"\315\211\211\211\316\306\317\"\203:\312\313\"
B\312\314\"\202 
\237\203\322@\320\230\203O\316\202\311@\321\230\203\\\315\202\311\306\322@\"\203\205@	\203p\323\202q\324
\205w
@E\nB
\203\311
A\202\311\306\325@\"\203\266@	\203\231\323\202\232\324	\205\244
\205\244
@E\nB	\203\311
\203\311
A\202\311	\203\303@\fB\202\311@BA\211\204B\f\237\237\n\237\f\nE.\207" [mode-string add-p arg-modes remove-modes add-modes args string-match "^\\s-*\\(\\S-+\\)\\(\\s-.*$\\|$\\)" mapcar char-to-string match-string 1 2 nil t "^\\s-*\\(\\S-+\\)\\(\\s-+.*$\\|$\\)" "+" "-" "^[ovbOVB]" on off "^[LlKk]" args-str chars] 8 (#$ . 174269)])
#@158 Update the mode information for TGT, provided as MODE-STRING.
Optional arguments: NICK, HOST and LOGIN - the attributes of the
person who changed the modes.
(defalias 'erc-update-modes #[(tgt mode-string &optional nick host login) "\306!\211@	A@\307	8\310
!\203\320\205\311
\"\211\205\314q\210\312\313!\2042\314\203E\315@\"A\211\2046\n\203W\n@B\nA\211\204I\316!\f\203\310\f@@\f@A@\307\f@8\317\320\"\203\207\321
\211\314%\210\202\301\317\322\"\203\236\321
\211\314\211&\210\202\301\317\323\"\203\261\324
#\210\202\301\317\325\"\203\301\326
#\210\fA+\202]\327!)\202\321\314,\207" [mode-string modes add-modes remove-modes arg-modes tgt erc-parse-modes 2 erc-channel-p erc-get-buffer boundp erc-channel-modes nil delete erc-sort-strings string-match "^[oO]" erc-update-channel-member "^[Vv]" "^[Ll]" erc-update-channel-limit "^[Kk]" erc-update-channel-key erc-update-mode-line erc-server-process buf arg onoff mode] 8 (#$ . 175386)])
#@35 Update CHANNEL's user limit to N.
(defalias 'erc-update-channel-limit #[(channel onoff n) "\306=\203	;\205_\307\310	\"\205_\n\311\312!\203 \202<\f\206+\313
!\205+
\205;\205;\314\")\315!\205^rq\210\306=\203Y\316	!\211\202]\311\211)+\207" [onoff n channel #1=#:target #2=#:process erc-server-process on string-match "^[0-9]+$" nil bufferp processp erc-get-buffer buffer-live-p string-to-number #3=#:proc #4=#:buf erc-channel-user-limit] 3 (#$ . 176408)])
#@69 Update CHANNEL's key to KEY if ONOFF is 'on or to nil if it's 'off.
(defalias 'erc-update-channel-key #[(channel onoff key) "\306\307	!\203	\202'\n\206\310!\205	\205&\f\205&\311	\f\")\312
!\205Fr
q\210\f\313=\203A
\211\202E\306\211)+\207" [channel #1=#:target #2=#:process erc-server-process #3=#:proc #4=#:buf nil bufferp processp erc-get-buffer buffer-live-p on onoff key erc-channel-key] 3 (#$ . 176904)])
#@426 Handle changes in any user's status.

So far, only nick change is handled.

Generally, the TYPE argument is a symbol describing the change type, NLH is
a list containing the original nickname, login name and hostname for the user,
and L is a list containing additional TYPE-specific arguments.

So far the following TYPE/L pairs are supported:

       Event			TYPE		       L

    nickname change	       'nick		    (NEW-NICK)
(defalias 'erc-handle-user-status-change #[(type nlh &optional l) "\305\306	\n$\f\205\307!)\210\310\232\203\311\207\312\207" [type nlh l string erc-log-p format "user-change: type: %S  nlh: %S  l: %S" erc-log-aux nick t nil] 5 (#$ . 177345)])
#@90 Highlight notice message S and return it.
See also variable `erc-notice-highlight-type'.
(defalias 'erc-highlight-notice #[(s) "\303=\203\304\305	G\306\307\n%\210\n\207\310=\203\"\304\305\nG\306\307\n%\210\n\207\n\207" [erc-notice-highlight-type erc-notice-prefix s prefix erc-put-text-property 0 face erc-notice-face all] 6 (#$ . 178027)])
#@29 Notify the user of MESSAGE.
(defalias 'erc-make-notice #[(message) "\203	\301\303	\"\210\304\n	P!\207" [erc-minibuffer-notice message erc-notice-prefix "%s" erc-highlight-notice] 3 (#$ . 178379)])
#@42 Highlight error message S and return it.
(defalias 'erc-highlight-error #[(s) "\301\302G\303\304%\210\207" [s erc-put-text-property 0 face erc-error-face] 6 (#$ . 178584)])
#@453 Set text-property for an object (usually a string).
START and END define the characters covered.
PROPERTY is the text-property set, usually the symbol `face'.
VALUE is the value for the text-property, usually a face symbol such as
the face `bold' or `erc-pal-face'.
OBJECT is a string which will be modified and returned.
OBJECT is modified without being copied first.

You can redefine or `defadvice' this function in order to add
EmacsSpeak support.
(defalias 'erc-put-text-property #[(start end property value &optional object) "\305	\n\f%\207" [start end property value object put-text-property] 6 (#$ . 178767)])
#@71 Return THING if THING is a list, or a list with THING as its element.
(defalias 'erc-list #[(thing) "<\203\207C\207" [thing] 1 (#$ . 179393)])
#@102 Parse STRING as a user specification (nick!login@host).

Return a list of the three separate tokens.
(defalias 'erc-parse-user #[(string) "\301\302\"\203\303\304\"\303\305\"\303\306\"E\207\301\307\"\203'\303\304\"\310\303\305\"E\207\310\211E\207" [string string-match "^\\([^!\n]*\\)!\\([^@\n]*\\)@\\(.*\\)$" match-string 1 2 3 "^\\([^!\n]*\\)!\\(.*\\)$" ""] 5 (#$ . 179548)])
#@91 Return the nick corresponding to a user specification STRING.

See also `erc-parse-user'.
(defalias 'erc-extract-nick #[(string) "\301!@\207" [string erc-parse-user] 2 (#$ . 179942)])
#@203 Set text-properties for OBJECT.

START and END describe positions in OBJECT.
If VALUE-LIST is nil, set each property in PROPERTIES to t, else set
each property to the corresponding value in VALUE-LIST.
(defalias 'erc-put-text-properties #[(start end properties &optional object value-list) "\204	\305\306	\"	\205$\205$\307\n	\211A@\211A@\f%\210\202	\207" [value-list properties start end object mapcar #[(x) "\300\207" [t] 1] erc-put-text-property] 6 (#$ . 180134)])
#@124 Return the value of `point' at the beginning of the input line.

Specifically, return the position of `erc-insert-marker'.
(defalias 'erc-beg-of-input-line #[nil "\301\300!\203\f\302!\204\303\304!\210\305!\207" [erc-insert-marker boundp markerp error "erc-insert-marker has no value, please report a bug" marker-position] 2 (#$ . 180619)])
#@59 Return the value of `point' at the end of the input line.
(defalias 'erc-end-of-input-line #[nil "d\207" [] 1 (#$ . 180970)])
#@40 Parse current line and send it to IRC.
(defalias 'erc-send-current-line #[nil "\214~\210`\303 W\203\304\305!\202>\306\307 p\310 \204(\311	!\204(\304\312!\202=\313p!\210\303 \314 |\210\315\216\316	!\210)\317\320	\"+)\207" [old-buf str inhibit-read-only erc-beg-of-input-line erc-error "Point is not in the input area" t erc-user-input erc-server-buffer-live-p erc-command-no-process-p "ERC: No process running" erc-set-active-buffer erc-end-of-input-line ((byte-code "\304!\203-rq\210\214~\210db\210\305	!\203\306	!`\307\223\210\n`\307\223\210\310 \311 \210\312!\210+\307\207" [old-buf erc-server-process erc-insert-marker buffer-modified buffer-live-p processp process-mark nil buffer-modified-p erc-display-prompt set-buffer-modified-p] 3)) erc-send-input run-hook-with-args erc-send-completed-hook] 3 (#$ . 181102) nil])
#@53 Return the input of the user in the current buffer.
(defalias 'erc-user-input #[nil "\301\302 \"\207" [erc-input-marker buffer-substring-no-properties erc-end-of-input-line] 3 (#$ . 181947)])
#@55 Regular expression used for matching commands in ERC.
(defvar erc-command-regexp "^/\\([A-Za-z']+\\)\\(\\s-+.*\\|\\s-*\\)$" (#$ . 182146))
#@158 Treat INPUT as typed in by the user. It is assumed that the input
and the prompt is already deleted.
This returns non-nil only if we actually send anything.
(defalias 'erc-send-input #[(input) "\203\n	\306\230\202\307\310	\"\203\n\203\311\312!\210\313 \210\314\207	\315\315\316\317	\"\210
\205T\307\320\f\"\204<\307\f\"\204G\321\322\323\f\320\"\"\210\202S\324\f!\210\325\f\320P\315\314#\210\315*\207" [erc-send-whitespace-lines input erc-warn-about-blank-lines erc-insert-this str erc-send-this "" string-match "\\`[ 	
\f\n]*\\'" message "Blank line - ignoring..." beep nil t run-hook-with-args erc-send-pre-hook "\n" mapc #[(line) "\302\303\203\f\304	!\206	C\"\207" [erc-flood-protect line mapc #[(line) "\302!\210\303\304P	?\305#\207" [line erc-flood-protect erc-display-msg erc-process-input-line "\n" t] 4] erc-split-line] 4] split-string erc-display-command erc-process-input-line erc-command-regexp] 5 (#$ . 182292)])
(defalias 'erc-display-command #[(line) "\205H`\n\204\306\307\211\310 \310 \205\311$\210`\fc\210\312`\313\311$\210\314c\210)\315
!\2034\316
!`\307\223\210`\307\223\210\212\214	`}\210\317\320!\210\317\321!+\207" [erc-insert-this insert-position erc-hide-prompt beg line erc-server-process erc-display-prompt nil erc-command-indicator erc-command-indicator-face erc-put-text-property face "\n" processp process-mark run-hooks erc-send-modify-hook erc-send-post-hook erc-insert-marker] 5])
#@86 Display LINE as a message of the user to the current target at the
current position.
(defalias 'erc-display-msg #[(line) "\205:`\306 c\210`c\210\307\n`\310\311$\210)\312c\210\313\f!\203'\314\f!`\315\223\210
`\315\223\210\212\214	`}\210\316\317!\210\316\320!+\207" [erc-insert-this insert-position beg line erc-server-process erc-insert-marker erc-format-my-nick erc-put-text-property face erc-input-face "\n" processp process-mark nil run-hooks erc-send-modify-hook erc-send-post-hook] 5 (#$ . 183744)])
#@70 Return the ERC command symbol for COMMAND if it exists and is bound.
(defalias 'erc-command-symbol #[(command) "\302\303\304\226\"!\305	!\205	)\207" [command cmd intern-soft format "erc-cmd-%s" fboundp] 4 (#$ . 184260)])
#@180 Extract command and args from the input LINE.
If no command was given, return nil.  If command matches, return a
list of the form: (command args) where both elements are strings.
(defalias 'erc-extract-command-from-line #[(line) "\306	\"\205P\307\310\311	\"!\211\205 \nK9\205 \nK\211\204\312\n\206&\313\n\203J\f\314N\203;\315\316\310\317	\"\"\202K\320\321\322\323\310\317	\"!\324\"\"\202K	\f
,D\207" [erc-command-regexp line cmd canon-defun cmd-fun arg string-match erc-command-symbol match-string 1 nil erc-cmd-default do-not-parse-args format "%s" 2 delete "" split-string erc-trim-string " "] 8 (#$ . 184492)])
#@168 Split STRING, containing multiple lines and return them in a list.
Do it only for STRING as the complete input, do not carry unfinished
strings over to the next call.
(defalias 'erc-split-multiline-safe #[(string) "\306\307\310\203<\311\312	#	\306O\211\203&	
O\nB\307\225\2028\fG\307V\2036\f\nB\306\2028\306*\202\n\237+\207" [doit i0 l string s i nil 0 t string-match "
?\n"] 5 (#$ . 185129)])
#@35 Set the current nickname to NICK.
(defalias 'erc-set-current-nick #[(nick) "r\302\303 !\203
\303 \202pq\210\211)\207" [nick erc-server-current-nick buffer-live-p erc-server-buffer] 2 (#$ . 185550)])
#@30 Return the current nickname.
(defalias 'erc-current-nick #[nil "r\301\302 !\203
\302 \202pq\210)\207" [erc-server-current-nick buffer-live-p erc-server-buffer] 2 (#$ . 185760)])
#@49 Return non-nil if NICK is the current nickname.
(defalias 'erc-current-nick-p #[(nick) "\301\302 \"\207" [nick erc-nick-equal-p erc-current-nick] 3 (#$ . 185948)])
#@146 Return non-nil if NICK1 and NICK2 are the same.

This matches strings according to the IRC protocol's case convention.

See also `erc-downcase'.
(defalias 'erc-nick-equal-p #[(nick1 nick2) "\302!\302	!\230\207" [nick1 nick2 erc-downcase] 3 (#$ . 186120)])
#@75 Return the current default target (as a character string) or nil if none.
(defalias 'erc-default-target #[nil "@\211\204\302\202	<\203	A\202	)\207" [erc-default-recipients tgt nil] 2 (#$ . 186383)])
#@42 Add CHANNEL to the default channel list.
(defalias 'erc-add-default-channel #[(channel) "@A	\227\nB\211+\207" [erc-default-recipients channel chl d2 d1] 3 (#$ . 186598)])
#@47 Delete CHANNEL from the default channel list.
(defalias 'erc-delete-default-channel #[(channel &optional buffer) "pr	\203\304	!\203	\202pq\210\305\n\227\"\211*\207" [ob buffer channel erc-default-recipients bufferp delete] 3 (#$ . 186782)])
#@108 Add QUERY'd NICKNAME to the default channel list.

The previous default target of QUERY type gets removed.
(defalias 'erc-add-query #[(nickname) "@A\305	\227B\211<\203\f@\305=\203\nB\211\202$\nB\211+\207" [erc-default-recipients nickname qt d2 d1 QUERY] 5 (#$ . 187039)])
#@45 Delete the topmost target if it is a QUERY.
(defalias 'erc-delete-query #[nil "@A\211<\203\n@\303=\203	\211\202\304\305!*\207" [erc-default-recipients d2 d1 QUERY error "Current target is not a QUERY"] 3 (#$ . 187331)])
#@219 Return non-nil if SPEC matches something in `erc-ignore-list'.

Takes a full SPEC of a user in the form "nick!login@host", and
matches against all the regexp's in `erc-ignore-list'.  If any
match, returns that regexp.
(defalias 'erc-ignored-user-p #[(spec) "\300\301\215\207" [found (byte-code "\305 \306!\205rq\210	))\307\211\205.@\310\n\f\"\203&\311\312\n\"\210A\211\204\307*\207" [#1=#:buffer erc-ignore-list ignored --dolist-tail-- spec erc-server-buffer buffer-live-p nil string-match throw found] 4)] 2 (#$ . 187569)])
#@192 Return non-nil if MSG matches something in `erc-ignore-reply-list'.

Takes a message MSG to a channel and returns non-nil if the addressed
user matches any regexp in `erc-ignore-reply-list'.
(defalias 'erc-ignored-reply-p #[(msg tgt proc) "\306!\211\205o\n\f\307!\203\2024
\206#\310!\205#\2053\2053\311\")\312!\205nrq\210	\313 \312!\205^rq\210\314\315!\")*\211\205m\316\317!\"*+)\207" [msg target-nick tgt #1=#:target proc #2=#:process erc-message-target bufferp processp erc-get-buffer buffer-live-p erc-server-buffer gethash erc-downcase erc-list-match erc-user-spec erc-server-process #3=#:proc #4=#:buf nick #5=#:buffer erc-server-users user erc-ignore-reply-list] 5 (#$ . 188116)])
#@104 Return the addressed target in MSG.

The addressed target is the string before the first colon in MSG.
(defalias 'erc-message-target #[(msg) "\301\302\"\205\303\304\"\207" [msg string-match "^\\([^: \n]*\\):" match-string 1] 3 (#$ . 188863)])
#@50 Create a nick!user@host spec from a user struct.
(defalias 'erc-user-spec #[(user) "\305H	>\204\306\307\310\311#\210\312H\305H	>\204\306\307\313\311#\210\314H\305H	>\2040\306\307\315\311#\210\316H\211\203>\f\202?\317\320\n\203H\n\202I\317\321\203R\202S\317\260+\207" [user cl-struct-erc-server-user-tags login host nick 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 erc-server-user-host 2 erc-server-user-login 3 "" "!" "@"] 7 (#$ . 189116)])
#@50 Return non-nil if any regexp in LST matches STR.
(defalias 'erc-list-match #[(lst str) "\301\302\303\">\207" [lst nil mapcar #[(regexp) "\302	\"?\207" [regexp str string-match] 3]] 4 (#$ . 189617)])
#@161 Toggle automatic CTCP replies (like VERSION and PING).

If ARG is positive, turns CTCP replies on.

If ARG is non-nil and not positive, turns CTCP replies off.
(defalias 'erc-toggle-ctcp-autoresponse #[(&optional arg) "\247\203\302V\203\303\202\203\304\202	?\305\306	\203&\307\202'\310\"\207" [arg erc-disable-ctcp-replies 0 t nil message "ERC CTCP replies are %s" "OFF" "ON"] 3 (#$ . 189825) "P"])
#@242 Toggle use of flood control on sent messages.

If ARG is positive, use flood control.
If ARG is non-nil and not positive, do not use flood control.

See `erc-server-flood-margin' for an explanation of the available
flood control parameters.
(defalias 'erc-toggle-flood-control #[(&optional arg) "\247\203\302V\203\303\202\203\304\202	?\305\306	\203&\307\202'\310\"\207" [arg erc-flood-protect 0 t nil message "ERC flood control is %s" "ON" "OFF"] 3 (#$ . 190249) "P"])
#@161 Turn on the invite only mode (+i) for the current channel.

If ARG is non-nil, turn this mode off (-i).

This command is sent even if excess flood is detected.
(defalias 'erc-invite-only-mode #[(&optional arg) "\303p!\210\304 \305\211\203\306	!\204\307\310\311p\312$\2023\n\203+\313\314	\315QC\305\"\2023\313\314	\316QC\305\"*\207" [erc-force-send tgt arg erc-set-active-buffer erc-default-target t erc-channel-p erc-display-message nil error no-target erc-load-irc-script-lines "/mode " " -i" " +i"] 6 (#$ . 190743) "P"])
#@355 Read a key sequence and call the corresponding channel mode function.
After doing C-c C-o, type in a channel mode letter.

C-g means quit.
RET lets you type more than one mode at a time.
If "l" is pressed, `erc-set-channel-limit' gets called.
If "k" is pressed, `erc-set-channel-key' gets called.
Anything else will be sent to `erc-toggle-channel-mode'.
(defalias 'erc-get-channel-mode-from-keypress #[(key) "\301\232\203	\302 \207\303\232\203\304 \207\305\232\203\306\307!\207\310\232\203&\306\311!\207\312!\207" [key "" keyboard-quit "
" erc-insert-mode-command "l" call-interactively erc-set-channel-limit "k" erc-set-channel-key erc-toggle-channel-mode] 2 (#$ . 191282) "kChannel mode (RET to set more than one): "])
#@112 Toggle channel MODE.

If CHANNEL is non-nil, toggle MODE for that channel, otherwise use
`erc-default-target'.
(defalias 'erc-toggle-channel-mode #[(mode &optional channel) "\306p!\210\206\n\307 \310\211\203\311\n!\204 \312\313\314\315\316$\202a\f\235\203E\317\320\n#\2054\321
!)\210\322\323\"\210\324\317\325\n#!\202a\317\326\n#\205S\321
!)\210\322\327\"\210\324\317\330\n#!*\207" [channel erc-force-send tgt mode erc-channel-modes string erc-set-active-buffer erc-default-target t erc-channel-p erc-display-message nil error active no-target format "%s: Toggle mode %s OFF" erc-log-aux message "Toggle channel mode %s OFF" erc-server-send "MODE %s -%s" "%s: Toggle channel mode %s ON" "Toggle channel mode %s ON" "MODE %s +%s" erc-log-p] 6 (#$ . 192022) "P"])
#@55 Insert the line "/mode <current target> " at `point'.
(defalias 'erc-insert-mode-command #[nil "\301 \211\203\302\303Qc\202\304\305\306p\307$)\207" [tgt erc-default-target "/mode " " " erc-display-message nil error no-target] 6 (#$ . 192815) nil])
#@47 Run "/names #channel" in the current channel.
(defalias 'erc-channel-names #[nil "\301p!\210\302 \211\203\303\304PC!\202\305\306\307p\310$)\207" [tgt erc-set-active-buffer erc-default-target erc-load-irc-script-lines "/names " erc-display-message nil error no-target] 6 (#$ . 193075) nil])
#@63 Clears the region (START,END) in OBJECT from all colors, etc.
(defalias 'erc-remove-text-properties-region #[(start end &optional object) "\212\304\305	\n\306$*\207" [inhibit-read-only start end object t set-text-properties nil] 5 (#$ . 193377) "r"])
(put 'erc-remove-text-properties-region 'disabled t)
#@181 Search for a FILE in the filesystem.
First the `default-directory' is searched for FILE, then any directories
specified in the list PATH.

If FILE is found, return the path to it.
(defalias 'erc-find-file #[(file &optional path) "\303	!\203\f	\202(\n\203#\304\n@\"\303	!\204#\nA\211\204\n\205(	)\207" [file filepath path file-readable-p expand-file-name] 4 (#$ . 193690)])
#@63 Select an ERC startup file.
See also `erc-startup-file-list'.
(defalias 'erc-select-startup-file #[nil "\300\301\215\207" [found (byte-code "\303\211\205\"\n@\304	!\305	!\203\306\307	\"\210\nA\211\204\303*\207" [erc-startup-file-list f --dolist-tail-- nil convert-standard-filename file-readable-p throw found] 4)] 2 (#$ . 194081)])
#@71 Search for FILE in `default-directory', and any in `erc-script-path'.
(defalias 'erc-find-script-file #[(file) "\302	\"\207" [file erc-script-path erc-find-file] 3 (#$ . 194431)])
#@219 Load a script from FILE.

FILE must be the full name, it is not searched in the
`erc-script-path'.  If the filename ends with `.el', then load it
as an Emacs Lisp program.  Otherwise, treat it as a regular IRC
script.
(defalias 'erc-load-script #[(file) "\303P\n\205\304	!)\210\305\306\"\203\307!\207\310!\207" [file string erc-log-p "erc-load-script: " erc-log-aux string-match "\\.el$" load erc-load-irc-script] 3 (#$ . 194619)])
#@391 Process an IRC script LINE.

Does script-specific substitutions (script arguments, current nick,
server, etc.) in LINE and returns it.

Substitutions are: %C and %c = current target (channel or nick),
%S %s = current server, %N %n = my current nick, and %x is x verbatim,
where x is any other character;
$* = the entire argument string, $1 = the first argument, $2 = the second,
and so on.
(defalias 'erc-process-script-line #[(line &optional args) "\204\306\307\310	\311\nQ\312 \313\305!\205
\"\314 #\306$\315\211%&\316'\f\2041\306\"\2049\306\"#\204A\306#%\317\320%\"\203`\321\322%\"&B&\321\323%\"%\202D&\237\211&G'\317(\"%%\203t(\316%O)\306\211*+(%\315O,\317\324	P,\"\203\247\321\322,\"*,\322\225\315O,\202\300\317\324\nP,\"\203\300\321\322,\"*,\322\225\315O,$)P$*\306\230\203\322\306\202\\\317\325*\"\203\336\202\\\317\326*\"\203
\327\321\322*\"!-\330\331-\211\250#\210-'X\203-S&8\202	\306)\202\\\317\332*\"\203\f\202\\\317\333*\"\203&\"\202\\\317\334*\"\2033#\202\\\317\335*\"\203C\321\322*\"\202\\\336\337*\"./\205S\340.!)\210\330\341*\"\210\306+,(\317(\"%$+P$,\202p$(P\211$.\n\207" [args arg-esc-regexp percent-regexp esc-regexp tgt erc-session-server "" "\\(\\$\\(\\*\\|[1-9][0-9]*\\)\\)\\([^0-9]\\|$\\)" "\\(%.\\)" "\\|" erc-default-target boundp erc-current-nick nil 0 string-match "^\\s-*\\(\\S-+\\)\\(\\s-+.*$\\|$\\)" match-string 1 2 "^" "^\\$\\*$" "^\\$\\([0-9]+\\)$" string-to-number message "n = %S, integerp(n)=%S" "^%[Cc]$" "^%[Ss]$" "^%[Nn]$" "^%\\(.\\)$" format "BUG in erc-process-script-line: bad escape sequence: %S\n" erc-log-aux "BUG IN ERC: esc=%S" server nick res tmp arg-list arg-num line hd esc subst tail n string erc-log-p] 5 (#$ . 195067)])
#@31 Load an IRC script from FILE.
(defalias 'erc-load-irc-script #[(file &optional force) "\306P\n\205\307	!)\210\310\311!rq\210\312\216\313!\210\314 +\315\316\f!
\")\207" [file string erc-log-p #1=#:temp-buffer str force "erc-load-script: " erc-log-aux generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents buffer-string erc-load-irc-script-lines erc-split-multiline-safe] 3 (#$ . 196866)])
#@183 Load IRC script LINES (a list of strings).

If optional NOEXPAND is non-nil, do not expand script-specific
sequences, process the lines verbatim.  Use this for multiline
user input.
(defalias 'erc-load-irc-script-lines #[(lines &optional force noexpand) "p`\306\307 \206
\310 \311\304!\205\f\211\203&\312\313
\"\203&
\314\315O\316\317G\320\321%\210\205\212@\322\nP\205F\323!)\210\312\324\n\"\204\200\203X\n\202\\\325\n
\"\326\"\203\203\316\317G\320\327%\210\330P\"\210)A\211\2044\315-\207" [cb pnt s sp erc-script-args args "" erc-command-indicator erc-prompt boundp string-match "^ " 1 nil erc-put-text-property 0 face erc-command-indicator-face "erc-load-script: CMD: " erc-log-aux "^\\s-*$" erc-process-script-line erc-process-input-line erc-input-face erc-display-line lines string erc-log-p noexpand line force erc-script-echo] 7 (#$ . 197346)])
#@48 Perform user authentication at the IRC server.
(defalias 'erc-login #[nil "\306\307\310 \311 \206\f\312 	\n&\f\205\313!)\210
\203(\314\306\315
\"!\210\202,\316\317!\210\314\306\320\310 \"!\210\314\306\321\203A\202C\311 \322\323\n%!\210\324 \207" [erc-system-name erc-session-server erc-session-user-full-name string erc-log-p erc-session-password format "login: nick: %s, user: %s %s %s :%s" erc-current-nick user-login-name system-name erc-log-aux erc-server-send "PASS %s" message "Logging in without password" "NICK %s" "USER %s %s %s :%s" "0" "*" erc-update-mode-line erc-anonymous-login erc-email-userid] 7 (#$ . 198259)])
#@215 Determine the connection and authentication parameters.
Sets the buffer local variables:

- `erc-session-connector'
- `erc-session-server'
- `erc-session-port'
- `erc-session-full-name'
- `erc-server-current-nick'
(defalias 'erc-determine-parameters #[(&optional server port nick name) "\306\n!\f\206
\n\307!\f\310\311
!!\207" [erc-server-connect-function erc-session-connector server erc-session-server port erc-default-port erc-compute-server erc-compute-full-name erc-set-current-nick erc-compute-nick erc-session-port name erc-session-user-full-name nick] 3 (#$ . 198909)])
#@279 Return an IRC server name.

This tries a number of increasingly more default methods until a
non-nil value is found.

- SERVER (the argument passed to this function)
- The `erc-server' option
- The value of the IRCSERVER environment variable
- The `erc-default-server' variable
(defalias 'erc-compute-server #[(&optional server) "\206	\206\303\304!\206\n\207" [server erc-server erc-default-server getenv "IRCSERVER"] 2 (#$ . 199504)])
#@283 Return user's IRC nick.

This tries a number of increasingly more default methods until a
non-nil value is found.

- NICK (the argument passed to this function)
- The `erc-nick' option
- The value of the IRCNICK environment variable
- The result from the `user-login-name' function
(defalias 'erc-compute-nick #[(&optional nick) "\206	:\203	@\202	\206\302\303!\206\304 \207" [nick erc-nick getenv "IRCNICK" user-login-name] 2 (#$ . 199954)])
#@298 Return user's full name.

This tries a number of increasingly more default methods until a
non-nil value is found.

- FULL-NAME (the argument passed to this function)
- The `erc-user-full-name' option
- The value of the IRCNAME environment variable
- The result from the `user-full-name' function
(defalias 'erc-compute-full-name #[(&optional full-name) "\206	\206\303\304!\206\n\203\305\207\306 \207" [full-name erc-user-full-name erc-anonymous-login getenv "IRCNAME" "unknown" user-full-name] 2 (#$ . 200414)])
#@229 Return a port for an IRC server.

This tries a number of increasingly more default methods until a
non-nil value is found.

- PORT (the argument passed to this function)
- The `erc-port' option
- The `erc-default-port' variable
(defalias 'erc-compute-port #[(&optional port) "\206		\206	\n\207" [port erc-port erc-default-port] 1 (#$ . 200943)])
#@143 Convert the long number represented by STRING into an Emacs format.
Returns a list of the form (HIGH LOW), compatible with Emacs time format.
(defalias 'erc-string-to-emacs-time #[(string) "\302\303P!\304	\305\245!\304\306	\305\"!)D\207" [string n string-to-number ".0" truncate 65536 mod] 5 (#$ . 201299)])
#@60 Convert Emacs TIME to a number of seconds since the epoch.
(defalias 'erc-emacs-time-to-erc-time #[(time) "\205\f@\301_A@\\\207" [time 65536.0] 2 (#$ . 201615)])
#@107 Return the `current-time' as a number of seconds since the epoch.

See also `erc-emacs-time-to-erc-time'.
(defalias 'erc-current-time #[nil "\300\301 !\207" [erc-emacs-time-to-erc-time current-time] 2 (#$ . 201788)])
#@58 Return the time difference in seconds between T1 and T2.
(defalias 'erc-time-diff #[(t1 t2) "\302	Z!\207" [t2 t1 abs] 3 (#$ . 202011)])
#@24 Check whether T1 > T2.
(defalias 'erc-time-gt #[(t1 t2) "	V\207" [t1 t2] 2 (#$ . 202154)])
#@39 Convert NS to a time string HH:MM.SS.
(defalias 'erc-sec-to-time #[(ns) "\301!\302\303\304\245\304\246\305\245\305\246$\207" [ns truncate format "%02d:%02d.%02d" 3600 60] 6 (#$ . 202252)])
#@53 Convert a number of SECONDS into an English phrase.
(defalias 'erc-seconds-to-string #[(seconds) "\306\211\211\211\211
\307\245
\307\246\211\310\245
\310\246\211\311\245
\311\246\f\312V\2032\313\f\n
\257\202P\312V\203@\314\n
F\202P\n\312V\203M\315\n
E\202P\316
D\317\320	\"\321\322\"\203l\323\324\325\326\"\326\211\224%\202V-\207" [output format-args minutes hours days seconds nil 86400 3600 60 0 "%d days, %d hours, %d minutes, %d seconds" "%d hours, %d minutes, %d seconds" "%d minutes, %d seconds" "%d seconds" apply format string-match "\\([^0-9]\\|^\\)1 \\S-+\\(s\\)" erc-replace-match-subexpression-in-string "" match-string 2] 7 (#$ . 202452)])
#@44 Alist of CTCP CLIENTINFO for ERC commands.
(defconst erc-clientinfo-alist '(("ACTION" . "is used to inform about one's current activity") ("CLIENTINFO" . "gives help on CTCP commands supported by client") ("ECHO" . "echoes its arguments back") ("FINGER" . "shows user's name, location, and idle time") ("PING" . "measures delay between peers") ("TIME" . "shows client-side time") ("USERINFO" . "shows information provided by a user") ("VERSION" . "shows client type and version")) (#$ . 203141))
#@101 Return CTCP CLIENTINFO on command S.
If S is nil or an empty string then return general CLIENTINFO.
(defalias 'erc-client-info #[(s) "\203\n\303\230\203\304\305\306\307	\"\"\310P\207\311\226	\"\211\203&\312\nAQ\202)\313P)\207" [s erc-clientinfo-alist h "" apply concat mapcar #[(e) "@\301P\207" [e " "] 2] ": use CLIENTINFO <COMMAND> to get more specific information" assoc " " ": unknown command"] 6 (#$ . 203644)])
#@80 Determine whether DIR is a writable directory.
If it doesn't exist, create it.
(defalias 'erc-directory-writable-p #[(dir) "\301!\204\n\302!\210\303!\206\304\305\"\207" [dir file-attributes make-directory file-accessible-directory-p error "Cannot access %s"] 3 (#$ . 204079)])
#@30 Kill all buffers of PROCESS.
(defalias 'erc-kill-query-buffers #[(process) "\303\304\305\306\n	\"\"*\207" [process #1=#:pro #2=#:pre #[nil "\300 ?\207" [erc-server-buffer-p] 1] mapcar #[(buffer) "rq\210\301p!)\207" [buffer kill-buffer] 2] erc-buffer-list] 6 (#$ . 204369)])
#@206 Give information about the nickname at `point'.

If called interactively, give a human readable message in the
minibuffer.  If called programmatically, return the corresponding
entry of `channel-members'.
(defalias 'erc-nick-at-point #[nil "\306\307!\210\310 \211\311\312	!\n\")\211A\203@\2025\313 \314
!\2054r
q\210\311\312	!)\")**\315\211+,\315\211-.\315\211/\3150*\2051*\316H1>\204`\317\320\321\322#\210*\323H*\316H1>\204u\317\320\324\322#\210*\325H+*\316H1>\204\213\317\320\326\322#\210*\327H,*\316H1>\204\241\317\320\330\322#\210*\331H-*\316H1>\204\267\317\320\332\322#\210*\333H.\f\203\351\f\316H2>\204\320\317\320\334\335#\210\f\323H/\f\316H2>\204\344\317\320\336\335#\210\f\325H0\337 \203/\340\341	,+-\203\342\343-\"\202\344/\204
0\203)\342\345/\203\346\202\3440\203\"\347\202#\344\350 $\202*\344&\2021*.\207" [word nick erc-channel-users channel-data cuser #1=#:buffer require thingatpt word-at-point gethash erc-downcase erc-server-buffer buffer-live-p nil 0 error "%s accessing a non-%s" erc-server-user-nickname erc-server-user 1 erc-server-user-host 2 erc-server-user-login 3 erc-server-user-full-name 4 erc-server-user-info 5 erc-channel-user-op erc-channel-user erc-channel-user-voice interactive-p message "%s is %s@%s%s%s" format " (%s)" "" " and is +%s%s on %s" "o" "v" erc-default-target erc-server-users user host login full-name info op voice cl-struct-erc-server-user-tags cl-struct-erc-channel-user-tags] 12 (#$ . 204654) nil])
#@167 Return non-nil if the current ERC process is set away.

In particular, the time that we were set away is returned.
See `current-time' for details on the time format.
(defalias 'erc-away-time #[nil "\302 \303!\205rq\210	))\207" [#1=#:buffer erc-away erc-server-buffer buffer-live-p] 2 (#$ . 206194)])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\313\314\306\315&	\210\300\316\317\320\304\305\306\321&\210\300\322\323\324\304\305\306\321&\210\300\325\317\326\304\305\306\327&\210\300\330\323\331\304\332\306\321&\210\300\333\334\335\304\305\306\336&\210\300\337\340\341\304\305\306\307&\207" [custom-declare-variable erc-mode-line-format "%S %a" "A string to be formatted and shown in the mode-line in `erc-mode'.\n\nThe string is formatted using `format-spec' and the result is set as the value\nof `mode-line-buffer-identification'.\n\nThe following characters are replaced:\n%a: String indicating away status or \"\" if you are not away\n%l: The estimated lag time to the server\n%m: The modes of the channel\n%n: The current nick name\n%N: The name of the network\n%o: The topic of the channel\n%p: The session port\n%t: The name of the target (channel, nickname, or servername:port)\n%s: In the server-buffer, this gets filled with the value of\n    `erc-server-announced-name', in a channel, the value of\n    (erc-default-target) also get concatenated.\n%S: In the server-buffer, this gets filled with the value of\n    `erc-network', in a channel, the value of (erc-default-target)\n    also get concatenated." :group erc-mode-line-and-header :type string erc-header-line-format "%n on %t (%m,%l) %o" "A string to be formatted and shown in the header-line in `erc-mode'.\nOnly used starting in Emacs 21.\n\nSet this to nil if you do not want the header line to be\ndisplayed.\n\nSee `erc-mode-line-format' for which characters are can be used." :set #[(sym val) "	L\210\302\303!\205
\303\304!\207" [sym val fboundp erc-update-mode-line nil] 2] (choice (const :tag "Disabled" nil) string) erc-header-line-uses-tabbar-p nil "Use tabbar mode instead of the header line to display the header." boolean erc-header-line-uses-help-echo-p t "Show the contents of the header line in the echo area or as a tooltip\nwhen you move point into the header line." erc-header-line-face-method "Determine what method to use when colorizing the header line text.\n\nIf nil, don't colorize the header text.\nIf given a function, call it and use the resulting face name.\nOtherwise, use the `erc-header-line' face." (choice (const :tag "Don't colorize" nil) (const :tag "Use the erc-header-line face" t) (function :tag "Call a function")) erc-show-channel-key-p "Show the channel key in the header line." erc-paranoia erc-common-server-suffixes '(("openprojects.net$" . "OPN") ("freenode.net$" . "freenode") ("oftc.net$" . "OFTC")) "Alist of common server name suffixes.\nThis variable is used in mode-line display to save screen\nreal estate.  Set it to nil if you want to avoid changing\ndisplayed hostnames." alist erc-mode-line-away-status-format "(AWAY since %a %b %d %H:%M) " "When you're away on a server, this is shown in the mode line.\nThis should be a string with substitution variables recognized by\n`format-time-string'."] 10)
#@64 Shorten SERVER-NAME according to `erc-common-server-suffixes'.
(defalias 'erc-shorten-server-name #[(server-name) ";\205<\305\306!r	q\210\307\216c\210\n\211\2038eb\210\310\211@@)\311\312#\2031\313\211@A)!\210A\211\204)\314 +\207" [server-name #1=#:temp-buffer erc-common-server-suffixes alist x generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) re-search-forward nil t replace-match buffer-string] 5 (#$ . 209469)])
#@73 Return the name of the target (channel or nickname or servername:port).
(defalias 'erc-format-target #[nil "\304 \211\206\305	\206
\n!\306\307!Q)\207" [target erc-server-announced-name erc-session-server erc-session-port erc-default-target erc-shorten-server-name ":" erc-port-to-string] 5 (#$ . 209966)])
#@72 Return the server name or the current target and server name combined.
(defalias 'erc-format-target-and/or-server #[nil "\303\206	!\304 \203\305\304 !\306\nQ\202\"\n\203\n\202\"\307p!)\207" [erc-server-announced-name erc-session-server server-name erc-shorten-server-name erc-default-target erc-string-no-properties "@" buffer-name] 3 (#$ . 210283)])
#@53 Return the name of the network we are currently on.
(defalias 'erc-format-network #[nil "\301\302!\205\302 \211\2039\203\303!\202\304)\207" [network fboundp erc-network-name symbol-name ""] 3 (#$ . 210650)])
#@153 Return the network or the current target and network combined.
If the name of the network is not available, then use the
shortened server name instead.
(defalias 'erc-format-target-and/or-network #[nil "\303\304!\203\304 \206\305\206	!\211\203 \n9\203 \306\n!\307 \203/\310\307 !\311\nQ\202:\n\2037\n\202:\312p!)\207" [erc-server-announced-name erc-session-server network-name fboundp erc-network-name erc-shorten-server-name symbol-name erc-default-target erc-string-no-properties "@" buffer-name] 4 (#$ . 210876)])
#@81 Return a formatted `erc-mode-line-away-status-format'
if `erc-away' is non-nil.
(defalias 'erc-format-away-status #[nil "\302 \211\203\303	\"\202\304)\207" [a erc-mode-line-away-status-format erc-away-time format-time-string ""] 4 (#$ . 211414)])
#@37 Return the current channel's modes.
(defalias 'erc-format-channel-modes #[nil "\304\305\306#	\203 \n\203 \203\307\310	\n#\202?\307\311	\"\202?	\203+\307\312	\"\202?\n\203>\203:\307\313\n\"\202?\314\202?\315P\207" [erc-channel-modes erc-channel-user-limit erc-channel-key erc-show-channel-key-p apply concat "+" format "lk %.0f %s" "kl %.0f" "l %.0f" "k %s" "k" nil] 5 (#$ . 211673)])
#@60 Return the estimated lag time to server, `erc-server-lag'.
(defalias 'erc-format-lag-time #[nil "\303 \304!\205rq\210	))\211\203\305\306\n\"\202\307)\207" [#1=#:buffer erc-server-lag lag erc-server-buffer buffer-live-p format "lag:%.0f" ""] 4 (#$ . 212078)])
#@53 Update the mode line in a single ERC buffer BUFFER.
(defalias 'erc-update-mode-line-buffer #[(buffer) "rq\210\306\307\310 \311\312 \313\314 \315\316 \206\317\320\321 \322\323	!\324\325\n!\326\327 \330\331 \332\333 &\334 \2038\2048\335\202B\334 \203A\317\202B\336\f\337=\203L\337\202X\340\f!\203W\f \202X\34134\34254\"C63C7\343\344!\203\3578\205|\34284\"9:\203\222\345\346!\210$&\347\344!\210\202\3569\204\235\337$\202\356;\203\335\350\351!<r<q\210\352\2169c\210\353ed\"\210\354 +1\355\356\357
\203\317\3609\3611\305
%\202\326\3609\3611##$)\202\356
\203\352\3609\305
#\202\3549$)+\362 )\207" [buffer erc-channel-topic erc-session-port erc-server-connected erc-header-line-face-method face format-spec-make 97 erc-format-away-status 108 erc-format-lag-time 109 erc-format-channel-modes 110 erc-current-nick "" 78 erc-format-network 111 erc-controls-strip 112 erc-port-to-string 115 erc-format-target-and/or-server 83 erc-format-target-and/or-network 116 erc-format-target erc-server-process-alive ":connecting" ": CLOSED" nil functionp erc-header-line format-spec boundp header-line-format make-local-variable tabbar--local-hlf kill-local-variable generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) fill-region buffer-string erc-replace-regexp-in-string "%" "%%" erc-propertize help-echo force-mode-line-update process-status spec erc-mode-line-format mode-line-buffer-identification mode-line-process erc-header-line-format header erc-header-line-uses-tabbar-p erc-header-line-uses-help-echo-p #1#] 21 (#$ . 212353)])
#@93 Update the mode line in BUFFER.

If BUFFER is nil, update the mode line in all ERC buffers.
(defalias 'erc-update-mode-line #[(&optional buffer) "\203\303!\203\304!\207\305 \306\211\205,\n@\307	!\203$\304	!\210\nA\211\204\306*\207" [buffer buf --dolist-tail-- bufferp erc-update-mode-line-buffer erc-buffer-list nil buffer-live-p] 3 (#$ . 214004)])
#@68 Convert port P to a string.
P may be an integer or a service name.
(defalias 'erc-port-to-string #[(p) "\250\203	\301!\207\207" [p int-to-string] 2 (#$ . 214374)])
#@70 Convert string S to either an integer port number or a service name.
(defalias 'erc-string-to-port #[(s) "\247\203\207\302!\211\303U\203\202	)\207" [s n string-to-number 0] 3 (#$ . 214548)])
#@121 Show the version number of ERC in the minibuffer.
If optional argument HERE is non-nil, insert version number at point.
(defalias 'erc-version #[(&optional here) "\304\305	#\203\nc\202\306 \203\307\310\n\"\202\n)\207" [erc-version-string emacs-version version-string here format "ERC %s (GNU Emacs %s)" interactive-p message "%s"] 4 (#$ . 214757) "P"])
#@116 Show the active ERC modes in the minibuffer.
If optional argument HERE is non-nil, insert version number at point.
(defalias 'erc-modes #[(&optional here) "\306\307\310\211\311\312!\310\211\203+@\313\n!\203$\nJ\203$\314\n!	BA\211\204*	*\315#
\203:\fc\202G\316 \203F\317\320\f\"\202G\f)\207" [case-fold-search modes var --dolist-tail-- string here mapconcat identity nil apropos-internal "^erc-.*mode$" boundp symbol-name ", " interactive-p message "%s"] 5 (#$ . 215128) "P"])
#@41 Trim leading and trailing spaces off S.
(defalias 'erc-trim-string #[(s) ";\204\301\207\302\303\"\203\304\207\302\305\"\203\306\307\"\207\207" [s nil string-match "^\\s-*$" "" "^\\s-*\\(.*\\S-\\)\\s-*$" match-string 1] 3 (#$ . 215629)])
#@122 Open a window for every non-server buffer related to `erc-session-server'.

All windows are opened in the current frame.
(defalias 'erc-arrange-session-in-multiple-windows #[nil "\204\302\303!\210\304\305\"\211\2055\306 \210\307	@!\210	A	\2055\310 \210\311\312!\210\307	@!\210	A\313 \210\202)\207" [erc-server-process bufs error "No erc-server-process found in current buffer" erc-buffer-list nil delete-other-windows switch-to-buffer split-window other-window 1 balance-windows] 4 (#$ . 215884) nil])
#@26 Provide an input buffer.
(defalias 'erc-popup-input-buffer #[nil "\302\303!\304\305\306\307\310\311\312\313\"\"\314\315$!\316\317p	\"!\210 \210``}\210\320 *\207" [mode buffer-name generate-new-buffer-name "*ERC input*" intern completing-read "Mode: " mapcar #[(e) "\301!C\207" [e symbol-name] 2] apropos-internal "-mode$" commandp nil t pop-to-buffer make-indirect-buffer shrink-window-if-larger-than-buffer] 9 (#$ . 216403) nil])
#@58 Create a variable name corresponding to CATALOG's ENTRY.
(defalias 'erc-make-message-variable-name #[(catalog entry) "\302\303\304!\305\304	!R!\207" [catalog entry intern "erc-message-" symbol-name "-"] 6 (#$ . 216844)])
#@37 Set CATALOG's ENTRY to FORMAT-SPEC.
(defalias 'erc-define-catalog-entry #[(catalog entry format-spec) "\303	\"\nL\207" [catalog entry format-spec erc-make-message-variable-name] 3 (#$ . 217072)])
#@40 Define a CATALOG according to ENTRIES.
(defalias 'erc-define-catalog #[(catalog entries) "\304\211\205\n@\305	@	A#\210\nA\211\204\304*\207" [entries entry --dolist-tail-- catalog nil erc-define-catalog-entry] 5 (#$ . 217275)])
(erc-define-catalog 'english '((bad-ping-response . "Unexpected PING response from %n (time %t)") (bad-syntax . "Error occurred - incorrect usage?\n%c %u\n%d") (incorrect-args . "Incorrect arguments. Usage:\n%c %u\n%d") (cannot-find-file . "Cannot find file %f") (cannot-read-file . "Cannot read file %f") (connect . "Connecting to %S:%p... ") (country . "%c") (country-unknown . "%d: No such domain") (ctcp-empty . "Illegal empty CTCP query received from %n. Ignoring.") (ctcp-request . "==> CTCP request from %n (%u@%h): %r") (ctcp-request-to . "==> CTCP request from %n (%u@%h) to %t: %r") (ctcp-too-many . "Too many CTCP queries in single message. Ignoring") (flood-ctcp-off . "FLOOD PROTECTION: Automatic CTCP responses turned off.") (flood-strict-mode . "FLOOD PROTECTION: Switched to Strict Flood Control mode.") (disconnected . "\n\nConnection failed!  Re-establishing connection...\n") (disconnected-noreconnect . "\n\nConnection failed!  Not re-establishing connection.\n") (finished . "\n\n*** ERC finished ***\n") (terminated . "\n\n*** ERC terminated: %e\n") (login . "Logging in as '%n'...") (nick-in-use . "%n is in use. Choose new nickname: ") (nick-too-long . "WARNING: Nick length (%i) exceeds max NICKLEN(%l) defined by server") (no-default-channel . "No default channel") (no-invitation . "You've got no invitation") (no-target . "No target") (ops . "%i operator%s: %o") (ops-none . "No operators in this channel.") (undefined-ctcp . "Undefined CTCP query received. Silently ignored") (variable-not-bound . "Variable not bound!") (ACTION . "* %n %a") (CTCP-CLIENTINFO . "Client info for %n: %m") (CTCP-ECHO . "Echo %n: %m") (CTCP-FINGER . "Finger info for %n: %m") (CTCP-PING . "Ping time to %n is %t") (CTCP-TIME . "Time by %n is %m") (CTCP-UNKNOWN . "Unknown CTCP message from %n (%u@%h): %m") (CTCP-VERSION . "Version for %n is %m") (ERROR . "==> ERROR from %s: %c\n") (INVITE . "%n (%u@%h) invites you to channel %c") (JOIN . "%n (%u@%h) has joined channel %c") (JOIN-you . "You have joined channel %c") (KICK . "%n (%u@%h) has kicked %k off channel %c: %r") (KICK-you . "You have been kicked off channel %c by %n (%u@%h): %r") (KICK-by-you . "You have kicked %k off channel %c: %r") (MODE . "%n (%u@%h) has changed mode for %t to %m") (MODE-nick . "%n has changed mode for %t to %m") (NICK . "%n (%u@%h) is now known as %N") (NICK-you . "Your new nickname is %N") (PART . erc-message-english-PART) (PING . "PING from server (last: %s sec. ago)") (PONG . "PONG from %h (%i second%s)") (QUIT . "%n (%u@%h) has quit: %r") (TOPIC . "%n (%u@%h) has set the topic for %c: \"%T\"") (WALLOPS . "Wallops from %n: %m") (s004 . "%s %v %U %C") (s221 . "User modes for %n: %m") (s252 . "%i operator(s) online") (s253 . "%i unknown connection(s)") (s254 . "%i channels formed") (s275 . "%n %m") (s301 . "%n is AWAY: %r") (s303 . "Is online: %n") (s305 . "%m") (s306 . "%m") (s307 . "%n %m") (s311 . "%n is %f (%u@%h)") (s312 . "%n is/was on server %s (%c)") (s313 . "%n is an IRC operator") (s314 . "%n was %f (%u@%h)") (s317 . "%n has been idle for %i") (s317-on-since . "%n has been idle for %i, on since %t") (s319 . "%n is on channel(s): %c") (s320 . "%n is an identified user") (s321 . "Channel  Users  Topic") (s322 . "%c [%u] %t") (s324 . "%c modes: %m") (s328 . "%c URL: %u") (s329 . "%c was created on %t") (s330 . "%n %a %i") (s331 . "No topic is set for %c") (s332 . "Topic for %c: %T") (s333 . "%c: topic set by %n, %t") (s341 . "Inviting %n to channel %c") (s352 . "%-11c %-10n %-4a %u@%h (%f)") (s353 . "Users on %c: %u") (s367 . "Ban for %b on %c") (s367-set-by . "Ban for %b on %c set by %s on %t") (s368 . "Banlist of %c ends.") (s379 . "%c: Forwarded to %f") (s391 . "The time at %s is %t") (s401 . "%n: No such nick/channel") (s403 . "%c: No such channel") (s404 . "%c: Cannot send to channel") (s405 . "%c: You have joined too many channels") (s406 . "%n: There was no such nickname") (s412 . "No text to send") (s421 . "%c: Unknown command") (s431 . "No nickname given") (s432 . "%n is an erroneous nickname") (s442 . "%c: You're not on that channel") (s445 . "SUMMON has been disabled") (s446 . "USERS has been disabled") (s451 . "You have not registered") (s461 . "%c: not enough parameters") (s462 . "Unauthorized command (already registered)") (s463 . "Your host isn't among the privileged") (s464 . "Password incorrect") (s465 . "You are banned from this server") (s474 . "You can't join %c because you're banned (+b)") (s475 . "You must specify the correct channel key (+k) to join %c") (s481 . "Permission Denied - You're not an IRC operator") (s482 . "You need to be a channel operator of %c to do that") (s483 . "You can't kill a server!") (s484 . "Your connection is restricted!") (s485 . "You're not the original channel operator") (s491 . "No O-lines for your host") (s501 . "Unknown MODE flag") (s502 . "You can't change modes for other users") (s671 . "%n %a")))
#@109 Format a proper PART message.

This function is an example on what could be done with formatting
functions.
(defalias 'erc-message-english-PART #[(&rest args) "\306>\211A@)\307>\211A@)\310>\211A@)\311>\211A@)\312>\211A@)\211\313 \230\203<\314\315\"\202W\314\316
\f\n\317\230\204T\314\320\321\322\323\n#\"\202U\317&-\207" [args x reason channel host user 110 117 104 99 114 erc-current-nick format "You have left channel %s" "%s (%s@%s) has left channel %s%s" "" ": %s" erc-replace-regexp-in-string "%" "%%" nick] 13 (#$ . 222428)])
(defvar erc-current-message-catalog 'english)
(make-variable-buffer-local 'erc-current-message-catalog)
#@171 Retrieve ENTRY from CATALOG.

If CATALOG is nil, `erc-current-message-catalog' is used.

If ENTRY is nil in CATALOG, it is retrieved from the fallback,
english, catalog.
(defalias 'erc-retrieve-catalog-entry #[(entry &optional catalog) "\204	\304\n\"\305!\203J\202$\305\304\306\n\"!\205$\304\306\n\"J)\207" [catalog erc-current-message-catalog entry var erc-make-message-variable-name boundp english] 4 (#$ . 223096)])
#@56 Format MSG according to ARGS.

See also `format-spec'.
(defalias 'erc-format-message #[(msg &rest args) "\303G\304\"\304=\203\305\306!\210\307	!\211\204\305\310	\"\210\311\n!\203&\312\n\"\313\n\312\314\"\")\207" [args msg entry logand 1 error "Obscure usage of this function appeared" erc-retrieve-catalog-entry "No format spec for message %s" functionp apply format-spec format-spec-make] 6 (#$ . 223533)])
(byte-code "\300\301\302\"\210\303\304\305\306\307\310\311\312&\210\303\313\314\315\307\310\311\312&\210\303\316\317\320\307\310\311\312&\207" [add-hook kill-buffer-hook erc-kill-buffer-function custom-declare-variable erc-kill-server-hook '(erc-kill-server) "Invoked whenever a server-buffer is killed via `kill-buffer'." :group erc-hooks :type hook erc-kill-channel-hook '(erc-kill-channel) "Invoked whenever a channel-buffer is killed via `kill-buffer'." erc-kill-buffer-hook nil "Hook run whenever a non-server or channel buffer is killed.\n\nSee also `kill-buffer'."] 8)
#@347 Function to call when an ERC buffer is killed.
This function should be on `kill-buffer-hook'.
When the current buffer is in `erc-mode', this function will run
one of the following hooks:
`erc-kill-server-hook' if the server buffer was killed,
`erc-kill-channel-hook' if a channel buffer was killed,
or `erc-kill-buffer-hook' if any other buffer.
(defalias 'erc-kill-buffer-function #[nil "\301=\205\"\302 \210\303 p=\203\304\305!\207\306\307 !\203\304\310!\207\304\311!\207" [major-mode erc-mode erc-remove-channel-users erc-server-buffer run-hooks erc-kill-server-hook erc-channel-p erc-default-target erc-kill-channel-hook erc-kill-buffer-hook] 2 (#$ . 224537)])
#@121 Sends a QUIT command to the server when the server buffer is killed.
This function should be on `erc-kill-server-hook'.
(defalias 'erc-kill-server #[nil "\302 \205\303\304\305\306	\307!\"!\207" [erc-server-quitting erc-quit-reason erc-server-process-alive t erc-server-send format "QUIT :%s" nil] 5 (#$ . 225215)])
#@123 Sends a PART command to the server when the channel buffer is killed.
This function should be on `erc-kill-channel-hook'.
(defalias 'erc-kill-channel #[nil "\302 \205\303 \304\305\306	\307!#\307#)\207" [tgt erc-part-reason erc-server-process-alive erc-default-target erc-server-send format "PART %s :%s" nil] 6 (#$ . 225540)])
#@61 Find the next occurrence of the `erc-parsed' text property.
(defalias 'erc-find-parsed-property #[nil "\300ed\301\302$\207" [text-property-not-all erc-parsed nil] 5 (#$ . 225878)])
#@50 Restore the property 'erc-parsed for the region.
(defalias 'erc-restore-text-properties #[nil "\301 \302ed\303\205\304!$)\207" [parsed-posn erc-find-parsed-property put-text-property erc-parsed erc-get-parsed-vector] 6 (#$ . 226065)])
#@42 Return the whole parsed vector on POINT.
(defalias 'erc-get-parsed-vector #[(point) "\301\302\"\207" [point get-text-property erc-parsed] 3 (#$ . 226311)])
#@44 Return nickname in the parsed vector VECT.
(defalias 'erc-get-parsed-vector-nick #[(vect) "\205\304H	>\204\305\306\307\310#\210\311H\211\205\312\n\313\"@\211??\205-\314!\205-\n*\207" [vect cl-struct-erc-response-tags untreated-nick maybe-nick 0 error "%s accessing a non-%s" erc-response\.sender erc-response 2 split-string "!" erc-is-valid-nick-p] 5 (#$ . 226474)])
#@48 Return message type in the parsed vector VECT.
(defalias 'erc-get-parsed-vector-type #[(vect) "\205\302H	>\204\303\304\305\306#\210\307H\207" [vect cl-struct-erc-response-tags 0 error "%s accessing a non-%s" erc-response\.command erc-response 3] 4 (#$ . 226861)])
#@186 Use ERC to IRC on HOST:PORT in CHANNEL as USER with PASSWORD.
If ERC is already connected to HOST:PORT, simply /join CHANNEL.
Otherwise, connect to HOST:PORT as USER and /join CHANNEL.
(defalias 'erc-handle-irc-url #[(host port channel user password) "\306\307!@r\206pq\210\203	\203\310	!\2024\311\n\f\206$\312 \313 ?
\314	\2052\315!&	*\207" [server-buffer channel host port user password erc-buffer-filter #[nil "	\230\205\nU\205\304 \207" [erc-session-server host erc-session-port port erc-open-server-buffer-p] 2] erc-cmd-JOIN erc-open erc-compute-nick erc-compute-full-name nil get-buffer-process] 11 (#$ . 227139)])
(byte-code "\300\301!\210\302\303!\207" [provide erc require erc-goodies] 2)

MMCT - 2023