%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/erc/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/erc/erc.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

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

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

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


(byte-code "\300\301\302\303#\210\304\305!\210\304\306!\210\304\307!\210\304\310!\210\304\311!\207" [load "erc-loaddefs" nil t require font-lock pp thingatpt auth-source erc-compat] 4)
#@45 Location of the ERC client on the Internet.
(defvar erc-official-location "https://www.gnu.org/software/emacs/erc.html (mailing list: emacs-erc@gnu.org)" (#$ . 593))
(byte-code "\300\301\302\303\304\305\304\306\307\310\311\312&\210\300\313\302\314\311\301%\210\300\315\302\316\311\301%\210\300\317\302\320\311\315%\210\300\321\302\322\311\301%\210\300\323\302\324\325\326\311\321&\210\300\327\302\330\311\301%\210\300\331\302\332\311\301%\210\300\333\302\334\311\301%\210\300\335\302\336\311\301%\210\337\340\341\302#\210\342\211\203\202\211@\340N\203{\341N\204{\343\341\340N#\210A\266\202\202a\210\344\340\341\345#\210\337\346\347\302#\210\342\211\203\261\211@\346N\203\252\347N\204\252\343\347\346N#\210A\266\202\202\220\210\344\346\347\345#\210\337\350\351\302#\210\342\211\203\340\211@\350N\203\331\351N\204\331\343\351\350N#\210A\266\202\202\277\210\344\350\351\345#\210\352\353\354\302#\210\355\353\354\345#\210\356\357!\210\360\361\362\363\364DD\365\311\301\366\367&\210\360\370\362\363\371DD\372\311\301\366\373&\210\360\374\362\363\375DD\376\311\301\366\377&\210\360\201@\362\363\201ADD\201B\311\301\366\201C&\210\360\201D\362\363\201EDD\201F\311\301\366\201G&\210\360\201H\362\363\201IDD\201J\311\301\366\201K\201L\201M&	\210\360\201N\362\363\201ODD\201P\325\201Q\311\301\366\201G&	\207" [custom-declare-group erc nil "Emacs Internet Relay Chat client." :link (url-link "https://www.gnu.org/software/emacs/erc.html") (custom-manual "(erc) Top") :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" defvaralias erc-announced-server-name erc-server-announced-name (saved-value saved-variable-comment) put make-obsolete-variable "ERC 5.1" erc-process erc-server-process erc-default-coding-system erc-server-coding-system defalias erc-send-command erc-server-send make-obsolete require erc-backend custom-declare-variable erc-server funcall function #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [#1="`"] 1 #1#] "The string to append to the nick if it is already in use." string erc-try-new-nick-p #[0 "\300\207" [t] 1] "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 #[0 "\300\207" [nil] 1] "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 #[514 "\300!\203\f \202
L\207" [functionp] 5 "\n\n(fn SYM VAL)"] erc-rename-buffers #[0 "\300\207" [nil] 1] "Non-nil means rename buffers with network name, if available." "24.5"] 12)
#@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 (#$ . 4773))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\210\300\316\302\303\317DD\320\306\307\310\315&\210\300\321\302\303\322DD\323\306\307\310\315&\210\300\324\302\303\325DD\326\306\327\310\315&\210\300\330\302\303\331DD\332\306\327\310\315&\210\333\334\335\336\337\340%\210\300\341\302\303\342DD\343\306\344\310\334&\210\300\345\302\303\346DD\347\350\351\306\344\310\334&	\210\300\352\302\303\353DD\354\350\351\306\344\310\334&	\207" [custom-declare-variable erc-user-mode funcall function #[0 "\300\207" [nil] 1] "Initial user modes to be set after a connection is established." :group erc :type (choice (const nil) string function) erc-prompt-for-password #[0 "\300\207" [t] 1] "Asks before using the default password, or whether to enter a new one." boolean erc-warn-about-blank-lines #[0 "\300\207" [t] 1] "Warn the user if they attempt to send a blank line." erc-send-whitespace-lines #[0 "\300\207" [nil] 1] "If set to non-nil, send lines consisting of only whitespace." erc-hide-prompt #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [t] 1] "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 #[0 "\300\207" [nil] 1] "A global list of IRC message types to hide.\nA typical value would be (\"JOIN\" \"PART\" \"QUIT\")." erc-ignore erc-network-hide-list #[0 "\300\207" [nil] 1] "A list of IRC networks to hide message types from.\nA typical value would be ((\"freenode\" \"MODE\")\n  (\"OFTC\" \"JOIN\" \"QUIT\"))." :version "25.1" erc-channel-hide-list #[0 "\300\207" [nil] 1] "A list of IRC channels to hide message types from.\nA typical value would be ((\"#emacs\" \"QUIT\" \"JOIN\")\n  (\"#erc\" \"NICK\")."] 10)
#@44 The password used for the current session.
(defvar erc-session-password nil (#$ . 7168))
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\210\302\314\304\305\315DD\316\310\311\312\313&\210\302\317\304\305\320DD\321\310\311\312\313&\210\302\322\304\305\323DD\324\310\311\312\313&\210\302\325\304\305\326DD\327\310\311\312\313&\210\302\330\304\305\331DD\332\310\311\312\313&\210\302\333\304\305\334DD\335\310\311\312\313&\210\302\336\304\305\337DD\340\310\311\312\313&\207" [make-variable-buffer-local erc-session-password custom-declare-variable erc-disconnected-hook funcall function #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [(erc-initialize-log-marker)] 1] "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 (#$ . 9585))
(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 (#$ . 9922))
(make-variable-buffer-local 'erc-server-users)
#@66 Convert STRING to IRC standard conforming downcase.

(fn STRING)
(defalias 'erc-downcase #[257 "\211\227\300\301 \302\303\304\305\306!\307\"\310$\216\311\312\"\203'\303\224\303\224H\236AI\210\202)\210\207" [((91 . 123) (93 . 125) (92 . 124) (126 . 94)) match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 string-match "[]\\[~]"] 10 (#$ . 10128)])
#@105 Execute BODY in the current ERC server buffer.
If no server buffer exists, return nil.

(fn &rest BODY)
(defalias 'erc-with-server-buffer '(macro . #[128 "\300\301!\302\303BC\304\305D\306BBEE\207" [make-symbol "buffer" let ((erc-server-buffer)) when buffer-live-p with-current-buffer] 9 (#$ . 10532)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put erc-with-server-buffer lisp-indent-function 0 put edebug-form-spec (body)] 5)
#@74 compiler-macro for inlining `erc-server-user-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-p--cmacro #[514 "\300\301\302\303\211\211&\207" [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] 9 (#$ . 10990)])
(put 'erc-server-user-p 'compiler-macro 'erc-server-user-p--cmacro)
#@13 

(fn CL-X)
(defalias 'erc-server-user-p #[257 "\301!\205\211G\302Y\205\211\303H>\205\304\207" [cl-struct-erc-server-user-tags vectorp 7 0 t] 3 (#$ . 11390)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put erc-server-user-p side-effect-free error-free put erc-server-user cl-deftype-satisfies] 5)
#@81 compiler-macro for inlining `erc-server-user-nickname'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-nickname--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-server-user-nickname (progn (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (signal 'wrong-type-argument (list 'erc-server-user cl-x))) (aref cl-x 1))) nil] 9 (#$ . 11720)])
(put 'erc-server-user-nickname 'compiler-macro 'erc-server-user-nickname--cmacro)
#@69 Access slot "nickname" of `erc-server-user' struct CL-X.

(fn CL-X)
(defalias 'erc-server-user-nickname #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1] 5 (#$ . 12203)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-server-user-nickname side-effect-free t] 4)
#@77 compiler-macro for inlining `erc-server-user-host'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-host--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-server-user-host (progn (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (signal 'wrong-type-argument (list 'erc-server-user cl-x))) (aref cl-x 2))) nil] 9 (#$ . 12570)])
(put 'erc-server-user-host 'compiler-macro 'erc-server-user-host--cmacro)
#@65 Access slot "host" of `erc-server-user' struct CL-X.

(fn CL-X)
(defalias 'erc-server-user-host #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 2] 5 (#$ . 13033)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-server-user-host side-effect-free t] 4)
#@78 compiler-macro for inlining `erc-server-user-login'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-login--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-server-user-login (progn (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (signal 'wrong-type-argument (list 'erc-server-user cl-x))) (aref cl-x 3))) nil] 9 (#$ . 13388)])
(put 'erc-server-user-login 'compiler-macro 'erc-server-user-login--cmacro)
#@66 Access slot "login" of `erc-server-user' struct CL-X.

(fn CL-X)
(defalias 'erc-server-user-login #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 3] 5 (#$ . 13856)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-server-user-login side-effect-free t] 4)
#@82 compiler-macro for inlining `erc-server-user-full-name'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-full-name--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-server-user-full-name (progn (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (signal 'wrong-type-argument (list 'erc-server-user cl-x))) (aref cl-x 4))) nil] 9 (#$ . 14214)])
(put 'erc-server-user-full-name 'compiler-macro 'erc-server-user-full-name--cmacro)
#@70 Access slot "full-name" of `erc-server-user' struct CL-X.

(fn CL-X)
(defalias 'erc-server-user-full-name #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 4] 5 (#$ . 14702)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-server-user-full-name side-effect-free t] 4)
#@77 compiler-macro for inlining `erc-server-user-info'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-info--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-server-user-info (progn (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (signal 'wrong-type-argument (list 'erc-server-user cl-x))) (aref cl-x 5))) nil] 9 (#$ . 15072)])
(put 'erc-server-user-info 'compiler-macro 'erc-server-user-info--cmacro)
#@65 Access slot "info" of `erc-server-user' struct CL-X.

(fn CL-X)
(defalias 'erc-server-user-info #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 5] 5 (#$ . 15535)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-server-user-info side-effect-free t] 4)
#@80 compiler-macro for inlining `erc-server-user-buffers'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-server-user-buffers--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-server-user-buffers (progn (or (and (memq (aref cl-x 0) cl-struct-erc-server-user-tags)) (signal 'wrong-type-argument (list 'erc-server-user cl-x))) (aref cl-x 6))) nil] 9 (#$ . 15890)])
(put 'erc-server-user-buffers 'compiler-macro 'erc-server-user-buffers--cmacro)
#@68 Access slot "buffers" of `erc-server-user' struct CL-X.

(fn CL-X)
(defalias 'erc-server-user-buffers #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 6] 5 (#$ . 16368)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put erc-server-user-buffers side-effect-free t defalias copy-erc-server-user copy-sequence] 4)
#@126 compiler-macro for inlining `make-erc-server-user'.

(fn CL-WHOLE &cl-quote &key NICKNAME HOST LOGIN FULL-NAME INFO BUFFERS)
(defalias 'make-erc-server-user--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315\316\311\311&\207" [plist-member :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))] 20 (#$ . 16787)])
(put 'make-erc-server-user 'compiler-macro 'make-erc-server-user--cmacro)
#@106 Constructor for objects of type `erc-server-user'.

(fn &key NICKNAME HOST LOGIN FULL-NAME INFO BUFFERS)
(defalias 'make-erc-server-user #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315&\207" [plist-member :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] 15 (#$ . 17691)])
(byte-code "\300\301\302\303#\304\305\306\211\307\303\310\311\305\306&	\207" [function-put make-erc-server-user side-effect-free t cl-struct-define erc-server-user nil vector ((cl-tag-slot) (nickname) (host) (login) (full-name) (info) (buffers nil)) cl-struct-erc-server-user-tags] 11)
#@75 compiler-macro for inlining `erc-channel-user-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-p (and (vectorp cl-x) (>= (length cl-x) 7) (memq (aref cl-x 0) cl-struct-erc-channel-user-tags) t)) nil] 9 (#$ . 18621)])
(put 'erc-channel-user-p 'compiler-macro 'erc-channel-user-p--cmacro)
#@13 

(fn CL-X)
(defalias 'erc-channel-user-p #[257 "\301!\205\211G\302Y\205\211\303H>\205\304\207" [cl-struct-erc-channel-user-tags vectorp 7 0 t] 3 (#$ . 19027)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put erc-channel-user-p side-effect-free error-free put erc-channel-user cl-deftype-satisfies] 5)
#@79 compiler-macro for inlining `erc-channel-user-voice'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-voice--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-voice (progn (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (signal 'wrong-type-argument (list 'erc-channel-user cl-x))) (aref cl-x 1))) nil] 9 (#$ . 19361)])
(put 'erc-channel-user-voice 'compiler-macro 'erc-channel-user-voice--cmacro)
#@67 Access slot "voice" of `erc-channel-user' struct CL-X.

(fn CL-X)
(defalias 'erc-channel-user-voice #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 1] 5 (#$ . 19836)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-voice side-effect-free t] 4)
#@80 compiler-macro for inlining `erc-channel-user-halfop'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-halfop--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-halfop (progn (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (signal 'wrong-type-argument (list 'erc-channel-user cl-x))) (aref cl-x 2))) nil] 9 (#$ . 20199)])
(put 'erc-channel-user-halfop 'compiler-macro 'erc-channel-user-halfop--cmacro)
#@68 Access slot "halfop" of `erc-channel-user' struct CL-X.

(fn CL-X)
(defalias 'erc-channel-user-halfop #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 2] 5 (#$ . 20679)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-halfop side-effect-free t] 4)
#@76 compiler-macro for inlining `erc-channel-user-op'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-op--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-op (progn (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (signal 'wrong-type-argument (list 'erc-channel-user cl-x))) (aref cl-x 3))) nil] 9 (#$ . 21045)])
(put 'erc-channel-user-op 'compiler-macro 'erc-channel-user-op--cmacro)
#@64 Access slot "op" of `erc-channel-user' struct CL-X.

(fn CL-X)
(defalias 'erc-channel-user-op #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 3] 5 (#$ . 21505)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-op side-effect-free t] 4)
#@79 compiler-macro for inlining `erc-channel-user-admin'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-admin--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-admin (progn (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (signal 'wrong-type-argument (list 'erc-channel-user cl-x))) (aref cl-x 4))) nil] 9 (#$ . 21859)])
(put 'erc-channel-user-admin 'compiler-macro 'erc-channel-user-admin--cmacro)
#@67 Access slot "admin" of `erc-channel-user' struct CL-X.

(fn CL-X)
(defalias 'erc-channel-user-admin #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 4] 5 (#$ . 22334)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-admin side-effect-free t] 4)
#@79 compiler-macro for inlining `erc-channel-user-owner'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-owner--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-owner (progn (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (signal 'wrong-type-argument (list 'erc-channel-user cl-x))) (aref cl-x 5))) nil] 9 (#$ . 22697)])
(put 'erc-channel-user-owner 'compiler-macro 'erc-channel-user-owner--cmacro)
#@67 Access slot "owner" of `erc-channel-user' struct CL-X.

(fn CL-X)
(defalias 'erc-channel-user-owner #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 5] 5 (#$ . 23172)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-owner side-effect-free t] 4)
#@91 compiler-macro for inlining `erc-channel-user-last-message-time'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-channel-user-last-message-time--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-channel-user-last-message-time (progn (or (and (memq (aref cl-x 0) cl-struct-erc-channel-user-tags)) (signal 'wrong-type-argument (list 'erc-channel-user cl-x))) (aref cl-x 6))) nil] 9 (#$ . 23535)])
(put 'erc-channel-user-last-message-time 'compiler-macro 'erc-channel-user-last-message-time--cmacro)
#@79 Access slot "last-message-time" of `erc-channel-user' struct CL-X.

(fn CL-X)
(defalias 'erc-channel-user-last-message-time #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 6] 5 (#$ . 24070)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put erc-channel-user-last-message-time side-effect-free t defalias copy-erc-channel-user copy-sequence] 4)
#@130 compiler-macro for inlining `make-erc-channel-user'.

(fn CL-WHOLE &cl-quote &key VOICE HALFOP OP ADMIN OWNER LAST-MESSAGE-TIME)
(defalias 'make-erc-channel-user--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315\316\311\311&\207" [plist-member :voice :halfop :op :admin :owner :last-message-time (:voice :halfop :op :admin :owner :last-message-time :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:voice :halfop :op :admin :owner :last-message-time)" cl--defsubst-expand (voice halfop op admin owner last-message-time) (cl-block make-erc-channel-user (vector 'erc-channel-user voice halfop op admin owner last-message-time))] 20 (#$ . 24525)])
(put 'make-erc-channel-user 'compiler-macro 'make-erc-channel-user--cmacro)
#@110 Constructor for objects of type `erc-channel-user'.

(fn &key VOICE HALFOP OP ADMIN OWNER LAST-MESSAGE-TIME)
(defalias 'make-erc-channel-user #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\211\203R\211@\307>\203:\211AA\262\202'\310>A@\203I\311\262\202'\312\313@\"\210\202'\210\314\315&\207" [plist-member :voice :halfop :op :admin :owner :last-message-time (:voice :halfop :op :admin :owner :last-message-time :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:voice :halfop :op :admin :owner :last-message-time)" vector erc-channel-user] 15 (#$ . 25453)])
(byte-code "\300\301\302\303#\304\305\306\211\307\303\310\311\305\306&	\207" [function-put make-erc-channel-user side-effect-free t cl-struct-define erc-channel-user nil vector ((cl-tag-slot) (voice) (halfop) (op) (admin) (owner) (last-message-time nil)) cl-struct-erc-channel-user-tags] 11)
#@129 Find the (USER . CHANNEL-DATA) element corresponding to NICK
in the current buffer's `erc-channel-users' hash table.

(fn NICK)
(defalias 'erc-get-channel-user #[257 "\301\302!\"\207" [erc-channel-users gethash erc-downcase] 4 (#$ . 26405)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-get-channel-user compiler-macro erc-get-channel-user--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-get-channel-user--inliner #[514 "\3002\301\302D\303E0\207" [inline--just-use gethash erc-downcase erc-channel-users] 5 (#$ . 26778)])
#@103 Find the USER corresponding to NICK in the current server's
`erc-server-users' hash table.

(fn NICK)
(defalias 'erc-get-server-user #[257 "\301 \302!\205r\211q\210\303\304!\")\207" [erc-server-users erc-server-buffer buffer-live-p gethash erc-downcase] 5 (#$ . 26962)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-get-server-user compiler-macro erc-get-server-user--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-get-server-user--inliner #[514 "\3002.\211\301!\203\211\202\302\303!\304\305\306D\307ED=\203$\211\202+\310DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" erc-with-server-buffer gethash erc-downcase erc-server-users macroexp-let*] 8 (#$ . 27365)])
#@125 This function is for internal use only.

Adds USER with nickname NICK to the `erc-server-users' hash table.

(fn NICK USER)
(defalias 'erc-add-server-user #[514 "\301 \302!\205r\211q\210\303\304!#)\207" [erc-server-users erc-server-buffer buffer-live-p puthash erc-downcase] 7 (#$ . 27701)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-add-server-user compiler-macro erc-add-server-user--inliner] 4)
#@31 

(fn INLINE--FORM NICK USER)
(defalias 'erc-add-server-user--inliner #[771 "\3002P\301!\203\211\202\302\303!\301!\203\211\202 \302\304!\305\306\307D\310FD=\2033\211\202:\311DC\"\266\203=\203F\211\202M\311DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" "user" erc-with-server-buffer puthash erc-downcase erc-server-users macroexp-let*] 12 (#$ . 28126)])
#@238 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'.

(fn NICK)
(defalias 'erc-remove-server-user #[257 "\301 \302!\205r\211q\210\303\304!\")\207" [erc-server-users erc-server-buffer buffer-live-p remhash erc-downcase] 5 (#$ . 28543)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-remove-server-user compiler-macro erc-remove-server-user--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-remove-server-user--inliner #[514 "\3002.\211\301!\203\211\202\302\303!\304\305\306D\307ED=\203$\211\202+\310DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" erc-with-server-buffer remhash erc-downcase erc-server-users macroexp-let*] 8 (#$ . 29090)])
#@207 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.

(fn USER NEW-NICK)
(defalias 'erc-change-user-nickname #[514 "\303H>\204\304\305\306D\"\210\307H\303H>\204!\304\305\306D\"\210\211\307I\266\310 \311!\203Dr\211q\210\312\313!	\"\210\314\313!	#\210)\210\303H>\204T\304\305\306D\"\210\315H\211\205\206\211@\311!\203r\211q\210\316\313!\n\"\312\313!\n\"\210\314\313!\n#\266)A\266\202\202W\262\207" [cl-struct-erc-server-user-tags erc-server-users erc-channel-users 0 signal wrong-type-argument erc-server-user 1 erc-server-buffer buffer-live-p remhash erc-downcase puthash 6 gethash] 10 (#$ . 29429)])
#@343 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'.

(fn NICK)
(defalias 'erc-remove-channel-user #[257 "\303\304!\"\211\205k\211@\211\305H	>\204\306\307\310D\"\210\211\211\311\312p\305H	>\2040\306\307\310D\"\210\311H\"I\266\313\304!\"\210\211\305H	>\204M\306\307\310D\"\210\211\311H?\205i\314 \315!\205gr\211q\210\313\304!\n\")\262\262\207" [erc-channel-users cl-struct-erc-server-user-tags erc-server-users gethash erc-downcase 0 signal wrong-type-argument erc-server-user 6 delq remhash erc-server-buffer buffer-live-p] 12 (#$ . 30205)])
#@236 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'.

(fn NICK)
(defalias 'erc-remove-user #[257 "\303 \304!\205r\211q\210\305\306!\")\262\211\205g\211\307H	>\204(\310\311\312D\"\210\211\313H\211\211\203P\211@\304!\203Ir\211q\210\314\306!\n\"\210\315\316!\210)A\266\202\202,\266\303 \304!\205er\211q\210\314\306!\")\262\207" [erc-server-users cl-struct-erc-server-user-tags erc-channel-users erc-server-buffer buffer-live-p gethash erc-downcase 0 signal wrong-type-argument erc-server-user 6 remhash run-hooks erc-channel-members-changed-hook] 8 (#$ . 31054)])
#@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 #[0 "\205\302 \205\303	!\205\304\305	\"\210\306	!\207" [erc-server-connected erc-channel-users erc-server-process-alive hash-table-p maphash #[514 "\300!\207" [erc-remove-channel-user] 4 "\n\n(fn NICK CDATA)"] clrhash] 3 (#$ . 31815)])
#@71 Return non-nil if NICK is an owner of the current channel.

(fn NICK)
(defalias 'erc-channel-user-owner-p #[257 "\211\2050\302!\2050\303\304!\"\211\205.\211A\205.\211A\305H	>\204*\306\307\310AD\"\210\211A\311H\262\207" [erc-channel-users cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 signal wrong-type-argument erc-channel-user 5] 6 (#$ . 32244)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-owner-p compiler-macro erc-channel-user-owner-p--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-channel-user-owner-p--inliner #[514 "\3002@\211\301!\203\211\202\302\303!\304\305\306D\307\310\311DDC\304\310\312\310D\313\312\310DDFEF=\2036\211\202=\314DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" and hash-table-p erc-channel-users let cdata erc-get-channel-user cdr erc-channel-user-owner macroexp-let*] 15 (#$ . 32761)])
#@71 Return non-nil if NICK is an admin in the current channel.

(fn NICK)
(defalias 'erc-channel-user-admin-p #[257 "\211\2050\302!\2050\303\304!\"\211\205.\211A\205.\211A\305H	>\204*\306\307\310AD\"\210\211A\311H\262\207" [erc-channel-users cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 signal wrong-type-argument erc-channel-user 4] 6 (#$ . 33179)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-admin-p compiler-macro erc-channel-user-admin-p--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-channel-user-admin-p--inliner #[514 "\3002@\211\301!\203\211\202\302\303!\304\305\306D\307\310\311DDC\304\310\312\310D\313\312\310DDFEF=\2036\211\202=\314DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" and hash-table-p erc-channel-users let cdata erc-get-channel-user cdr erc-channel-user-admin macroexp-let*] 15 (#$ . 33696)])
#@74 Return non-nil if NICK is an operator in the current channel.

(fn NICK)
(defalias 'erc-channel-user-op-p #[257 "\211\2050\302!\2050\303\304!\"\211\205.\211A\205.\211A\305H	>\204*\306\307\310AD\"\210\211A\311H\262\207" [erc-channel-users cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 signal wrong-type-argument erc-channel-user 3] 6 (#$ . 34114)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-op-p compiler-macro erc-channel-user-op-p--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-channel-user-op-p--inliner #[514 "\3002@\211\301!\203\211\202\302\303!\304\305\306D\307\310\311DDC\304\310\312\310D\313\312\310DDFEF=\2036\211\202=\314DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" and hash-table-p erc-channel-users let cdata erc-get-channel-user cdr erc-channel-user-op macroexp-let*] 15 (#$ . 34625)])
#@78 Return non-nil if NICK is a half-operator in the current channel.

(fn NICK)
(defalias 'erc-channel-user-halfop-p #[257 "\211\2050\302!\2050\303\304!\"\211\205.\211A\205.\211A\305H	>\204*\306\307\310AD\"\210\211A\311H\262\207" [erc-channel-users cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 signal wrong-type-argument erc-channel-user 2] 6 (#$ . 35037)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-halfop-p compiler-macro erc-channel-user-halfop-p--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-channel-user-halfop-p--inliner #[514 "\3002@\211\301!\203\211\202\302\303!\304\305\306D\307\310\311DDC\304\310\312\310D\313\312\310DDFEF=\2036\211\202=\314DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" and hash-table-p erc-channel-users let cdata erc-get-channel-user cdr erc-channel-user-halfop macroexp-let*] 15 (#$ . 35564)])
#@69 Return non-nil if NICK has voice in the current channel.

(fn NICK)
(defalias 'erc-channel-user-voice-p #[257 "\211\2050\302!\2050\303\304!\"\211\205.\211A\205.\211A\305H	>\204*\306\307\310AD\"\210\211A\311H\262\207" [erc-channel-users cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 signal wrong-type-argument erc-channel-user 1] 6 (#$ . 35984)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-channel-user-voice-p compiler-macro erc-channel-user-voice-p--inliner] 4)
#@26 

(fn INLINE--FORM NICK)
(defalias 'erc-channel-user-voice-p--inliner #[514 "\3002@\211\301!\203\211\202\302\303!\304\305\306D\307\310\311DDC\304\310\312\310D\313\312\310DDFEF=\2036\211\202=\314DC\"\266\2030\207" [inline--just-use macroexp-copyable-p make-symbol "nick" and hash-table-p erc-channel-users let cdata erc-get-channel-user cdr erc-channel-user-voice macroexp-let*] 15 (#$ . 36499)])
#@264 Return 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 #[0 "\301C\302!\203\303\304\305\306\307\310!\311\"\312\313%\"\210\211\242\207" [erc-channel-users nil hash-table-p maphash make-byte-code 514 "\300\300\242B\240\207" vconcat vector [] 5 "\n\n(fn NICK CDATA)"] 8 (#$ . 36918)])
#@57 Return a list of known nicknames on the current server.
(defalias 'erc-get-server-nickname-list #[0 "\301 \302!\205*r\211q\210\303C\304!\205'\305\306\307\310\311\312!\313\"\314\315%\"\210\211\242\262)\207" [erc-server-users erc-server-buffer buffer-live-p nil hash-table-p maphash make-byte-code 514 "\300\302H	>\204\303\304\305D\"\210\306H\300\242B\240\207" vconcat vector [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1] 7 "\n\n(fn N USER)"] 9 (#$ . 37457)])
#@58 Return a list of known nicknames on the current channel.
(defalias 'erc-get-channel-nickname-list #[0 "\301C\302!\205\303\304\305\306\307\310!\311\"\312\313%\"\210\211\242\207" [erc-channel-users nil hash-table-p maphash make-byte-code 514 "\300@\302H	>\204\303\304\305@D\"\210@\306H\300\242B\240\207" vconcat vector [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1] 7 "\n\n(fn N CDATA)"] 8 (#$ . 37968)])
#@59 Return an alist of known nicknames on the current server.
(defalias 'erc-get-server-nickname-alist #[0 "\301 \302!\205*r\211q\210\303C\304!\205'\305\306\307\310\311\312!\313\"\314\315%\"\210\211\242\262)\207" [erc-server-users erc-server-buffer buffer-live-p nil hash-table-p maphash make-byte-code 514 "\300\302H	>\204\303\304\305D\"\210\306H\307B\300\242B\240\207" vconcat vector [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1 nil] 7 "\n\n(fn N USER)"] 9 (#$ . 38421)])
#@60 Return an alist of known nicknames on the current channel.
(defalias 'erc-get-channel-nickname-alist #[0 "\301C\302!\205\303\304\305\306\307\310!\311\"\312\313%\"\210\211\242\207" [erc-channel-users nil hash-table-p maphash make-byte-code 514 "\300@\302H	>\204\303\304\305@D\"\210@\306H\307B\300\242B\240\207" vconcat vector [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1 nil] 7 "\n\n(fn N CDATA)"] 8 (#$ . 38944)])
#@176 Sort 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'.

(fn LIST)
(defalias 'erc-sort-channel-users-by-activity #[257 "\300\301\"\207" [sort #[514 "A\205C\211A\205CA\301H>\204\302\303\304AD\"\210A\305HA\301H>\2040\302\303\304AD\"\210A\305H\205A\211?\206A\306\"\266\202\207" [cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-channel-user 6 time-less-p] 7 "\n\n(fn X Y)"]] 4 (#$ . 39410)])
#@162 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'.

(fn LIST)
(defalias 'erc-sort-channel-users-alphabetically #[257 "\300\301\"\207" [sort #[514 "A\205D\211A\205D@\301H>\204\302\303\304@D\"\210@\305H\227@\301H>\2041\302\303\304@D\"\210@\305H\227\205B\211?\206B\231\266\202\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1] 7 "\n\n(fn X Y)"]] 4 (#$ . 39950)])
#@74 A topic string for the channel.  Should only be used in channel-buffers.
(defvar erc-channel-topic nil (#$ . 40470))
(make-variable-buffer-local 'erc-channel-topic)
#@128 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 (#$ . 40642))
(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 (#$ . 40867))
(make-variable-buffer-local 'erc-insert-marker)
#@44 The marker where input should be inserted.
(defvar erc-input-marker nil (#$ . 41033))
(make-variable-buffer-local 'erc-input-marker)
#@72 Return a copy of STRING will all text-properties removed.

(fn STRING)
(defalias 'erc-string-no-properties #[257 "\300!\301\302G\303$\210\211\207" [copy-sequence set-text-properties 0 nil] 7 (#$ . 41172)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erc-prompt funcall function #[0 "\300\207" [#1="ERC>"] 1 #1#] "Prompt used by ERC.  Trailing whitespace is not required." :group erc-display :type (choice string function)] 8)
#@75 Return the input prompt as a string.

See also the variable `erc-prompt'.
(defalias 'erc-prompt #[0 "\301!\203 \202\f\211G\302V\203\211\303P\202\211\207" [erc-prompt functionp 0 " "] 3 (#$ . 41650)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erc-command-indicator funcall function #[0 "\300\207" [nil] 1] "Indicator used by ERC for showing commands.\n\nIf non-nil, this will be used in the ERC buffer to indicate\ncommands (i.e., input starting with a `/').\n\nIf nil, the prompt will be constructed from the variable `erc-prompt'." :group erc-display :type (choice (const nil) string function)] 8)
#@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 #[0 "\205 \301!\203 \202\211G\302V\203\211\303P\202\211\262\207" [erc-command-indicator functionp 0 " "] 3 (#$ . 42311)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\210\300\316\302\303\317DD\320\306\321\310\322\323\324&	\210\300\325\302\303\326DD\327\306\321\310\322\323\330&	\210\300\331\302\303\332DD\333\306\334\310\335&\210\300\336\302\303\337DD\340\306\341\310\335&\210\300\342\302\303\343DD\344\306\334\310\335&\210\300\345\302\303\346DD\347\306\334\310\350&\210\300\351\302\303\352DD\353\306\341\310\335&\210\300\354\302\303\355DD\356\306\341\310\335&\210\300\357\302\303\360DD\361\306\341\310\335&\210\300\362\302\303\363DD\364\306\334\310\335&\210\300\365\302\303\366DD\367\306\334\310\311&\210\300\370\302\303\371DD\372\306\334\310\373&\210\300\374\302\303\375DD\376\306\377\310\201@&\210\201A\374!\210\300\201B\302\303\201CDD\201D\306\377\310\201E&\207" [custom-declare-variable erc-notice-prefix funcall function #[0 "\300\207" [#1="*** "] 1 #1#] "Prefix for all notices." :group erc-display :type string erc-notice-highlight-type #[0 "\300\207" [all] 1] "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 #[0 "\300\207" [nil] 1] "List of functions to call to echo a private notice.\nEach 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 #[0 "\300\207" [(erc-echo-notice-in-default-buffer)] 1] "List of functions to call to echo a private notice.\nEach 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 #[0 "\300\207" [nil] 1] "If non-nil, do a whowas on a nick if no such nick." erc boolean erc-verbose-server-ping #[0 "\300\207" [nil] 1] "If non-nil, show every time you get a PING or PONG from the server." erc-paranoia erc-public-away-p #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "The nickname to take when you are marked as being away." (choice (const nil) string) erc-paranoid #[0 "\300\207" [nil] 1] "If non-nil, then all incoming CTCP requests will be shown." erc-disable-ctcp-replies #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [t] 1] "Be paranoid, don't give away your machine name." erc-prompt-for-channel-key #[0 "\300\207" [nil] 1] "Prompt for channel key when using `erc-join-channel' interactively." erc-email-userid #[0 "\300\207" [#2="user"] 1 #2#] "Use this as your email user ID." erc-system-name #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 (#$ . 48763))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\210\300\316\302\303\317DD\320\306\307\310\321&\207" [custom-declare-variable erc-startup-file-list funcall function #[0 "\301P\302P\303\304\301\302\257\207" [erc-user-emacs-directory ".ercrc.el" ".ercrc" "~/.ercrc.el" "~/.ercrc"] 6] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [t] 1] "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 (#$ . 50018))
(byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311\312\313&\210\302\314\304\305\315DD\316\310\311\312\313&\210\302\317\304\305\320DD\321\310\311\312\313&\210\302\322\304\305\323DD\324\310\311\312\325&\210\302\326\304\305\327DD\330\310\311\312\331&\210\302\332\304\305\333DD\334\310\311\312\335&\210\302\336\304\305\337DD\340\310\311\312\341&\207" [make-variable-buffer-local erc-last-saved-position custom-declare-variable erc-kill-buffer-on-part funcall function #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "Kill the server buffer of the process on QUIT." erc-quit-reason-various-alist #[0 "\300\207" [nil] 1] "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      \\='((\"xmms\" dme:now-playing)\n        (\"version\" erc-quit-reason-normal)\n        (\"home\" \"Gone home !\")\n        (\"^$\" \"Default Reason\")))\nIf the user types \"/quit home\", then \"Gone home !\" will be used\nas the quit message." (repeat (list regexp (choice (string) (function)))) erc-part-reason-various-alist #[0 "\300\207" [nil] 1] "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      \\='((\"xmms\" dme:now-playing)\n        (\"version\" erc-part-reason-normal)\n        (\"home\" \"Gone home !\")\n        (\"^$\" \"Default Reason\")))\nIf the user types \"/part home\", then \"Gone home !\" will be used\nas the part message." (repeat (list regexp (choice (string) (function)))) erc-quit-reason #[0 "\300\207" [erc-quit-reason-normal] 1] "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-various) (symbol)) erc-part-reason #[0 "\300\207" [erc-part-reason-normal] 1] "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-various) (symbol))] 8)
#@54 The name of the buffer created by `erc-grab-region'.
(defvar erc-grab-buffer-name "*erc-grab*" (#$ . 53203))
#@32 USER_INFORMATION IRC variable.
(defvar erc-user-information "ERC User" (#$ . 53318))
(byte-code "\300\301\302\303\304\305%\210\306\307\310\311\312DD\313\304\301\314\315\316\317&	\210\306\320\310\311\321DD\322\304\301\314\315&\210\306\323\310\311\324DD\325\304\301\314\315&\210\306\326\310\311\327DD\330\304\301\314\315&\210\331\326\332\333#\210\306\332\310\311\334DD\335\304\305\314\336\337\333&	\207" [custom-declare-group erc-hooks nil "Hook variables for fancy customizations of ERC." :group erc custom-declare-variable erc-mode-hook funcall function #[0 "\300\207" [nil] 1] "Hook run after `erc-mode' setup is finished." :type hook :options (erc-add-scroll-to-bottom) erc-timer-hook #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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." make-obsolete-variable erc-pre-send-functions "27.1" #[0 "\300\207" [nil] 1] "List of functions called to possibly alter the string that is sent.\nThe functions are called with one argument, a `erc-input' struct,\nand should alter that struct.\n\nThe struct has three slots:\n\n  `string': The current input string.\n  `insertp': Whether the string should be inserted into the erc buffer.\n  `sendp': Whether the string should be sent to the irc server." (repeat function) :version] 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 (#$ . 55795))
#@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 (#$ . 56009))
(byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\210\304\316\306\307\317DD\320\312\313\314\315\321\322&	\210\304\323\306\307\324DD\325\312\313\326\303\314\315&	\210\304\327\306\307\330DD\331\312\313\314\315&\210\304\332\306\307\333DD\334\312\313\314\315\321\335&	\210\304\336\306\307\337DD\340\312\313\314\315&\207" [make-obsolete-variable erc-send-this erc-pre-send-functions "27.1" custom-declare-variable erc-insert-modify-hook funcall function #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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-insert-done-hook #[0 "\300\207" [nil] 1] "This hook is called after inserting strings into the buffer.\nThis hook is not called from inside `save-excursion' and should\npreserve point if needed." :version erc-send-modify-hook #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\301!\205\n\302\303!C\207" [fboundp emacspeak-auditory-icon byte-compile #[257 "\300\301!\207" [emacspeak-auditory-icon select-object] 3 "\n\n(fn STR)"]] 2] "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 "\300 \301\302\303#\210\301\304\303#\210\301\305\306#\210\301\307\310#\210\301\311\310#\210\211\207" [make-syntax-table modify-syntax-entry 34 ".   " 92 39 "w   " 60 "." 62] 5) (#$ . 58789))
#@38 Abbrev table used while in ERC mode.
(defvar erc-mode-abbrev-table nil (#$ . 59069))
(define-abbrev-table 'erc-mode-abbrev-table nil)
#@13 ERC keymap.
(defvar erc-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\305#\210\301\307\305#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\335#\210\301\345\346#\210\301\347\350#\210\301\351\352#\210\211\207" [make-sparse-keymap define-key "
" erc-send-current-line "" erc-bol [home] "" "" erc-switch-to-buffer "" 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 [remap font-lock-fontify-block] undefined] 5) (#$ . 59209))
(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%\210\306\353\354\355\304\301%\210\306\356\357\360\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-nick-prefix-face ((t :inherit erc-nick-default-face :weight bold)) "ERC face used for user mode prefix." erc-my-nick-prefix-face ((t :inherit erc-nick-default-face :weight bold)) "ERC face used for my user mode prefix." 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 (#$ . 62257))
#@22 Debug log file name.
(defvar erc-debug-log-file (expand-file-name "ERC.debug") (#$ . 62366))
(defvar erc-dbuf nil)
(make-variable-buffer-local 'erc-dbuf)
#@979 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)))

(fn NAME ALIAS DOC ENABLE-BODY DISABLE-BODY &optional LOCAL-P)
(defalias 'define-erc-module '(macro . #[1541 "\300!\301\302\303\227\"!\301\302\304\227\"!\301\302\305\227\"!\301\302\306\227\"!\307\310\302\311\211$\312\211\211\313
?\314\315
D\316CCF\257\317\312\302\320\"\321\322\323\315DE\324\f\325BBBBBBBBB\317\312\302\326\"\327\324\330\331\315D\332BBE\324
\333BBBBBBBBB
\205\246=?\205\246\334\315\301\302\303\300!\227\"!D\315\nDE\335\315\nD\336\315DF\335\315	D\337\315DF\335\315	D\340\315DF\257\207" [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] 26 (#$ . 62527)]))
(byte-code "\300\301\302\303#\300\207" [function-put define-erc-module doc-string-elt 3] 4)
#@688 Run function F 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 call F with
two arguments (`proc' and `parsed').  After F is called, the function is
removed from EVENT's hook.  F should return 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.

(fn EVENT F)
(defalias 'erc-once-with-server-event #[514 "\300 \204	\301\302!\210\303\304!\305!\306\307p#\210\310\311\312\313\314#\315\"\316\317%M\210\320\321\322$\210\207" [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 make-byte-code 514 "r\301\303Nq\210\304\302\301\305#\210)\306\301!\210\300\"\207" vconcat vector [erc-original-buffer remove-hook t fmakunbound] 6 "\n\n(fn PROC PARSED)" add-hook nil t] 13 (#$ . 64649)])
#@62 Logs STRING if logging is on (see `erc-log-p').

(fn STRING)
(defalias 'erc-log #[257 "\205\301!\207" [erc-log-p erc-log-aux] 3 (#$ . 65873)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-log compiler-macro erc-log--inliner] 4)
#@28 

(fn INLINE--FORM STRING)
(defalias 'erc-log--inliner #[514 "\3002\301\302\303DE0\207" [inline--just-use when erc-log-p erc-log-aux] 6 (#$ . 66123)])
#@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 #[0 "\301 \205\302!\207" [erc-server-process erc-server-buffer-live-p process-buffer] 2 (#$ . 66284)])
#@52 Return t if the server buffer has not been killed.
(defalias 'erc-server-buffer-live-p #[0 "\301!\205\302\303!!\207" [erc-server-process processp buffer-live-p process-buffer] 3 (#$ . 66567)])
#@130 Return non-nil if argument BUFFER is an ERC server buffer.

If BUFFER is nil, the current buffer is used.

(fn &optional BUFFER)
(defalias 'erc-server-buffer-p #[256 "r\211\206pq\210\301=\205\302 ?)\207" [major-mode erc-mode erc-default-target] 3 (#$ . 66771)])
#@159 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.

(fn &optional BUFFER)
(defalias 'erc-open-server-buffer-p #[256 "\300!\205	\301!\207" [erc-server-buffer-p erc-server-process-alive] 3 (#$ . 67045)])
#@119 Return non-nil if BUFFER is an ERC query buffer.
If BUFFER is nil, the current buffer is used.

(fn &optional BUFFER)
(defalias 'erc-query-buffer-p #[256 "r\211\206pq\210\301 \302=\205\211\205\211\303H\304>?\262)\207" [major-mode erc-default-target erc-mode 0 (35 38 43 33)] 4 (#$ . 67341)])
#@46 Return non-nil if NICK is online.

(fn NICK)
(defalias 'erc-ison-p #[257 "\300 \301!\205Vr\211q\210\302C\303\304\305\306\307\310\311	\"\312\"\313\314%\"\210\315\316\317\"!\210\211\242\302=\2035\320 \210\202(\321\322!\203Q\323\324\242\206C\242\203L\325\202M\326#\202S\211\242\262)\207" [erc-server-buffer buffer-live-p unknown erc-once-with-server-event 303 make-byte-code 514 "\302\303H!\301\304\300\"@\240\210\305\207" vconcat vector [split-string 3 erc-member-ignore-case t] 7 "\n\n(fn PROC PARSED)" erc-server-send format "ISON %s" accept-process-output called-interactively-p interactive message "%s is %sonline" "" "not "] 12 (#$ . 67647) "sNick: "])
#@46 Do the debug logging of STRING.

(fn STRING)
(defalias 'erc-log-aux #[257 "p\302\303\304 \211\203G\211q\210\203\305!\203\306!\204#\307\310	\311Q!q\210`\262m\262db\210\312\313Qc\210\203?db\210\202Bb\210q\202L\314\315\"\207" [erc-dbuf erc-session-server 1 nil erc-server-buffer bufferp buffer-live-p get-buffer-create "*ERC-DEBUG: " "*" "** " "\n" message "ERC: ** %s"] 9 (#$ . 68328)])
#@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 (#$ . 68742))
(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 #[0 "\301 \302!\205r\211q\210\302!\203\202p\211)\207" [erc-active-buffer erc-server-buffer buffer-live-p] 3 (#$ . 68990)])
#@62 Set the value of `erc-active-buffer' to BUFFER.

(fn BUFFER)
(defalias 'erc-set-active-buffer #[257 "\301 \203r\301 q\210\211\211)\207\211\211\207" [erc-active-buffer erc-server-buffer] 3 (#$ . 69253)])
(defvar erc-mode-hook nil)
(byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [erc-mode-hook variable-documentation put "Hook run after 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] 4)
(defvar erc-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [erc-mode-abbrev-table erc-mode-map variable-documentation put purecopy "Keymap for `erc-mode'." boundp erc-mode-syntax-table definition-name erc-mode (lambda (#1=#:def-tmp-var) (defvar erc-mode-syntax-table #1#)) make-syntax-table "Syntax table for `erc-mode'." (lambda (#1#) (defvar erc-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `erc-mode'." derived-mode-parent] 5)
#@142 Major mode for Emacs IRC.

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

\{erc-mode-map}
(defalias 'erc-mode #[0 "\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\306\327!\210\307\330\331\332\317\307$\210)\333\334!\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 "\\(" completion-ignore-case 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 (#$ . 70550) nil])
#@55 IRC server to use if it cannot be detected otherwise.
(defconst erc-default-server "irc.freenode.net" (#$ . 71446))
#@53 IRC port to use if it cannot be detected otherwise.
(defconst erc-default-port 6667 (#$ . 71568))
#@81 IRC port to use for encrypted connections if it cannot be
  detected otherwise.
(defconst erc-default-port-tls 6697 (#$ . 71672))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\210\300\316\302\303\317DD\320\306\307\310\321&\210\300\322\302\303\323DD\324\306\307\310\321&\207" [custom-declare-variable erc-join-buffer funcall function #[0 "\300\207" [buffer] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [t] 1] "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)
#@74 Return non-nil if CHANNEL seems to be an IRC channel name.

(fn CHANNEL)
(defalias 'erc-channel-p #[257 "\211;\203\211\300H\301>\207\302!\203!\303!\203!r\211q\210\304\305 !)\207\306\207" [0 (35 38 43 33) bufferp buffer-live-p erc-channel-p erc-default-target nil] 3 (#$ . 73460)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erc-reuse-buffers funcall function #[0 "\300\207" [t] 1] "If nil, create new buffers on joining a channel/query.\nIf non-nil, a new buffer will only be created when you join\nchannels with same names on different servers, or have query buffers\nopen with nicks of the same name on different servers.  Otherwise,\nthe existing buffers will be reused." :group erc-buffers :type boolean] 8)
#@257 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

(fn PORT)
(defalias 'erc-normalize-port #[257 "\2119\203\300\301!!\207\211;\203G\302!\211\303V\203\211\202F\304\230\203'\305\202F\306\230\2031\307\202F\310\230\203;\311\202F\312\230\203E\313\202F\314\207\211\247\203M\207\314\207" [erc-normalize-port symbol-name string-to-number 0 "irc" 194 "ircs" 994 "ircd" 6667 "ircd-dalnet" 7000 nil] 4 (#$ . 74229)])
#@50 Check whether ports A and B are equal.

(fn A B)
(defalias 'erc-port-equal #[514 "\300!\300!U\207" [erc-normalize-port] 5 (#$ . 74857)])
#@75 Create a new buffer name based on the arguments.

(fn SERVER PORT TARGET)
(defalias 'erc-generate-new-buffer-name #[771 "\247\203\n\303!\262\211\206 \304Q\211G\305V\205\211\262\206 \306\307\211\310QD\211\203r\211@\204k\203k\311!\203h\204hr\311!q\210\312 \205N\313 ?)\204hr\311!q\210	\230\205d\314\n\")\203k\211\262A\266\202\202(\210\211\206~\315\310Q!\207" [erc-reuse-buffers erc-session-server erc-session-port 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] 10 (#$ . 75002)])
#@70 Create a new buffer based on the arguments.

(fn SERVER PORT TARGET)
(defalias 'erc-get-buffer-create #[771 "\300\301#!\207" [get-buffer-create erc-generate-new-buffer-name] 8 (#$ . 75628)])
#@149 Return non-nil if STRING is a member of LIST.

All strings are compared according to IRC protocol case rules, see
`erc-downcase'.

(fn STRING LIST)
(defalias 'erc-member-ignore-case #[514 "\300!\262\3012&\211\205%\300@!\230\203\302\301\"\210\202	\211A\262\202	0\207" [erc-downcase result throw] 5 (#$ . 75829)])
#@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 . #[385 "\300\301!\300\302!\300\303!\300\304!\305@DA@D\306\307D\310\n\311\n\312BBDC\306\313\fE\314
EEEFDE\315\316D\317\nBBEE\207" [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] 20 (#$ . 76160)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put erc-with-buffer lisp-indent-function 1 put edebug-form-spec ((form &optional form) body)] 5)
#@137 Return the buffer matching TARGET in the process PROC.
If PROC is not supplied, all processes are searched.

(fn TARGET &optional PROC)
(defalias 'erc-get-buffer #[513 "\300!\3012\302\303\304\305\306\307!\310\"\311$\"0\207" [erc-downcase buffer erc-buffer-filter make-byte-code 0 "\301 \211;\205\300\302!\230\205\303\304p\"\207" vconcat vector [erc-default-target erc-downcase throw buffer] 4] 10 (#$ . 77086)])
#@27 

(fn BUF PREDICATE PROC)
(defalias 'erc--buffer-p #[771 "rq\210\301\302!\205\211\203\211=\205 \205)\207" [erc-server-process derived-mode-p erc-mode] 5 (#$ . 77515)])
#@327 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.

(fn PREDICATE &optional PROC)
(defalias 'erc-buffer-filter #[513 "\212\300\301\302\303\304\305\306\307		\"\310\"\311\312%\313 \"\")\207" [delq nil mapcar make-byte-code 257 "\302!\205\303\300\301#\207" vconcat vector [buffer-live-p erc--buffer-p] 5 "\n\n(fn BUF)" buffer-list] 12 (#$ . 77702)])
#@299 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.

(fn &optional PREDICATE PROC)
(defalias 'erc-buffer-list #[512 "\204\300\262\301\"\207" [#[0 "\300\207" [t] 1] erc-buffer-filter] 5 (#$ . 78306)])
#@246 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.

(fn PROCESS PRED &rest FORMS)
(defalias 'erc-with-all-buffers-of-server '(macro . #[642 "\300\301!\300\302!\303DD\304\305\306\307\310\311BBE\312EEDE\313BB\207" [make-symbol "pre" "pro" let* res mapcar lambda (buffer) with-current-buffer buffer erc-buffer-list ((ignore res) res)] 15 (#$ . 78734)]))
(byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\312#\210\313\310\311\314#\207" [function-put erc-with-all-buffers-of-server lisp-indent-function 1 put edebug-form-spec (form form body) defalias erc-iswitchb erc-switch-to-buffer nil make-obsolete "25.1"] 5)
#@22 

(fn &optional ARG)
(defalias 'erc--switch-to-buffer #[256 "\302\303\304\300!\205\305\306!@@!\307?\205	\310\311\312\313\314!\315\"\316\317%\262$\207" [erc-modified-channels-alist erc-server-process read-buffer "Switch to ERC buffer: " boundp buffer-name last t make-byte-code 257 "\211:\203\n\211A\202
\302!\211\205*\303\304\300#\210r\211q\210\305\306!\205)\300?\206)\300	=)\207" vconcat vector [erc-server-process get-buffer erc--buffer-p #[0 "\300\207" [t] 1] derived-mode-p erc-mode] 6 "\n\n(fn BUFNAME)"] 12 (#$ . 79538)])
#@306 Prompt for an 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.

(fn &optional ARG)
(defalias 'erc-switch-to-buffer #[256 "\300\301!!\207" [switch-to-buffer erc--switch-to-buffer] 4 (#$ . 80088) "P"])
#@324 Prompt for an ERC buffer to switch to in another window.
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.

(fn &optional ARG)
(defalias 'erc-switch-to-buffer-other-window #[256 "\300\301!!\207" [switch-to-buffer-other-window erc--switch-to-buffer] 4 (#$ . 80518) "P"])
#@153 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.

(fn PROC)
(defalias 'erc-channel-list #[257 "\300\301\"\207" [erc-buffer-filter #[0 "\300 \205	\301\300 !\207" [erc-default-target erc-channel-p] 2]] 4 (#$ . 80992)])
#@81 Return buffers containing NICK in the `erc-channel-users' list.

(fn NICK PROC)
(defalias 'erc-buffer-list-with-nick #[514 "r\302!q\210\303\304!\"\211\205\"\211\305H	>\204\306\307\310D\"\210\211\311H\262)\207" [erc-server-users cl-struct-erc-server-user-tags process-buffer gethash erc-downcase 0 signal wrong-type-argument erc-server-user 6] 7 (#$ . 81309)])
#@51 List of default recipients of the current buffer.
(defvar erc-default-recipients nil (#$ . 81683))
(make-variable-buffer-local 'erc-default-recipients)
#@46 Full name of the user on the current server.
(defvar erc-session-user-full-name nil (#$ . 81841))
(make-variable-buffer-local 'erc-session-user-full-name)
#@29 Limit of users per channel.
(defvar erc-channel-user-limit nil (#$ . 82002))
(make-variable-buffer-local 'erc-channel-user-limit)
#@29 Key needed to join channel.
(defvar erc-channel-key nil (#$ . 82138))
(make-variable-buffer-local 'erc-channel-key)
#@26 Last invitation channel.
(defvar erc-invitation nil (#$ . 82260))
(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 (#$ . 82378))
(make-variable-buffer-local 'erc-away)
#@22 Server channel list.
(defvar erc-channel-list nil (#$ . 82595))
(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 (#$ . 82712))
(make-variable-buffer-local 'erc-bad-nick)
#@42 Non-nil indicates that we are logged in.
(defvar erc-logged-in nil (#$ . 82870))
(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 (#$ . 83001))
(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 (#$ . 83164))
(make-variable-buffer-local 'erc-nick-change-attempt-count)
#@58 Migrate old names of ERC modules to new ones.

(fn MODS)
(defalias 'erc-migrate-modules #[257 "\300\301\302\303\304\305\306\307!\310\"\311\312%\"!\207" [((pcomplete . completion)) erc-delete-dups mapcar make-byte-code 257 "\301\300\"A\206	\211\207" vconcat vector [assoc] 4 "\n\n(fn M)"] 10 (#$ . 83358)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317&
\207" [custom-declare-variable erc-modules funcall function #[0 "\300\207" [(netsplit fill button match track completion readonly networks ring autojoin noncommands irccontrols move-to-prompt stamp menu list)] 1] "A list of modules which ERC should enable.\nIf you set the value of this without using `customize' remember to call\n(erc-update-modules) after you change it.  When using `customize', modules\nremoved from the list will be disabled." :get #[257 "\300J!\207" [erc-migrate-modules] 3 "\n\n(fn SYM)"] :initialize custom-initialize-default :set #[514 "\301\300!\203D\203D\211\203D\211\203C\211@\211\235\204<\302\303\304\"!\305!\203;\301!\203;\211J\203;\306\307\"\210\211\310!\210\210A\266\202\202\210L\210\305\311!\205P\311 \207" [erc-modules boundp intern-soft format "erc-%s-mode" fboundp message "Disabling `erc-%s'" 0 erc-update-modules] 8 "\n\n(fn SYM VAL)"] :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] 14)
#@67 Run this to enable erc-foo-mode for all modules in `erc-modules'.
(defalias 'erc-update-modules #[0 "\301\211\205p\211@\302\303!P\262\304\230\203\305\262\202<\306\230\203'\307\262\202<\307\230\2033\310\262\202<\311\230\203<\312\262\3131I\314\315!!0\202M\210\202N\210\316\302\303!\317Q!\320!\203c\211\321!\210\202h\322\323\"\210\210A\266\202\202\262\207" [erc-modules nil "erc-" symbol-name "erc-capab-identify" "erc-capab" "erc-completion" "erc-pcomplete" completion "erc-autojoin" "erc-join" (error) require intern intern-soft "-mode" fboundp 1 error "`%s' is not a known ERC module"] 7 (#$ . 87125)])
#@78 Consults `erc-join-buffer' to find out how to display `BUFFER'.

(fn BUFFER)
(defalias 'erc-setup-buffer #[257 "\305\267\202C\306 \203\307!\207\310!\207\307!\207\311\207	\203%\312\313\"?\205O\314\n\206+!\315!\210\316!\266\317!\210\f\205B\320\321 \313\"\207\306 \203L\307!\207\317!\207" [erc-join-buffer erc-reuse-frames erc-frame-alist default-frame-alist erc-frame-dedicated-flag #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (window 6 window-noselect 19 bury 23 frame 25)) active-minibuffer-window display-buffer switch-to-buffer-other-window nil get-buffer-window t make-frame raise-frame select-frame switch-to-buffer set-window-dedicated-p selected-window] 4 (#$ . 87767)])
#@448 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.

(fn &optional SERVER PORT NICK FULL-NAME CONNECT PASSWD TGT-LIST CHANNEL PROCESS)
(defalias 'erc-open #[2304 "\306\300!\205\230\205	?\205\n\307#p\310\211\n\203.\311\312$\210\313 \210q\210`\262\314 \210\315 \315 0db\210\316y\210\317`\320\"\203g\321\2620\322`\320\"\206dd\310\223\210\211\204qdb\210\323c\210
`\310\223\2101\3102\n\203\216\324\325\326\"3\3104\202\227\3103\324\325\326\"4\3105\3276\310\21178\330!\210\310\2119:\310\211;<=:\203\276=\202\301=C>	\206\367\331\332\333\334\335\336\337\247\203\340\340!\202\342\341\342&\n@\343\"\344!\203\364\211 \202\365\211\262?@\205\345\346\347Q!A\211\204db\210\323c\210\211\203b\210\202&
`\310\223\210\350 \210db\210\351$\210\311\352\"\210\n\203C\353B#\210\354 \210=\204\\@\203X\355\356#\210\357!\210\207" [erc-session-server erc-server-announced-name erc-server-connected erc-server-reconnect-count erc-server-process erc-insert-marker 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 number-to-string :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 erc-input-marker 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 erc-session-password erc-log-p erc-dbuf erc-session-port] 28 (#$ . 88512)])
#@116 Initialize the `erc-last-saved-position' marker to a sensible position.
BUFFER is the current buffer.

(fn BUFFER)
(defalias 'erc-initialize-log-marker #[257 "r\211q\210\302!?\205\303 \211\304	!S\305\223)\207" [erc-last-saved-position erc-insert-marker markerp make-marker marker-position nil] 5 (#$ . 90772)])
#@48 IRC server interactive selection history list.
(defvar erc-server-history-list nil (#$ . 91093))
#@46 Nickname interactive selection history list.
(defvar erc-nick-history-list nil (#$ . 91196))
#@239 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.

(fn SERVER PORT NICK)
(defalias 'erc-already-logged-in #[771 "\300\301\302\303\304\305#\306\"\307$!\207" [erc-buffer-list make-byte-code 0 "\305 \205\300\230\205\306\f\301\"\205\307\302!\207" vconcat vector [erc-session-server erc-session-port erc-server-process-alive erc-port-equal erc-current-nick-p] 3] 12 (#$ . 91296)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\311&\207" [custom-declare-variable erc-before-connect funcall function #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\302\211\211\211\211\303\304\305 \302\211\306%\262\307\310\"\203*\311\312\313\"!\262\312\314\"\262\2025\311\303\315\316\317 !\"!\262\307\320\"\203N\312\314\"\262\312\313\"\262\202o\321#\203d\303\322\323\324#\302\211\325%\202m\303\326\327!\302\211\325%\262\262\203\212	\203\204\330\331!\203\204	\202\213\332\333!\202\213	\262\211\203\232\211\334\230\203\232\302\262\321#\203\262\303\322\323\324#\302\211\325%\262\202\232\335\336\337\340\257\207" [erc-prompt-for-password erc-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] 13 (#$ . 92520)])
#@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 #[128 "\300\301\"\206\302\303 DA@\300\304\"\206\302\305 DA@\300\306\"\206%\302\307 DA@\300\310\"A@\300\311\"\2068\302\312 DA@\211\203f\211@\313>\203N\211AA\262\202;\314>A@\203]\302\262\202;\315\316@\"\210\202;\210\317\320&\207" [plist-member :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] 13 (#$ . 93620) (erc-select-read-args)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias erc-select erc erc-ssl erc-tls] 3)
#@112 Interactively select TLS connection parameters and run ERC.
Arguments are the same as for `erc'.

(fn &rest R)
(defalias 'erc-tls #[128 "\301\302\303\")\207" [erc-server-connect-function erc-open-tls-stream apply erc] 4 (#$ . 95132) (byte-code "\302 )\207" [erc-default-port-tls erc-default-port erc-select-read-args] 1)])
#@187 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.

(fn NAME BUFFER HOST PORT)
(defalias 'erc-open-tls-stream #[1028 "\300\301\302\303\304&\207" [open-network-stream :nowait t :type tls] 13 (#$ . 95466)])
#@201 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.

(fn &rest ARGS)
(defalias 'erc-error #[128 "\203	\301\302\"\207\301\303\"\210\304 \207" [debug-on-error apply error message beep] 4 (#$ . 95790)])
#@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 (#$ . 96132))
#@303 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.

(fn STRING &optional OUTBOUND)
(defalias 'erc-log-irc-protocol #[513 "\205\210\3021\303 0\202\210\202\206\304r\305\306!q\210\212db\210\307\204K\310\311\312\313\"\"\311\211\203E\211@\314\315\260\262A\266\202\202/\210\262\202_\316\317\211\211GSH\320U?\205[\315R\321\322#c\210*\323 \324p\307\"\211\205\203\325!\210\326`d\"\327U\203\200db\210\330\331!\210\325!\266\202)\262\207" [erc-debug-irc-protocol inhibit-read-only (error) erc-network-name "???" get-buffer-create "*erc-protocol*" t delete "" split-string "\n\\|
\n" " << " "\n" erc-propertize " >> " 10 font-lock-face erc-input-face selected-window get-buffer-window select-window count-lines 1 recenter -1] 12 (#$ . 96573)])
#@119 Toggle the value of `erc-debug-irc-protocol'.

If ARG is non-nil, show the *erc-protocol* buffer.

(fn &optional ARG)
(defalias 'erc-toggle-debug-irc-protocol #[256 "\302\303!r\211q\210\304 \210\305 \204&\306\307\310!c\210\307\311!c\210)\312\313 !\210\314\315\316\"\210\317\320\321\322\323$\210db\210\306\307\324\325	\203=\326\202>\327\330 #!c\210*	?\203X\331\303\306\"\204X\332\306\"\210\333\334	\203b\327\202c\326\"\207" [inhibit-read-only erc-debug-irc-protocol 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 #[0 "\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*)."] 7 (#$ . 97563) "P"])
#@85 Send CTCP ACTION information described by STR to TGT.

(fn TGT STR &optional FORCE)
(defalias 'erc-send-action #[770 "\300\301\302\"#\210\303\304\305p\306\307\310 \311	\312\313\314\313&\f\207" [erc-send-ctcp-message format "ACTION %s" erc-display-message nil input ACTION 110 erc-current-nick 97 117 "" 104] 16 (#$ . 98678)])
#@110 Check whether STRING is invisible or not.
I.e. any char in it has the `invisible' property set.

(fn STRING)
(defalias 'erc-string-invisible-p #[257 "\300\301G\302\303%\207" [text-property-any 0 invisible t] 7 (#$ . 99015)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erc-remove-parsed-property funcall function #[0 "\300\207" [t] 1] "Whether to remove the erc-parsed text property after displaying a message.\n\nThe default is to remove it, since it causes ERC to take up extra\nmemory.  If you have code that relies on this property, then set\nthis option to nil." :type boolean :group erc] 8)
#@395 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.

(fn STRING BUFFER)
(defalias 'erc-display-line-1 #[514 "\205\221r\211\206\f\306!q\210\307	!\206d\310\211\311\312\"\2044\211\313P\262\314!\2034\315\316G\317$\210\f\203I\320\321\322\323\"\324\322\325	\"\260!\210\310\326\327\"\210
\204Y\310\202}\212\214~\210b\210\330!\210\214`}\210\331\332!\210\331\333!\210 \203|\334ed\335#\210+*\210\331\336!\210\337\307	!\206\213dZ!\262)\207" [erc-server-process erc-insert-marker inhibit-read-only buffer-undo-list erc-log-p erc-insert-this process-buffer marker-position t string-match "\n$" "\n" erc-string-invisible-p erc-put-text-properties 0 (invisible intangible) erc-log-aux "erc-display-line: " format "(%S)" " in buffer " "%s" 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-insert-done-hook erc-update-undo-list erc-remove-parsed-property] 12 (#$ . 99664)])
#@14 

(fn SHIFT)
(defalias 'erc-update-undo-list #[257 "\211\301U\206	:??\205\224\302\205\222@\262\211\250\203(\211@\\\240\266\202\213\211:\203\213\303@!\204\213\211@\250\203O\211\211@\\\240\266\211\211A\\\241\266\202\213\211@;\203o\211\211A\304A!\203d\305\202e\306_\\\241\266\202\213\211@\204\213\307\233\211\211@\\\240\266\211\211A\\\241\266A\262\202\266\202\207" [buffer-undo-list 0 nil markerp natnump 1 -1 3] 8 (#$ . 100993)])
#@62 Regexp which matches all valid characters in a IRC nickname.
(defvar erc-valid-nick-regexp "[]a-zA-Z^[;\\`_{}|][]^[;\\`_{}|a-zA-Z0-9-]*" (#$ . 101475))
#@51 Check if NICK is a valid IRC nickname.

(fn NICK)
(defalias 'erc-is-valid-nick-p #[257 "\301\302\303Q\"\207" [erc-valid-nick-regexp string-match "\\`" "\\'"] 5 (#$ . 101633)])
#@597 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.

(fn STRING &optional BUFFER)
(defalias 'erc-display-line #[513 "\302\303\304!\203C\202Q<\203\202Q\305!\203%\306!C\202Q\307=\2032\310\303	\"\202Q\311=\203C\312 \203C\312 C\202Q\313 \203O\306	!C\202QpC\211\203o\211@\314!\203h\315\"\210\211B\262A\266\202\202Q\210\211?\205\204\315\313 \203\202\306	!\202\203p\")\207" [inhibit-point-motion-hooks erc-server-process 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] 9 (#$ . 101818)])
#@120 Highlight STRING according to TYPE, where erc-TYPE-face is an ERC face.

See also `erc-make-notice'.

(fn TYPE STRING)
(defalias 'erc-display-message-highlight #[514 "\300=\203\n\301!\207\302\303G\304\305\306\307!\310Q!\206\311%\210\207" [notice erc-make-notice erc-put-text-property 0 font-lock-face intern-soft "erc-" symbol-name "-face" "erc-default-face"] 10 (#$ . 102952)])
#@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 (#$ . 103347))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\207" [custom-declare-variable erc-lurker-trim-nicks funcall function #[0 "\300\207" [t] 1] "If t, trim trailing `erc-lurker-ignore-chars' from nicks.\n\nThis causes e.g. nick and nick\\=` to be considered as the same\nindividual for activity tracking and lurkiness detection\npurposes." :group erc-lurker :type boolean erc-lurker-ignore-chars #[0 "\300\207" [#1="`_"] 1 #1#] "Characters at the end of a nick to strip for activity tracking purposes.\n\nSee also `erc-lurker-trim-nicks'." string] 8)
#@137 Maybe trim trailing `erc-lurker-ignore-chars' from NICK.

Returns NICK unmodified unless `erc-lurker-trim-nicks' is
non-nil.

(fn NICK)
(defalias 'erc-lurker-maybe-trim #[257 "\203\302\303	\304\305\"\262!\306#\207\207" [erc-lurker-trim-nicks erc-lurker-ignore-chars replace-regexp-in-string regexp-opt-charset append nil ""] 7 (#$ . 104388)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\207" [custom-declare-variable erc-lurker-hide-list funcall function #[0 "\300\207" [nil] 1] "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'." :group erc-lurker :type erc-message-type erc-lurker-threshold-time #[0 "\300\207" [86400] 1] "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 #[0 "\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 (#$ . 105427)])
#@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 #[0 "\301\302\"\207" [erc-lurker-state maphash #[514 "\301\302\303\304\305\306!\307\"\310\311%\"\210\312!\313U\205\314\"\207" [erc-lurker-state maphash make-byte-code 514 "\302	\303!\"\205
\304\300\"\207" vconcat vector [erc-lurker-threshold-time time-less-p time-since remhash] 6 "\n\n(fn NICK LAST-PRIVMSG-TIME)" hash-table-count 0 remhash] 9 "\n\n(fn SERVER HASH)"]] 3 (#$ . 105876)])
#@71 Internal counter variable for use with `erc-lurker-cleanup-interval'.
(defvar erc-lurker-cleanup-count 0 (#$ . 106493))
#@335 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 (#$ . 106620))
#@689 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 `erc-message-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'.

(fn MESSAGE)
(defalias 'erc-lurker-update-status #[257 "\306\300!\205i\307!	>\205i\307!	>\204\310\311\312D\"\210\313H\314\315\307!	>\2041\310\311\312D\"\210\316H!@!\317\n!\320\232\205gT\211\fY\203N\321\322 \210\323
\"\204^\324\325\326\327\"
#\210\324\330 \323
\"#\266\203\207" [erc-message-parsed cl-struct-erc-response-tags erc-server-announced-name erc-lurker-cleanup-count erc-lurker-cleanup-interval erc-lurker-state boundp type-of signal wrong-type-argument erc-response 3 erc-lurker-maybe-trim erc-parse-user 2 erc-canonicalize-server-name "PRIVMSG" 0 erc-lurker-cleanup gethash puthash make-hash-table :test equal current-time] 10 (#$ . 107016)])
#@253 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'.

(fn NICK)
(defalias 'erc-lurker-p #[257 "\204\303 \210\304	!\305\306!\305\307 #\"\211?\206 \310\n\311!\"\207" [erc-lurker-state erc-server-announced-name erc-lurker-threshold-time erc-lurker-initialize erc-canonicalize-server-name gethash erc-lurker-maybe-trim make-hash-table time-less-p time-since] 8 (#$ . 108375)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erc-common-server-suffixes funcall function #[0 "\300\207" [(("openprojects.net\\'" . "OPN") ("freenode.net\\'" . "freenode") ("oftc.net\\'" . "OFTC"))] 1] "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." :group erc-mode-line-and-header :type alist] 8)
#@163 Return the canonical network name for SERVER if any,
otherwise `erc-server-announced-name'.  SERVER is matched against
`erc-common-server-suffixes'.

(fn SERVER)
(defalias 'erc-canonicalize-server-name #[257 "\211\205\302\303\304\305\306\307!\310\"\311\312%\"@A\206	\207" [erc-common-server-suffixes erc-server-announced-name erc-remove-if-not make-byte-code 257 "\301@\300\"\207" vconcat vector [string-match] 4 "\n\n(fn NET)"] 8 (#$ . 109422)])
#@26 

(fn SCOPE TARGET-LIST)
(defalias 'erc-add-targets #[514 "\300\301\302\303\304\305!\306\"\307\310%\"\311\312\313\314\"\"A\207" [mapcar make-byte-code 257 "\300\235\207" vconcat vector [] 3 "\n\n(fn TARGETS)" apply append delete nil] 9 (#$ . 109883)])
#@451 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'.  Message types that appear in `erc-network-hide-list'
or `erc-channel-hide-list' are only hidden if the target matches
the network or channel in the list.  In addition, messages whose type
is a member of `erc-lurker-hide-list' are hidden if `erc-lurker-p'
returns non-nil.

(fn PARSED)
(defalias 'erc-hide-current-message-p #[257 "\306!>\204\307\310\311D\"\210\211\312H\313\306!>\204\"\307\310\311D\"\210\314H!@\306!>\2046\307\310\311D\"\210\315H@\316\317!\203E\317 \206L\320	\206K\n!\205T\321\"\322\f\205^\321\f\"\"
\235\206u\235\206u\235\205u\323!\207" [cl-struct-erc-response-tags erc-server-announced-name erc-session-server erc-network-hide-list erc-channel-hide-list erc-hide-list type-of signal wrong-type-argument erc-response 3 erc-parse-user 2 4 fboundp erc-network-name erc-shorten-server-name erc-add-targets append erc-lurker-p erc-lurker-hide-list] 11 (#$ . 110147)])
#@176 Display MSG in BUFFER.

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

See also `erc-format-message' and `erc-display-line'.

(fn PARSED TYPE BUFFER MSG &rest ARGS)
(defalias 'erc-display-message #[1156 "9\203
\302\303#\202C\211\204\242\202B<\2037\304\305\306\307\310\311!\312\"\313\314%\"\210\242\202B9\205B\315\242\"\240\210\316!	>\204U\317\242\"\202\257\320!?\205\257\321\322\242G\323	\242%\210\321\322\242G\324\325\242%\210\316!	>\204\205\326\327\330D\"\210\331H\203\252\321\322\242G\332\316\n!	>\204\242\326\327\330\fD\"\210	\331H\242%\210\317\242\")\207" [erc-message-parsed cl-struct-erc-response-tags apply erc-format-message mapc make-byte-code 257 "\300\301\300\242\"\240\207" vconcat vector [erc-display-message-highlight] 5 "\n\n(fn TYPE)" erc-display-message-highlight type-of erc-display-line erc-hide-current-message-p erc-put-text-property 0 erc-parsed rear-sticky t signal wrong-type-argument erc-response 6 tags] 14 (#$ . 111235)])
#@161 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.

(fn POSITION LIST)
(defalias 'erc-message-type-member #[514 "\301!\211\205\302!>\204\303\304\305D\"\210\211\306H\235\207" [cl-struct-erc-response-tags erc-get-parsed-vector type-of signal wrong-type-argument erc-response 3] 7 (#$ . 112259)])
(defvar erc-send-input-line-function 'erc-send-input-line)
(make-variable-buffer-local 'erc-send-input-line-function)
#@85 Send LINE to TARGET.

See also `erc-server-send'.

(fn TARGET LINE &optional FORCE)
(defalias 'erc-send-input-line #[770 "\300\301\302\230\203
\303\202#\262\304#\207" [format "PRIVMSG %s :%s" "\n" " \n" erc-server-send] 8 (#$ . 112775)])
#@70 Return the argument list of a function without the parens.

(fn FUN)
(defalias 'erc-get-arglist #[257 "\300\301\302!\"\303\304\"\203\305\306\"\202\211\207" [format "%S" erc-function-arglist string-match "\\`(\\(.*\\))\\'" match-string 1] 5 (#$ . 113029)])
#@113 Return non-nil if STR is an ERC command that can be run when the process
is not alive, nil otherwise.

(fn STR)
(defalias 'erc-command-no-process-p #[257 "\300!\211\205\211@9\205\211@\301N\207" [erc-extract-command-from-line process-not-needed] 4 (#$ . 113299)])
#@117 For CMD being the function name of a ERC command, something like
erc-cmd-FOO, this returns a string /FOO.

(fn CMD)
(defalias 'erc-command-name #[257 "\300!\301\302\"\203\303\304\305\"P\202\211\207" [symbol-name string-match "\\`erc-cmd-\\(.*\\)\\'" "/" match-string 1] 6 (#$ . 113574)])
#@568 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.

(fn LINE &optional FORCE NO-COMMAND)
(defalias 'erc-process-input-line #[769 "\301!\211\203P\204P\211@A@\3021'\211<\203 \303\"\202#!0\202K\210\304\305\306p\307\310\311!\312\313\n!\206;\314\315\316\317\320!\206F\314\"&\n\210\305\266\202\202j\321 \211\203`#\202h\304\305\306p\322$\210\305\262\207" [erc-send-input-line-function erc-extract-command-from-line (wrong-number-of-arguments) apply erc-display-message nil error incorrect-args 99 erc-command-name 117 erc-get-arglist "" 100 format "%s\n" documentation erc-default-target no-target] 20 (#$ . 113876)])
#@77 Send LINE to all channels of the current server that you are on.

(fn LINE)
(defalias 'erc-cmd-AMSG #[257 "\211C\211\300\242!\240\210\301\302\303\304\305\306\307\310!\311\"\312\313%\314\"\"\266\202\207" [erc-trim-string nil #[0 "\300\301 !\207" [erc-channel-p erc-default-target] 2] mapcar make-byte-code 257 "r\211q\210\301\300\242!)\207" vconcat vector [erc-send-message] 3 "\n\n(fn BUFFER)" erc-buffer-list] 11 (#$ . 115001) "sSend to all channels you're on: "])
(put 'erc-cmd-AMSG 'do-not-parse-args t)
#@260 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.

(fn LINE)
(defalias 'erc-cmd-SAY #[257 "\300\301\"?\205\300\302\"\210\303\304\"\305!\210\306\307\310#\262\207" [string-match "^\\s-*$" "^ ?\\(.*\\)" match-string 1 erc-display-msg erc-process-input-line nil t] 6 (#$ . 115520)])
(put 'erc-cmd-SAY 'do-not-parse-args t)
#@134 Set the variable named by the first word in LINE to some VALUE.
VALUE is computed by evaluating the rest of LINE in Lisp.

(fn LINE)
(defalias 'erc-cmd-SET #[257 "\300\301\"\203`\302\303\304\305\"P!\302\304\306\"!\307!\2032\310!L\210\311\312\211\313\314\315#$\210\316\202_\302\304\305\"!\262\307!\203W\310!L\210\311\312\211\313\314\315#$\210\316\202_\311\312\317\313\320$\210\312\207\300\321\"\203y\322\323\324\325\326\327\330\331\332\"\"\"Pp\"\210\316\207\312\207" [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 #[257 "\211J\300\301\":\203\302\303!P\202\300\304\"P\207" [format "%S:" "\n" pp-to-string " %S\n"] 6 "\n\n(fn VAR)"] apropos-internal "^erc-" custom-variable-p] 11 (#$ . 116052)])
(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)
#@204 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.

(fn LINE)
(defalias 'erc-cmd-default #[257 "\203\301\302\303\"!\210\304\305\306\"!\210\307\207" [erc-log-p erc-log-aux format "cmd: DEFAULT: %s" erc-server-send substring 1 t] 5 (#$ . 117175)])
#@159 Ignore USER.  This should be a regexp matching nick!user@host.
If no USER argument is specified, list the contents of `erc-ignore-list'.

(fn &optional USER)
(defalias 'erc-cmd-IGNORE #[256 "\211\203:\301!\230\204\302\303\304\"!\203\211\262\305\306\303\307\"!\310\"\210\311 \312!\2035r\211q\210\313\300\"\210)\266\202r\311 \312!\205Hr\211q\210)\262\204W\305\306\314!\310\"\210\202r\305\306\315!\310\"\210\316\317\311 \312!\205nr\211q\210)\262\"\210\320\207" [erc-ignore-list 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 #[257 "\300\301!\302\"\207" [erc-display-line erc-make-notice active] 4 "\n\n(fn ITEM)"] t] 7 (#$ . 117574)])
#@68 Remove the user specified in USER from the ignore list.

(fn USER)
(defalias 'erc-cmd-UNIGNORE #[257 "\301 \302!\205r\211q\210\303\304!\")\262@\211\204<\305!\211\262\2032\306\307\310\"!\204<\311\262\202<\312\313\307\314\"!\315\"\210\211\203]\312\313\307\316\"!\315\"\210\301 \302!\203\\r\211q\210\317\")\210\210\320\207" [erc-ignore-list 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] 7 (#$ . 118406)])
#@27 Clear the window content.
(defalias 'erc-cmd-CLEAR #[0 "\301e\302 |\210)\301\207" [inhibit-read-only t line-beginning-position] 2 (#$ . 119030)])
(put 'erc-cmd-CLEAR 'process-not-needed t)
#@38 Show the ops in the current channel.
(defalias 'erc-cmd-OPS #[0 "\301C\203\302\303\304\305\306\307!\310\"\311\312%\"\210\211\313\242\314\"\240\210\211\242\203K\315\301\316p\317\320\242G\321\242G\322V\203<\323\202=\324\325\326\327\f\242\330#&\n\210\202R\315\301\316p\331$\210\210\332\207" [erc-channel-users nil maphash make-byte-code 514 "\211A\211\2055\211\303H	>\204\304\305\306D\"\210\211\307H\2055\300@\303H\n>\204-\304\305\310@D\"\210@\311H\300\242B\240\207" vconcat vector [cl-struct-erc-channel-user-tags cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-channel-user 3 erc-server-user 1] 8 "\n\n(fn NICK USER-DATA)" sort string-lessp erc-display-message notice ops 105 115 1 "s" "" 111 mapconcat identity " " ops-none t] 15 (#$ . 119226) nil])
#@73 Display the country associated with the top level domain TLD.

(fn TLD)
(defalias 'erc-cmd-COUNTRY #[257 "\300\301!\210\3021\303!0\202\210\304\211\203&\305\304\306\307\310\311\312	&\210\2021\305\304\306\307\313\312&\210\314\207" [require mail-extr (error) what-domain nil erc-display-message notice active country 99 100 country-unknown t] 11 (#$ . 120023)])
(put 'erc-cmd-COUNTRY 'process-not-needed t)
#@119 Mark the user as being away, the reason being indicated by LINE.
If no reason is given, unset away status.

(fn LINE)
(defalias 'erc-cmd-AWAY #[257 "\301\302\"\205(\303\304\"\203\305\306\307\"!\210\310\311\230\203!\312\202$\313P!\266\314\207" [erc-log-p string-match "^\\s-*\\(.*\\)$" match-string 1 erc-log-aux format "cmd: AWAY: %s" erc-server-send "" "AWAY" "AWAY :" t] 6 (#$ . 120448)])
(put 'erc-cmd-AWAY 'do-not-parse-args t)
#@88 Mark the user as being away everywhere, the reason being indicated by LINE.

(fn LINE)
(defalias 'erc-cmd-GAWAY #[257 "\300\301\302\303\304\305\306\307!\310\"\311\312%\313\"\"\207" [nil erc-open-server-buffer-p mapcar make-byte-code 257 "r\211q\210\301\300!)\207" vconcat vector [erc-cmd-AWAY] 3 "\n\n(fn BUFFER)" erc-buffer-list] 10 (#$ . 120898)])
(put 'erc-cmd-GAWAY 'do-not-parse-args t)
#@201 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.

(fn NICK CMD &rest ARGS)
(defalias 'erc-cmd-CTCP #[642 "\205\f\301\302\303\301#PP\203\304\305\306#!\210\307\"\210\310\207" [erc-log-p " " mapconcat identity erc-log-aux format "cmd: CTCP [%s]: [%s]" erc-send-ctcp-message t] 9 (#$ . 121301)])
#@421 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.

(fn &optional FUNC)
(defalias 'erc-cmd-HELP #[256 "\211\203{\300\301\226P!\211\205\302!\204\303!\205\211\262\206Q\300!\211\2054\302!\2043\303!\2054\211\262\206Q\300\304P!\211\205O\302!\204N\303!\205O\211\262\211\203q\302!\203a\305!\202z\303!\203m\306!\202z\307\202z\310\311P\307\312#\210\313\207\314\301!\210\315\316!\210\313\207" [intern-soft "erc-cmd-" boundp fboundp "erc-" describe-variable describe-function nil apropos-command "erc-.*" #[257 "\300!\206	\211\301N\207" [commandp custom-type] 3 "\n\n(fn X)"] t apropos message "Type C-h m to get additional information about keybindings."] 6 (#$ . 121737)])
(byte-code "\300\301\302\"\210\303\302\304\305#\207" [defalias erc-cmd-H erc-cmd-HELP put process-not-needed t] 4)
#@40 

(fn SERVER CHANNEL &optional SECRET)
(defalias 'erc-server-join-channel #[770 "\211\206\301\302\303\304\305\306\307\310\n&@\311\"\312!\203 \211 \202!\211\203-\313\314\315\"!\210\316\317\203:\320P\202;\321Q!\207" [erc-log-p plist-get auth-source-search :max 1 :host :port "irc" :user :secret functionp erc-log-aux format "cmd: JOIN: %s" erc-server-send "JOIN " " " ""] 13 (#$ . 122910)])
#@205 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'.

(fn CHANNEL &optional KEY)
(defalias 'erc-cmd-JOIN #[513 "\304\226\305\230\203\203\262\202!\306\304\307p\310$\210\202!\311!\262\211\203R\312\313\314	!\"\315\"\203=\316\315\"@!\210\202Qr\317	!q\210\n\206H)\320#\266\210\210\321\207" [erc-invitation erc-server-process erc-session-server erc-server-announced-name nil "-INVITE" erc-display-message error no-invitation erc-ensure-channel-name mapcar #[257 "r\211q\210\300 )\207" [erc-default-target] 2 "\n\n(fn CHANBUF)"] erc-channel-list erc-member-ignore-case switch-to-buffer process-buffer erc-server-join-channel t] 9 (#$ . 123324)])
(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 (#$ . 124222))
(make-variable-buffer-local 'erc-channel-new-member-names)
#@200 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.

(fn &optional CHANNEL)
(defalias 'erc-cmd-NAMES #[256 "\302!\203\n\211\206\f\303 \211\203_\302!\203_\203!\304\305\306\"!\210\211\307\310!\203-\202F\211\2068\311	!\2058	\205D\211\205D\312\"\262\313!\203Tr\211q\210\314 \210)\266\315\316P!\210\202f\317\307\320p\321$\210\210\322\207" [erc-log-p erc-server-process erc-channel-p erc-default-target erc-log-aux format "cmd: DEFAULT: NAMES %s" 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] 8 (#$ . 124480)])
(defalias 'erc-cmd-N 'erc-cmd-NAMES)
#@177 Kick the user indicated in LINE from the current channel.
LINE has the format: "#CHANNEL NICK REASON" or "NICK REASON".

(fn TARGET &optional REASON-OR-NICK &rest REASONWORDS)
(defalias 'erc-cmd-KICK #[641 "\301\302\303#\211\304\230\203\305\306\307 \"\262\310!\203<\203(\311\305\312$!\210\313\305\314$\315#\210\316\262\202z\205z\317 \205I\303PP\262\211\203p\203`\311\305\312$!\210\313\305\314$\315#\210\202w\320\315\321p\322$\210\316\262\207" [erc-log-p mapconcat identity " " "" format "Kicked by %s" erc-current-nick erc-channel-p erc-log-aux "cmd: KICK: %s/%s: %s" erc-server-send "KICK %s %s :%s" nil t erc-default-target erc-display-message error no-default-channel] 11 (#$ . 125289)])
(defvar erc-script-args nil)
#@311 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.

(fn LINE)
(defalias 'erc-cmd-LOAD #[257 "\303\304\"\203X\305\306\"\305\307\"\310	\"\n\203\311\312\313\"!\210\211\2041\314\315\316p\317\320&\210\202S\321!\204E\314\315\316p\322\320&\210\202S\323\324\"\210\325!\210\323\326\"\210)\266\327\207\315\207" [erc-script-args erc-script-path erc-log-p string-match "^\\s-*\\(\\S-+\\)\\(.*\\)$" match-string 1 2 erc-find-file erc-log-aux format "cmd: LOAD: %s" 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] 10 (#$ . 126062)])
#@130 Display whois information for USER.

If SERVER is non-nil, use that, rather than the current server.

(fn USER &optional SERVER)
(defalias 'erc-cmd-WHOIS #[513 "\211\203\f\301\302#\202\301\303\"\203\304\301\305\"!\210\306!\210\307\207" [erc-log-p format "WHOIS %s %s" "WHOIS %s" erc-log-aux "cmd: %s" erc-server-send t] 7 (#$ . 126963)])
(defalias 'erc-cmd-WI 'erc-cmd-WHOIS)
#@43 Display whois information about yourself.
(defalias 'erc-cmd-WHOAMI #[0 "\300\301 !\210\302\207" [erc-cmd-WHOIS erc-current-nick t] 2 (#$ . 127356)])
#@56 Show the length of time NICK has been idle.

(fn NICK)
(defalias 'erc-cmd-IDLE #[257 "p\300\301 \302!\203\270r\211q\210\303\304\305\306\307\310\311\n!\312\"\313\314%\"\315BB\262\303\316\305\306\307\310\311\n!\317\"\313\314%\"\320BB\262\303\321\305\306\307\310\311\n!\322\"\313\314%\"\323BB\262\303\324\305\306\307\310\311\n!\325\"\313\314%\"\326BB\262\303\327\305\306\307\310\311\n!\330\"\313\314%\"\331BB\262\303\332\305\306\307\310\311\n!\333\"\313\314%\"\334BB\262\303\335\305\306\336\310\311\n\n\"\337\"\340\314%\"\341BB\262\342!\210\343\344\300\345p%\210)\266\346\207" [nil erc-server-buffer buffer-live-p erc-once-with-server-event 311 make-byte-code 514 "\300\302!	>\204\303\304\305D\"\210\306HA@\230\207" vconcat vector [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4] 7 "\n\n(fn PROC PARSED)" erc-server-311-functions 312 [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4] erc-server-312-functions 318 [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4] erc-server-318-functions 319 [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4] erc-server-319-functions 320 [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4] erc-server-320-functions 330 [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4] erc-server-330-functions 317 "\303\304!\n>\204\305\306\307D\"\210\310HAA@!\311\312\313\314\315\300!\316!#!\301\"\210\317\207" [cl-struct-erc-response-tags string-to-number type-of signal wrong-type-argument erc-response 4 erc-display-line erc-make-notice format "%s has been idle for %s." erc-string-no-properties erc-seconds-to-string t] 10 erc-server-317-functions erc-cmd-WHOIS run-at-time 20 #[514 "rq\210\211\211\205\211@\211A@\300\301#\266A\266\202\202\262)\207" [remove-hook t] 10 "\n\n(fn BUF SYMLIST)"] t] 13 (#$ . 127512)])
#@83 Pose some action to a certain user.
LINE has the format "USER ACTION".

(fn LINE)
(defalias 'erc-cmd-DESCRIBE #[257 "\301\302\"\203#\303\304\"\303\305\"\203\306\307\310#!\210\311\"\266\312\207\313\207" [erc-log-p string-match "^\\s-*\\(\\S-+\\)\\s-\\(.*\\)$" match-string 1 2 erc-log-aux format "cmd: DESCRIBE: [%s] %s" erc-send-action t nil] 8 (#$ . 129481)])
(put 'erc-cmd-DESCRIBE 'do-not-parse-args t)
#@36 Send LINE as an action.

(fn LINE)
(defalias 'erc-cmd-ME #[257 "\301\302\"\203\303\304\"\203\305\306\307\"!\210\310\311 \"\266\312\207\313\207" [erc-log-p string-match "^\\s-\\(.*\\)$" match-string 1 erc-log-aux format "cmd: ME: %s" erc-send-action erc-default-target t nil] 6 (#$ . 129905)])
(put 'erc-cmd-ME 'do-not-parse-args t)
#@75 Do a /ME command, but add the string " \='s" to the beginning.

(fn LINE)
(defalias 'erc-cmd-ME\'S #[257 "\300\301P!\207" [erc-cmd-ME " 's"] 4 (#$ . 130253)])
(put 'erc-cmd-ME\'S 'do-not-parse-args t)
#@419 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.

(fn LINE)
(defalias 'erc-cmd-LASTLOG #[257 "\300!\210\301\207" [occur t] 3 (#$ . 130462)])
(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)
#@133 Send LINE to the current channel or user and display it.

See also `erc-message' and `erc-display-line'.

(fn LINE &optional FORCE)
(defalias 'erc-send-message #[513 "\300\301\302 \303Q#\210\304\305 Pp\"\210\306\207" [erc-message "PRIVMSG" erc-default-target " " erc-display-line erc-format-my-nick t] 7 (#$ . 131089)])
#@313 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'.

(fn LINE)
(defalias 'erc-cmd-MODE #[257 "\301\302\"\203\303\304\"\203\305\306\307\"!\210\310\311P!\266\312\207\313\207" [erc-log-p string-match "^\\s-\\(.*\\)$" match-string 1 erc-log-aux format "cmd: MODE: %s" erc-server-send "MODE " t nil] 6 (#$ . 131419)])
(put 'erc-cmd-MODE 'do-not-parse-args t)
#@132 Send a notice to the channel or user given as the first word.
The rest is the message to send.

(fn CHANNEL-OR-USER &rest MESSAGE)
(defalias 'erc-cmd-NOTICE #[385 "\300\301\302\303\304\302#Q\"\207" [erc-message "NOTICE" " " mapconcat identity] 10 (#$ . 132039)])
#@125 Send a message to the channel or user given as the first word in LINE.

The rest of LINE is the message to send.

(fn LINE)
(defalias 'erc-cmd-MSG #[257 "\300\301\"\207" [erc-message "PRIVMSG"] 4 (#$ . 132312)])
(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)
#@123 Send a Service Query to the service given as the first word in LINE.

The rest of LINE is the message to send.

(fn LINE)
(defalias 'erc-cmd-SQUERY #[257 "\300\301\"\207" [erc-message "SQUERY"] 4 (#$ . 132645)])
#@45 Change current nickname to NICK.

(fn NICK)
(defalias 'erc-cmd-NICK #[257 "\203\f\303\304\305	#!\210\306\307\310 \311!\205r\211q\210\n)\262\"A\211\203<G\312!V\203<\313\314\315\316\317\320G\321&\210\210\322\304\323\"!\210	\203Q\324!\210\325 \210\314\326\207" [erc-log-p erc-bad-nick erc-server-parameters erc-log-aux format "cmd: NICK: %s (erc-bad-nick: %S)" 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] 11 (#$ . 132864)])
#@116 When LINE is an empty string, leave the current channel.
Otherwise leave the channel indicated by LINE.

(fn LINE)
(defalias 'erc-cmd-PART #[257 "\302\303\"\203?\304\305\"\304\306\"\307\232?\205!	\203%\310\311\312#!\210\313\307\230\2033\311\314\"\2028\311\315#\316#\266\317\207\302\320\"\203\221\321 \304\305\"\307\232?\205U!\203\206\322!\203\206	\203l\310\311\312#!\210\313\307\230\203z\311\314\"\202\311\315#\316#\210\202\215\323\316\324p\325$\210\266\317\207\316\207" [erc-part-reason erc-log-p string-match "^\\s-*\\([&#+!]\\S-+\\)\\s-?\\(.*\\)$" match-string 1 2 "" erc-log-aux format "cmd: PART: %s: %s" erc-server-send "PART %s" "PART %s :%s" nil t "^\\s-*\\(.*\\)$" erc-default-target erc-channel-p erc-display-message error no-target] 9 (#$ . 133464)])
(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)
#@33 Ping RECIPIENT.

(fn RECIPIENT)
(defalias 'erc-cmd-PING #[257 "\301\302!\203\303\304\305\"!\210\306\307#\207" [erc-log-p format-time-string "%s.%6N" erc-log-aux format "cmd: PING: %s" erc-cmd-CTCP "PING"] 6 (#$ . 134394)])
#@167 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!

(fn LINE)
(defalias 'erc-cmd-QUOTE #[257 "\300\301\"\203\302\303\304\"!\207\305\207" [string-match "^ ?\\(.+\\)$" erc-server-send match-string 1 nil] 5 (#$ . 134630)])
(byte-code "\300\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315&\207" [put erc-cmd-QUOTE do-not-parse-args t custom-declare-variable erc-query-display funcall function #[0 "\300\207" [window] 1] "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)
#@228 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 ;-)

(fn &optional USER)
(defalias 'erc-cmd-QUERY #[256 "\302 \203\303\"\202\304\305\306\")\207" [erc-query-display erc-join-buffer erc-server-buffer erc-query signal wrong-number-of-arguments ""] 5 (#$ . 135836) (byte-code "\300\301\302\"C\207" [read-from-minibuffer "Start a query with: " nil] 3)])
(defalias 'erc-cmd-Q 'erc-cmd-QUERY)
#@28 Default quit/part message.
(defalias 'erc-quit/part-reason-default #[0 "\301\302\"\207" [emacs-version format "ERC (IRC client for Emacs %s)"] 3 (#$ . 136391)])
#@94 Normal quit message.

If S is non-nil, it will be used as the quit reason.

(fn &optional S)
(defalias 'erc-quit-reason-normal #[256 "\211\206\300 \207" [erc-quit/part-reason-default] 2 (#$ . 136561)])
#@93 Zippy quit message.

If S is non-nil, it will be used as the quit reason.

(fn &optional S)
(defalias 'erc-quit-reason-zippy #[256 "\211\206\300\301!\203\302\303\304\301 #\207\305 \207" [fboundp yow erc-replace-regexp-in-string "\n" "" erc-quit/part-reason-default] 5 (#$ . 136771)])
(make-obsolete 'erc-quit-reason-zippy "it will be removed." "24.4")
#@53 Choose a quit reason based on S (a string).

(fn S)
(defalias 'erc-quit-reason-various #[257 "\301\206\302\303#@\304!\203\211 \202(\211;\203\211\202(\203&\202(\305 \207" [erc-quit-reason-various-alist assoc-default "" string-match functionp erc-quit/part-reason-default] 5 (#$ . 137133)])
#@94 Normal part message.

If S is non-nil, it will be used as the part reason.

(fn &optional S)
(defalias 'erc-part-reason-normal #[256 "\211\206\300 \207" [erc-quit/part-reason-default] 2 (#$ . 137443)])
#@93 Zippy part message.

If S is non-nil, it will be used as the quit reason.

(fn &optional S)
(defalias 'erc-part-reason-zippy #[256 "\211\206\300\301!\203\302\303\304\301 #\207\305 \207" [fboundp yow erc-replace-regexp-in-string "\n" "" erc-quit/part-reason-default] 5 (#$ . 137653)])
(make-obsolete 'erc-part-reason-zippy "it will be removed." "24.4")
#@53 Choose a part reason based on S (a string).

(fn S)
(defalias 'erc-part-reason-various #[257 "\301\206\302\303#@\304!\203\211 \202(\211;\203\211\202(\203&\202(\305 \207" [erc-part-reason-various-alist assoc-default "" string-match functionp erc-quit/part-reason-default] 5 (#$ . 138015)])
#@151 Disconnect from the current server.
If REASON is omitted, display a default quit message, otherwise display
the message given by REASON.

(fn REASON)
(defalias 'erc-cmd-QUIT #[257 "\211\204\305\262\306\307\"\203e\310\311\"\312 \305\232?\205!\313r\203.\314!\203.\202/pq\210	\203<\315\316\317\"!\210\320\321\312 !\210\262\322\316\323\"!\210)\324\325\"\210\f\203[\326!\210\327\330\313\331$\266\320\207\313\207" [erc-quit-reason erc-log-p erc-server-quitting erc-server-process erc-kill-queries-on-quit "" string-match "^\\s-*\\(.*\\)$" match-string 1 erc-server-buffer nil bufferp erc-log-aux format "cmd: QUIT: %s" 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 #[257 "\300!\205\301!\302>\205\303!\207" [processp process-status (run open) delete-process] 3 "\n\n(fn PROC)"]] 10 (#$ . 138326)])
(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)
#@77 Disconnect from all servers at once with the same quit REASON.

(fn REASON)
(defalias 'erc-cmd-GQUIT #[257 "\301\302\303\304\305\306\307\310!\311\"\312\313%\314\"\"\266\203!\315\316\301\317#\210\320\207" [erc-kill-queries-on-quit nil erc-open-server-buffer-p mapcar make-byte-code 257 "r\211q\210\301\300!)\207" vconcat vector [erc-cmd-QUIT] 3 "\n\n(fn BUFFER)" erc-buffer-list run-at-time 4 #[0 "\300\301!\211\205\211@\302!\210A\266\202\202\207" [erc-buffer-list #[257 "\300!?\207" [erc-server-buffer-p] 3 "\n\n(fn BUF)"] kill-buffer] 4] t] 10 (#$ . 139454)])
(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 #[0 "\303 \304\305!\204\fp\262rq\210\304\306\307\310\303 !\262\211\203'\311!\210\202*\312 \210\304)\266\306\207" [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] 4 (#$ . 140191)])
(put 'erc-cmd-RECONNECT 'process-not-needed t)
#@69 Connect to SERVER, leaving existing connection intact.

(fn SERVER)
(defalias 'erc-cmd-SERVER #[257 "\203\301\302\303\"!\210\3041\305\306\307\310 $0\202\210\311\312\"\210\313\207" [erc-log-p erc-log-aux format "cmd: SERVER: %s" (error) erc :server :nick erc-current-nick erc-error "Cannot find host %s." t] 6 (#$ . 140629)])
(put 'erc-cmd-SERVER 'process-not-needed t)
#@53 Say the current ERC and Emacs version into channel.
(defalias 'erc-cmd-SV #[0 "\306\307\310	\311\312!\203\313\314\n\315\"P\202+\311\316!\203 \317P\202+\311\320!\203*\321\202+\322\323\304!\203B\f\324>\203B\307\325\326\327\f!!\"\202C\322\311\330!\203M\331\202N\322Q
\203Y\332
P\202Z\322%!\210\333\207" [emacs-version system-configuration motif-version-string gtk-version-string x-toolkit-scroll-bars erc-emacs-build-time erc-send-message format "I'm using ERC with GNU Emacs %s (%s%s)%s." featurep motif ", " substring 4 gtk ", GTK+ Version " x-toolkit ", X toolkit" "" boundp (xaw xaw3d) ", %s scroll bars" capitalize symbol-name multi-tty ", multi-tty" " of " t] 11 (#$ . 141014)])
#@41 Say the current ERC modes into channel.
(defalias 'erc-cmd-SM #[0 "\300\301\302\303 \"!\210\304\207" [erc-send-message format "I'm using the following modules: %s!" erc-modes t] 4 (#$ . 141718)])
#@78 Remove the operator setting from user(s) given in PEOPLE.

(fn &rest PEOPLE)
(defalias 'erc-cmd-DEOP #[128 "\211G\300V\205\301\302\303 \304\305G\306\"\307\310\311\307#\260!\210\312\207" [0 erc-server-send "MODE " erc-default-target " -" make-string 111 " " mapconcat identity t] 11 (#$ . 141920)])
#@74 Add the operator setting to users(s) given in PEOPLE.

(fn &rest PEOPLE)
(defalias 'erc-cmd-OP #[128 "\211G\300V\205\301\302\303 \304\305G\306\"\307\310\311\307#\260!\210\312\207" [0 erc-server-send "MODE " erc-default-target " +" make-string 111 " " mapconcat identity t] 11 (#$ . 142230)])
#@81 Request the current time and date from the current server.

(fn &optional LINE)
(defalias 'erc-cmd-TIME #[256 "\211\203#\301\302\"\203#\303\304\"\203\305\306\307\"!\210\310\311P!\266\312\207\310\313!\207" [erc-log-p string-match "^\\s-*\\(.*\\)$" match-string 1 erc-log-aux format "cmd: TIME: %s" erc-server-send "TIME " t "TIME"] 6 (#$ . 142534)])
(defalias 'erc-cmd-DATE 'erc-cmd-TIME)
#@286 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.

(fn TOPIC)
(defalias 'erc-cmd-TOPIC #[257 "\302\303\"\203r\304\305\"\304\306\"\211\307\211\310\206\311\312Q\307\313\302#)\266\203\211\2034\314\315#\2025\266\203\302\316\206?\311\317Q\"\203P\314\315\225\"\266\205\202S\266\205\320\232\204n	\203d\321\322\323#!\210\324\322\325#\307#\210\266\313\207\302\326\"\203\210\304\305\"\324\322\327\"\307#\210\313\207\302\330\"\203\234\331 \324\322\327\"\307#\210\313\207\302\332\"\203\327\331 \304\305\"\203\314\333!\203\314	\203\277\321\322\323#!\210\324\322\325#\307#\210\202\323\334\307\335p\336$\210\266\313\207\307\207" [inhibit-changing-match-data erc-log-p string-match "^\\s-*\\([&#+!]\\S-+\\)\\s-\\(.*\\)$" match-string 1 2 nil "\\(?:" "[ 	\n
]+" "\\)\\'" t substring 0 "\\`\\(?:" "\\)" "" erc-log-aux format "cmd: TOPIC [%s]: %s" erc-server-send "TOPIC %s :%s" "^\\s-*\\([&#+!]\\S-+\\)" "TOPIC %s" "^\\s-*$" erc-default-target "^\\s-*\\(.*\\)$" erc-channel-p erc-display-message error no-target] 15 (#$ . 142939)])
(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)
#@78 Append TOPIC to the current channel topic, separated by a space.

(fn TOPIC)
(defalias 'erc-cmd-APPENDTOPIC #[257 "\301\302\"\203
\303\304\305\"\210\301\306\"\205\307\310\311\"P!\207" [erc-channel-topic string-match "^\\s-*$" signal wrong-number-of-arguments nil "\\(.*\\)" erc-cmd-TOPIC match-string 1] 6 (#$ . 144356)])
(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)
#@126 Clear the topic for a CHANNEL.
If CHANNEL is not specified, clear the topic for the default channel.

(fn &optional CHANNEL)
(defalias 'erc-cmd-CLEARTOPIC #[256 "\300!\203\n\211\206\f\301 \211\205\302\303\304\"!\210\305\207" [erc-channel-p erc-default-target erc-server-send format "TOPIC %s :" t] 6 (#$ . 144816) "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 (#$ . 145198))
(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 #[0 "\304 \305 \306!\204\307\310\311!\312\"\210\202\314\301\313N\204L\314\315\316 \317!\203Gr\211q\210\320\321\322\323\324\325\326		\"\327\"\330\331%\"\210\332\333\334\"!\210)\266\202\314	\204c\307\310\333\335\"!\312\"\210\336\301\313\315#\210\202\314\337\302!\203m\n\206z\337\303!\203w\206z\340 S\341\342\"\343\344\345\245!\346\344\345\245!\347\260\307\310\333\350\304 \"!\312\"\210\307\312\"\210\307\333\351\352#\312\"\210\307\312\"\210\353\322\354\355\325\326\"\356\"\357\360%	\"\210\307\310\361!\312\"\210\336\301\313\315#\266\266\362\207" [erc-server-367-functions erc-channel-banlist erc-fill-column fill-column 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 make-byte-code 514 "r\300q\210\303\304\305\306#\210\301\307 \210)\306\207" vconcat vector [erc-server-367-functions put erc-channel-banlist received-from-server t erc-cmd-BANLIST] 6 "\n\n(fn PROC PARSED)" erc-server-send format "MODE %s b" "No bans for channel: %s\n" put boundp window-width make-string 61 "%-" number-to-string 2 "s%" "s" "Ban list for channel: %s\n" "Ban Mask" "Banned By" mapc 257 "\302\303\301\304A\300\305\245\"@\203\304@\300\305\245\"\202\306#\307\"\207" [erc-display-line format truncate-string-to-width 2 "" active] 9 "\n\n(fn X)" "End of Ban list" t] 13 (#$ . 145590)])
(defalias 'erc-cmd-BL 'erc-cmd-BANLIST)
#@71 Mass Unban.

Unban all currently banned users in the current channel.
(defalias 'erc-cmd-MASSUNBAN #[0 "\302 \303!\204\304\305\306!\307\"\202Y\301\310N\204G\311\312 \313!\205@r\211q\210\314\315\316\317\320\321\322		\"\323\"\324\325%\"\210\326\327\330\"!)\262\262\202Y\331\332	\"\211\203W\333\334\335\336\"\"\210\210\337\207" [erc-server-367-functions erc-channel-banlist 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 make-byte-code 514 "r\300q\210\303\304\305\306#\210\301\307 \210)\306\207" vconcat vector [erc-server-367-functions put erc-channel-banlist received-from-server t erc-cmd-MASSUNBAN] 6 "\n\n(fn PROC PARSED)" erc-server-send format "MODE %s b" mapcar cdr mapc #[257 "\300\301\302\303 \304G\305\"\306\307\310#$!\207" [erc-server-send format "MODE %s -%s %s" erc-default-target make-string 98 mapconcat identity " "] 10 "\n\n(fn X)"] erc-group-list 3 t] 12 (#$ . 147248)])
(defalias 'erc-cmd-MUB 'erc-cmd-MASSUNBAN)
#@140 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.

(fn CHANNEL)
(defalias 'erc-ensure-channel-name #[257 "\300!\203\207\301P\207" [erc-channel-p "#"] 3 (#$ . 148362)])
#@284 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.

(fn START END)
(defalias 'erc-grab-region #[514 "\301p!\210\212p\302!{\303!q\210\211\211\203%\211@\211\304Pc\210A\266\202\202\210q\210\305!\266)\306\307!\210\310 \207" [erc-grab-buffer-name erc-set-active-buffer generate-new-buffer erc-split-multiline-safe "\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] 10 (#$ . 148616) "r"])
#@394 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.

(fn &optional BUFFER POS PROMPT FACE)
(defalias 'erc-display-prompt #[1024 "\206\302 \211Gp\203\303!\203q\210\212\206`\262b\210\304V\203O\305\306\307\310\307\302\307\311\307\312\307\313\307&
\262\314\304GS\315\206H\316%\210c\210`\317\223\210)\203``X\203cu\210\317\211q\207" [erc-input-marker buffer-undo-list erc-prompt bufferp 0 erc-propertize start-open t rear-nonsticky field front-sticky read-only erc-put-text-property font-lock-face erc-prompt-face nil] 21 (#$ . 149330)])
#@33 Read input from the minibuffer.
(defalias 'erc-input-message #[0 "\303\304\305\306\n!#c\210\307 )\207" [minibuffer-local-map minibuffer-allow-text-properties last-command-event t read-from-minibuffer "Message: " string erc-send-current-line] 6 (#$ . 150207) nil])
#@44 History list for interactive action input.
(defvar erc-action-history-list nil (#$ . 150481))
#@55 Interactively input a user action and send it to IRC.
(defalias 'erc-input-action #[0 "\300p!\210\301\302\303\211\211\304%\305\306\"?\205\307\310 \"\207" [erc-set-active-buffer read-from-minibuffer "Action: " nil erc-action-history-list string-match "^\\s-*$" erc-send-action erc-default-target] 6 (#$ . 150581) ""])
#@115 Join CHANNEL.

If `point' is at the beginning of a channel name, use that as default.

(fn CHANNEL &optional KEY)
(defalias 'erc-join-channel #[513 "\300G\301Y\205\n\"\207" [erc-cmd-JOIN 1] 6 (#$ . 150909) (byte-code "\304\305!\203\f\306\307!\202
\310\311 \205\312!q\210	\313\314\315\211\211\211&\266\202\n\204-\2051\316\317\315\"D\207" [erc-server-process erc-channel-list current-prefix-arg erc-prompt-for-channel-key looking-at "\\([&#+!][^ \n]+\\)" match-string 1 "" erc-server-buffer-live-p process-buffer completing-read "Join channel: " nil read-from-minibuffer "Channel key (RET for none): "] 10)])
#@69 Part from the current channel and prompt for a REASON.

(fn REASON)
(defalias 'erc-part-from-channel #[257 "\300\301 \302Q!\207" [erc-cmd-PART erc-default-target " "] 5 (#$ . 151538) (byte-code "\301\300!\203;\203\302\230\204\202\303\304\305 \306Q!C\207" [reason boundp "" read-from-minibuffer "Reason for leaving " erc-default-target ": "] 4)])
#@57 Prompt for a TOPIC for the current channel.

(fn TOPIC)
(defalias 'erc-set-topic #[257 "\300\301\"\302\303 \304@Q!\207" [split-string "" erc-cmd-TOPIC erc-default-target " "] 6 (#$ . 151902) (byte-code "\301\302\303 \304Q\205!\305\306\"\307\310A\203\311!\202\"\312B\262\"C\207" [erc-channel-topic read-from-minibuffer "Set topic of " erc-default-target ": " split-string "" apply concat butlast 0] 7)])
#@122 Set a LIMIT for the current channel.  Remove limit if nil.
Prompt for one if called interactively.

(fn &optional LIMIT)
(defalias 'erc-set-channel-limit #[256 "\300 \301\203G\302Y\203\303\304#\202\303\305\"!\207" [erc-default-target erc-server-send 1 format "MODE %s +l %s" "MODE %s -l"] 7 (#$ . 152327) (byte-code "\300\301\302\303 \"!C\207" [read-from-minibuffer format "Limit for %s (RET to remove limit): " erc-default-target] 4)])
#@116 Set a KEY for the current channel.  Remove key if nil.
Prompt for one if called interactively.

(fn &optional KEY)
(defalias 'erc-set-channel-key #[256 "\300 \301\203G\302Y\203\303\304#\202\303\305\"!\207" [erc-default-target erc-server-send 1 format "MODE %s +k %s" "MODE %s -k"] 7 (#$ . 152782) (byte-code "\300\301\302\303 \"!C\207" [read-from-minibuffer format "Key for %s (RET to remove key): " erc-default-target] 4)])
#@138 Disconnect from current server after prompting for REASON.
`erc-quit-reason' works with this just like with `erc-cmd-QUIT'.

(fn REASON)
(defalias 'erc-quit-server #[257 "\300!\207" [erc-cmd-QUIT] 3 (#$ . 153225) (byte-code "\302\303\304\206	\"!C\207" [erc-server-announced-name erc-session-server read-from-minibuffer format "Reason for quitting %s: "] 4)])
#@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 #[0 "\301y\210\302`\303\"\203
b\210`\207" [erc-input-marker 0 get-text-property erc-prompt] 3 (#$ . 153595) nil])
#@66 Kill current input line using `erc-bol' followed by `kill-line'.
(defalias 'erc-kill-input #[0 "\301 \205`dU?\205\302\300!\203\303\304 \207" [erc-input-ring-index erc-bol boundp nil kill-line] 2 (#$ . 153864) nil])
(defalias 'erc-complete-word-at-point #[0 "\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\312DD\313\314\315\316\317&\207" [defalias erc-complete-word completion-at-point nil make-obsolete "24.1" custom-declare-variable erc-default-server-hook funcall function #[0 "\300\207" [(erc-debug-missing-hooks erc-default-server-handler)] 1] "Default for server messages which aren't covered by `erc-server-hooks'." :group erc-server-hooks :type hook] 8)
#@112 Default server handler.

Displays PROC and PARSED appropriately using `erc-display-message'.

(fn PROC PARSED)
(defalias 'erc-default-server-handler #[514 "\300\301\302\303\304C\305\306\307\310\311\312!\313\"\314\315%	\"\210\211\242\262\316#$\207" [erc-display-message notice mapconcat identity nil mapc make-byte-code 257 "\211;\205
\300\301\300\242C\"\240\207" vconcat vector [append] 5 "\n\n(fn X)" " "] 16 (#$ . 154641)])
#@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" "..."]) (#$ . 155082))
#@202 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'.

(fn PROC PARSED)
(defalias 'erc-debug-missing-hooks #[514 "C\244\210\301\207" [erc-server-vectors nil] 4 (#$ . 155291)])
#@169 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.

(fn TARGET SERVER)
(defalias 'erc-query #[514 "\211\203\304!\203\211q\204\305\306!\210\307	\310 \n\311\211C	&	\211\204+\305\312!\210\313 \210\211\207" [erc-session-server erc-session-port erc-session-user-full-name 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] 12 (#$ . 155605)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\310\315&\210\300\316\302\303\317DD\320\306\307\310\315&\210\300\321\302\303\322DD\323\306\324\310\315&\210\300\325\302\303\326DD\327\306\330\310\315&\207" [custom-declare-variable erc-auto-query funcall function #[0 "\300\207" [window-noselect] 1] "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 #[0 "\300\207" [t] 1] "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 #[0 "\300\207" [t] 1] "If non-nil, format text from others in a query buffer like in a channel,\notherwise format like a private message." erc-minibuffer-notice #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [nil] 1] "If non-nil, print a message in the minibuffer if we ignored something." erc-ignore] 8)
#@309 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".

(fn REASON NICK LOGIN HOST)
(defalias 'erc-wash-quit-reason #[1028 "\300!\262\300!\262\300!\262\301\302\303\304\260\"\203*\305\306\"\307\305\310\"Q\206?\301\311\303\312\260\"\203>\305\306\"\206?\207" [regexp-quote string-match "^\\(Read error\\) to " "\\[" "\\]: \\(.+\\)$" match-string 1 ": " 2 "^\\(Ping timeout\\) for " "\\]$"] 10 (#$ . 158026)])
#@107 If NICK is unavailable, tell the user the REASON.

See also `erc-display-error-notice'.

(fn NICK REASON)
(defalias 'erc-nickname-in-use #[514 "\203	\n:\203\nGT\202\306=\203\307\310\311\312#\"\207	TA@\313\314\315 \316!\2054r\211q\210\f)\262\"A\317\203AA\204e\320\203Z\203Z\321!GZ\202_\322GZ\"P\262\323!\210\307\310\311\324$\"\207" [erc-try-new-nick-p erc-nick-change-attempt-count erc-nick erc-default-nicks erc-server-parameters erc-bad-nick 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" erc-server-connected erc-nick-uniquifier] 11 (#$ . 158686)])
(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)
#@71 Display the message sent by the server as a notice.

(fn PROC PARSED)
(defalias 'erc-display-server-message #[514 "\301\302\303\304!>\204\305\306\307D\"\210\310H$\207" [cl-struct-erc-response-tags erc-display-message notice active type-of signal wrong-type-argument erc-response 5] 10 (#$ . 159817)])
#@63 Put this on `erc-server-PRIVMSG-functions'.

(fn PROC PARSED)
(defalias 'erc-auto-query #[514 "\205\215\304\305!	>\204\306\307\310D\"\210\311H!@\305!	>\204(\306\307\310D\"\210\312H@\305!	>\204;\306\307\310D\"\210\313H\n\204F\202Q\314!\203P\202Q\315\305!	>\204c\306\307\310D\"\210\311H!\204\212\n\204u\316 \230\203\212\317\"\204\212\320!\204\212\321!\210)\322\266\204\207" [erc-auto-query cl-struct-erc-response-tags erc-query-on-unjoined-chan-privmsg erc-query-display erc-parse-user type-of signal wrong-type-argument erc-response 2 4 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] 11 (#$ . 160132)])
#@58 Check if MESSAGE is a CTCP message or not.

(fn MESSAGE)
(defalias 'erc-is-message-ctcp-p #[257 "\300\301\"\207" [string-match "^\\([^]*\\)?$"] 4 (#$ . 160863)])
#@58 Check if MESSAGE is a CTCP message or not.

(fn MESSAGE)
(defalias 'erc-is-message-ctcp-and-not-action-p #[257 "\300!\205\301\302\"?\207" [erc-is-message-ctcp-p string-match "^ACTION.*$"] 4 (#$ . 161035)])
#@70 Format a PRIVMSG in an insertable fashion.

(fn NICK MSG PRIVP MSGP)
(defalias 'erc-format-privmessage #[1028 "\211\203\203\f\300\202\301\202\302\203!\203\300\202\"\303\202\"\302\304\305	%\2033\306\2024\307\203<\310\202=\311\312\313G\314%\210\312GGG\\\314%\210\312G\nG\\G\314%\210\207" ["*" "<" "-" ">" 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 font-lock-face] 15 (#$ . 161253)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\303&\207" [custom-declare-variable erc-format-nick-function funcall function #[0 "\300\207" [erc-format-nick] 1] "Function to format a nickname for message display." :group erc-display :type] 8)
#@101 Return the nickname of USER.
See also `erc-format-nick-function'.

(fn &optional USER CHANNEL-DATA)
(defalias 'erc-format-nick #[512 "\205\301H>\204\302\303\304D\"\210\305H\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1] 6 (#$ . 162011)])
#@13 

(fn USER)
(defalias 'erc-get-user-mode-prefix #[257 "\211\205\"\211\203=\302!\203=\303\304!\"\211\2052\211A\2052\211A\305H	>\204.\306\307\310AD\"\210\211A\311H\262\203=\312\313\314\315#\207\211\203v\302!\203v\303\304!\"\211\205k\211A\205k\211A\305H	>\204g\306\307\310AD\"\210\211A\316H\262\203v\312\317\314\320#\207\211\203\257\302!\203\257\303\304!\"\211\205\244\211A\205\244\211A\305H	>\204\240\306\307\310AD\"\210\211A\321H\262\203\257\312\322\314\323#\207\211\203\350\302!\203\350\303\304!\"\211\205\335\211A\205\335\211A\305H	>\204\331\306\307\310AD\"\210\211A\324H\262\203\350\312\325\314\326#\207\211\203!\302!\203!\303\304!\"\211\205\211A\205\211A\305H	>\204\306\307\310AD\"\210\211A\327H\262\203!\312\330\314\331#\207\332\207" [erc-channel-users cl-struct-erc-channel-user-tags hash-table-p gethash erc-downcase 0 signal wrong-type-argument erc-channel-user 5 erc-propertize "~" help-echo "owner" 4 "&" "admin" 3 "@" "operator" 2 "%" "half-op" 1 "+" "voice" ""] 6 (#$ . 162302)])
#@320 Format the nickname of USER showing if USER has a voice, is an
operator, half-op, admin or owner.  Owners have "~", admins have
"&", 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'.

(fn &optional USER CHANNEL-DATA)
(defalias 'erc-format-@nick #[512 "\205!\301H>\204\302\303\304D\"\210\305H\306\307!\310\311#P\262\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1 erc-propertize erc-get-user-mode-prefix font-lock-face erc-nick-prefix-face] 7 (#$ . 163359)])
#@69 Return the beginning of this user's message, correctly propertized.
(defalias 'erc-format-my-nick #[0 "\203\"\301\302\303 \304!\305\306\307#\305\306\310#\305\306\311#\305\306\307#R\207\302\305\306\307#\207" [erc-show-my-nick "<" "> " erc-current-nick erc-get-user-mode-prefix erc-propertize font-lock-face erc-default-face erc-my-nick-prefix-face erc-my-nick-face] 11 (#$ . 163972)])
#@299 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.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-default-buffer #[1028 "\300\301$\210\302\207" [erc-display-message nil t] 9 (#$ . 164372)])
#@234 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.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-target-buffer #[1028 "\205
\300\301$\210\302\207" [erc-display-message nil t] 9 (#$ . 164803)])
#@200 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.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-minibuffer #[1028 "\300\301\302P\"\210\303\207" [message "%s" "NOTICE: " t] 8 (#$ . 165175)])
#@203 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.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-server-buffer #[1028 "\300\301\211$\210\302\207" [erc-display-message nil t] 9 (#$ . 165507)])
#@294 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.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-active-non-server-buffer #[1028 "\300 \301 =?\205\302\303\304$\210\305\207" [erc-server-buffer erc-active-buffer erc-display-message nil active t] 9 (#$ . 165844)])
#@203 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.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-active-buffer #[1028 "\300\301\302$\210\303\207" [erc-display-message nil active t] 9 (#$ . 166344)])
#@377 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'.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-user-buffers #[1028 "\301\"\211\205\302\303$\210\304\207" [erc-server-process erc-buffer-list-with-nick erc-display-message nil t] 10 (#$ . 166688)])
#@408 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'.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-user-and-target-buffers #[1028 "\301\">\204B\262\211\205\302\303$\210\304\207" [erc-server-process erc-buffer-list-with-nick erc-display-message nil t] 10 (#$ . 167259)])
#@372 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'.

(fn S PARSED BUFFER SENDER)
(defalias 'erc-echo-notice-in-first-user-buffer #[1028 "\301\"\211\205\302\303@$\210\304\207" [erc-server-process erc-buffer-list-with-nick erc-display-message nil t] 10 (#$ . 167889)])
#@53 Record ban entries for a channel.

(fn PROC PARSED)
(defalias 'erc-banlist-store #[514 "\302!>\204\303\304\305D\"\210\211\306HA\211@A\211@A\211@A\307
\"r\211q\210B	\235\204:B	B)\266\310\207" [cl-struct-erc-response-tags erc-channel-banlist type-of signal wrong-type-argument erc-response 4 erc-get-buffer nil] 15 (#$ . 168460)])
#@61 Record that we have received the banlist.

(fn PROC PARSED)
(defalias 'erc-banlist-finished #[514 "\301!>\204\302\303\304D\"\210\211\305HA@\306\"r\211q\210\307\310\311\312#\210)\266\312\207" [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 4 erc-get-buffer put erc-channel-banlist received-from-server t] 8 (#$ . 168816)])
#@86 Check MODE commands for bans and update the banlist appropriately.

(fn PROC PARSED)
(defalias 'erc-banlist-update #[514 "\302!>\204\303\304\305D\"\210\211\306H@\302!>\204\"\303\304\305D\"\210\307H\302!>\2044\303\304\305D\"\210\310H\311\"\211\203\210r\211q\210\301\312N\203\207\313\314\"\203\207\313\315\"\203l\316\317\320\321\322\323!\324\"\325\326%	\"\202\207\313\327\"\203\207\330\317\320\331\322\323!\332\"\333\334%\335!A\"\210)\266\336\207" [cl-struct-erc-response-tags erc-channel-banlist type-of signal wrong-type-argument erc-response 4 5 2 erc-get-buffer received-from-server string-match "^\\([+-]\\)b" "^-" erc-delete-if make-byte-code 257 "\211A\226\301\302\303\300!A\"\235\207" vconcat vector [mapcar upcase split-string] 6 "\n\n(fn Y)" "^\\+" mapc "\300B	\235?\205\300B	B\211\207" [erc-channel-banlist] 3 "\n\n(fn MASK)" split-string nil] 13 (#$ . 169181)])
#@52 Group LIST into sublists of length N.

(fn LIST N)
(defalias 'erc-group-list #[514 "\204\300\207\211\233\204C\207\301\302#\303\233\"B\207" [nil erc-subseq 0 erc-group-list] 6 (#$ . 170098)])
#@46 Handle the logging in process of connection.
(defalias 'erc-handle-login #[0 "?\205\301\302\303\304 \"\210\305 \211\205\306!\262\207" [erc-logged-in t message "Logging in as `%s'... done" erc-current-nick erc-select-startup-file erc-load-script] 3 (#$ . 170307)])
#@96 Run just after connection.

Set user modes and run `erc-after-connect' hook.

(fn PROC PARSED)
(defalias 'erc-connection-established #[514 "r\304!q\210?\205N	\206!\305!\n>\204\306\307\310D\"\210\211\311H\305!\n>\2040\306\307\310D\"\210\312H@\304!\313\314\315 \210\316\"\210\317!\210\320\321#\266\203)\207" [erc-server-connected erc-server-announced-name cl-struct-erc-response-tags erc-server-reconnect-count process-buffer type-of signal wrong-type-argument erc-response 2 4 t 0 erc-update-mode-line erc-set-initial-user-mode erc-server-setup-periodical-ping run-hook-with-args erc-after-connect] 9 (#$ . 170585)])
#@117 If `erc-user-mode' is non-nil for NICK, set the user modes.
The server buffer is given by BUFFER.

(fn NICK BUFFER)
(defalias 'erc-set-initial-user-mode #[514 "r\211q\210\205.\302!\203 \202\211;\205,	\203%\303\304\305#!\210\306\304\307#!\262)\207" [erc-user-mode erc-log-p functionp erc-log-aux format "changing mode for %s to %s" erc-server-send "MODE %s %s"] 8 (#$ . 171228)])
#@89 Display STRING as an error notice.

See also `erc-display-message'.

(fn PARSED STRING)
(defalias 'erc-display-error-notice #[514 "\300\301\302$\207" [erc-display-message (notice error) active] 7 (#$ . 171629)])
#@57 Process a CTCP query.

(fn PROC PARSED NICK LOGIN HOST)
(defalias 'erc-process-ctcp-query #[1285 "\302\303\304\305!>\204\306\307\310	D\"\210\311H\312\"\"\211G\313V\203.\314\315\316D\317$\2022\211G\320U\203E\314\315\316D\321\322	&\2022\211\2052\304@!@\226\323\324\325Q!\211\203\326!\203\327\230\203\220\330					\305!>\204\202\306\307\310D\"\210
\313H@\n@&\210\202)	\203\365\331\305!>\204\246\306\307\310\nD\"\210\313H@!\203\310\314\316\332\333\322\334\f\335
\336@&\f\210\202\365\314\316\332\337\322\334\f\335
\336@\340\305!>\204\355\306\307\310D\"\210\313H@&\210\330	\305
!>\204\306\307\310D\"\210\f\313H@	@&\210\202)\314\315\316D\n\341$\210\266\211A\262\202E\207" [cl-struct-erc-response-tags erc-paranoid delete "" split-string type-of signal wrong-type-argument erc-response 5 "" 4 erc-display-message notice error ctcp-too-many 0 ctcp-empty 110 intern-soft "erc-ctcp-query-" "-hook" boundp "ACTION" run-hook-with-args-until-success erc-current-nick-p active ctcp-request 117 104 114 ctcp-request-to 116 undefined-ctcp] 26 (#$ . 171849)])
(defvar erc-ctcp-query-ACTION-hook '(erc-ctcp-query-ACTION))
#@74 Respond to a CTCP ACTION query.

(fn PROC PARSED NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-ACTION #[1799 "\300\301\"\2056\302\303\"\304	\"\206 \304	\"\206 \305!\306\307\310\311\f\312
\313\314
&\f\266\202\207" [string-match "^ACTION\\s-\\(.*\\)\\s-*$" match-string 1 erc-get-buffer process-buffer erc-display-message action ACTION 110 117 104 97] 22 (#$ . 173063)])
(defvar erc-ctcp-query-CLIENTINFO-hook '(erc-ctcp-query-CLIENTINFO))
#@71 Respond to a CTCP CLIENTINFO query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-CLIENTINFO #[1542 "\301\302\"\203\303\304\305\306\"!!\204\307\310\311\"\"\210\210\312\207" [erc-disable-ctcp-replies string-match "^CLIENTINFO\\(\\s-*\\|\\s-+.*\\)$" erc-client-info erc-trim-string match-string 1 erc-send-ctcp-notice format "CLIENTINFO %s" nil] 12 (#$ . 173531)])
(defvar erc-ctcp-query-ECHO-hook '(erc-ctcp-query-ECHO))
#@65 Respond to a CTCP ECHO query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-ECHO #[1542 "\301\302\"\203\303\304\"\204\305\306\307\"\"\210\210\310\207" [erc-disable-ctcp-replies string-match "^ECHO\\s-+\\(.*\\)\\s-*$" match-string 1 erc-send-ctcp-notice format "ECHO %s" nil] 12 (#$ . 173981)])
(defvar erc-ctcp-query-FINGER-hook '(erc-ctcp-query-FINGER))
#@67 Respond to a CTCP FINGER query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-FINGER #[1542 "\2042	\203\303\304\305 \"\202\303\306\307 \310 \311 $\312\n\313\"\211\314V\203+\315\316!Q\262\317\"\266\313\207" [erc-disable-ctcp-replies erc-anonymous-login erc-server-last-sent-time format "FINGER I'm %s." erc-current-nick "FINGER %s (%s@%s)." user-full-name user-login-name system-name erc-time-diff nil 0 " Idle for " erc-sec-to-time erc-send-ctcp-notice] 12 (#$ . 174366)])
(defvar erc-ctcp-query-PING-hook '(erc-ctcp-query-PING))
#@65 Respond to a CTCP PING query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-PING #[1542 "\301\302\"\203\204\303\304\"\305\306\307\"\"\266\310\207" [erc-disable-ctcp-replies string-match "^PING\\s-+\\(.*\\)" match-string 1 erc-send-ctcp-notice format "PING %s" nil] 12 (#$ . 174930)])
(defvar erc-ctcp-query-TIME-hook '(erc-ctcp-query-TIME))
#@65 Respond to a CTCP TIME query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-TIME #[1542 "\204
\301\302\303\304 \"\"\210\305\207" [erc-disable-ctcp-replies erc-send-ctcp-notice format "TIME %s" current-time-string nil] 11 (#$ . 175302)])
(defvar erc-ctcp-query-USERINFO-hook '(erc-ctcp-query-USERINFO))
#@69 Respond to a CTCP USERINFO query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-USERINFO #[1542 "\204\f\302\303\304	\"\"\210\305\207" [erc-disable-ctcp-replies erc-user-information erc-send-ctcp-notice format "USERINFO %s" nil] 11 (#$ . 175627)])
(defvar erc-ctcp-query-VERSION-hook '(erc-ctcp-query-VERSION))
#@68 Respond to a CTCP VERSION query.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-query-VERSION #[1542 "\204
\303\304\305	\n#\"\210\306\207" [erc-disable-ctcp-replies emacs-version erc-official-location erc-send-ctcp-notice format "VERSION ERC - an IRC client for Emacs %s (%s)" nil] 12 (#$ . 175960)])
#@68 Process MSG as a CTCP reply.

(fn PROC PARSED NICK LOGIN HOST MSG)
(defalias 'erc-process-ctcp-reply #[1542 "\301!@\302\303\304Q!\305!\2037\306	\307
!>\204+\310\311\312D\"\210\f\313H@	&\202K\314\315\316\317\320\321\f\322
\323&\f\207" [cl-struct-erc-response-tags split-string intern "erc-ctcp-reply-" "-hook" boundp run-hook-with-args-until-success type-of signal wrong-type-argument erc-response 4 erc-display-message notice active CTCP-UNKNOWN 110 117 104 109] 21 (#$ . 176281)])
(defvar erc-ctcp-reply-ECHO-hook '(erc-ctcp-reply-ECHO))
#@61 Handle a CTCP ECHO reply.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-reply-ECHO #[1542 "\300\301\"\203\302\303\"\304\305\306\307\310\311\312&\266\305\207" [string-match "^ECHO\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil (notice action) active CTCP-ECHO 110 109] 16 (#$ . 176855)])
(defvar erc-ctcp-reply-CLIENTINFO-hook '(erc-ctcp-reply-CLIENTINFO))
#@67 Handle a CTCP CLIENTINFO reply.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-reply-CLIENTINFO #[1542 "\300\301\"\203\302\303\"\304\305\306\307\310\311\312&\266\305\207" [string-match "^CLIENTINFO\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-CLIENTINFO 110 109] 16 (#$ . 177247)])
(defvar erc-ctcp-reply-FINGER-hook '(erc-ctcp-reply-FINGER))
#@63 Handle a CTCP FINGER reply.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-reply-FINGER #[1542 "\300\301\"\203\302\303\"\304\305\306\307\310\311\312&\266\305\207" [string-match "^FINGER\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-FINGER 110 109] 16 (#$ . 177646)])
(defvar erc-ctcp-reply-PING-hook '(erc-ctcp-reply-PING))
#@61 Handle a CTCP PING reply.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-reply-PING #[1542 "\300\301\"\205:\302\303\"\3041*\305\306!\307\"\310\307\311\312\313\314\f\315\316	!&\2620\2028\210\310\307\317\312\320\314\315&\262\207" [string-match "^PING\\s-+\\([0-9.]+\\)" match-string 1 (range-error) erc-time-diff string-to-number nil erc-display-message notice active CTCP-PING 110 116 erc-sec-to-time error bad-ping-response] 18 (#$ . 178025)])
(defvar erc-ctcp-reply-TIME-hook '(erc-ctcp-reply-TIME))
#@61 Handle a CTCP TIME reply.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-reply-TIME #[1542 "\300\301\"\203\302\303\"\304\305\306\307\310\311\312&\266\305\207" [string-match "^TIME\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-TIME 110 109] 16 (#$ . 178555)])
(defvar erc-ctcp-reply-VERSION-hook '(erc-ctcp-reply-VERSION))
#@64 Handle a CTCP VERSION reply.

(fn PROC NICK LOGIN HOST TO MSG)
(defalias 'erc-ctcp-reply-VERSION #[1542 "\300\301\"\203\302\303\"\304\305\306\307\310\311\312&\266\305\207" [string-match "^VERSION\\s-+\\(.*\\)\\s-*$" match-string 1 erc-display-message nil notice active CTCP-VERSION 110 109] 16 (#$ . 178932)])
#@155 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.

(fn PROC AWAY-P)
(defalias 'erc-process-away #[514 "\305!\211\203Wr\211q\210\203'	\203\306\307\310#!\210\311\203$\202%\n!\210\2031\312 \202V\313r\314 q\210\f\203T\315\316 \203Q\307\317\320\321\313\"!\"\202R\322\"\210)\210)\323 \207" [erc-away-nickname erc-log-p erc-nick erc-away erc-public-away-p process-buffer erc-log-aux format "erc-process-away: away-nick: %s, away-p: %s" 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 "is back" erc-update-mode-line] 12 (#$ . 179259)])
#@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 #[0 "\301\302\303\"\211\207" [erc-channel-new-member-names make-hash-table :test equal] 3 (#$ . 179993)])
#@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 #[0 "\302\303\"\210\304\211\207" [erc-channel-users erc-channel-new-member-names maphash #[514 "\301\"?\205\302!\207" [erc-channel-new-member-names gethash erc-remove-channel-user] 5 "\n\n(fn NICK USER)"] nil] 3 (#$ . 180342)])
#@121 Return an alist of valid prefix character types and their representations.
Example: (operator) o => @, (voiced) v => +.
(defalias 'erc-parse-prefix #[0 "\301\302\303 \304!\205r\211q\210)\262\"A\206\305\306\211\307\310\"\205N\311\312\"\262\311\313\"\262GG^\314\306W\203L\234\234BB\262T\262\2024\266\202\207" [erc-server-parameters assoc "PREFIX" erc-server-buffer buffer-live-p "(qaohv)~&@%+" nil string-match "^(\\([^)]+\\))\\(.+\\)$" match-string 1 2 0] 9 (#$ . 180841)])
#@182 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.

(fn NAMES-STRING)
(defalias 'erc-channel-receive-names #[257 "\302 \303\236A\304\236A\305\236A\306\236A\307\236A\310\311\312	!\"\313\211\211\211\211\211\211\211\203\326\211@\314\315H\262\n\316\262	\316\262\316\262\316\262\316\262\317\"\203\247G\320U\203X\313\262\202\247\321\320\"\262\n=\203k\322\262\202\247
=\203x\322\262\202\247=\203\205\322\262	\202\247\f=\203\222\322\262\202\247=\203\237\322\262\202\247\323\324\"\210\322\262\203\315	\204\262\325 \210\326\327!\314	#\210\330\n\211\314\f\f&\210\266A\266\202\202'\210)\331\300!\207" [erc-channel-members-changed-hook erc-channel-new-member-names erc-parse-prefix 118 111 104 97 113 delete "" split-string nil t 0 off rassq 1 substring on message "Unknown prefix char `%S'" erc-channel-begin-receiving-names puthash erc-downcase erc-update-current-channel-member run-hooks] 27 (#$ . 181348)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erc-channel-members-changed-hook funcall function #[0 "\300\207" [nil] 1] "This hook is called every time the variable `channel-members' changes.\nThe buffer where the change happened is current while this hook is called." :group erc-hooks :type hook] 8)
#@155 Update the stored user information for the user with nickname NICK.

See also: `erc-update-user'.

(fn NICK &optional NEW-NICK HOST LOGIN FULL-NAME INFO)
(defalias 'erc-update-user-nick #[1537 "\301\302 \303!\205r\211q\210\304\305	!\")\262&\207" [erc-server-users erc-update-user erc-server-buffer buffer-live-p gethash erc-downcase] 13 (#$ . 182778)])
#@425 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.

(fn USER &optional NEW-NICK HOST LOGIN FULL-NAME INFO)
(defalias 'erc-update-user #[1537 "\301\203O\203/\302H>\204\303\304\305	D\"\210\306H\232\204/\307\262\310\"\210\203j\302H>\204D\303\304\305	D\"\210\311H\232\204j\307\262\302H>\204a\303\304\305	D\"\210\211\311I\266\203\245\302H>\204\303\304\305	D\"\210\312H\232\204\245\307\262\302H>\204\234\303\304\305	D\"\210\211\312I\266\203\337\302H>\204\272\303\304\305	D\"\210\313H\232\204\337\307\262\302H>\204\327\303\304\305	D\"\210\211\313I\266\203\302H>\204\364\303\304\305	D\"\210\314H\232\204\307\262\302H>\204\303\304\305	D\"\210\211\314I\266\211\203O\302H>\204.\303\304\305	D\"\210\315H\211\203N\211@\316!\203Gr\211q\210\317\320!\210)A\266\202\2022\210\211\207" [cl-struct-erc-server-user-tags nil 0 signal wrong-type-argument erc-server-user 1 t erc-change-user-nickname 2 3 4 5 6 buffer-live-p run-hooks erc-channel-members-changed-hook] 11 (#$ . 183155)])
#@880 Update 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 VOICE HALFOP OP ADMIN or OWNER
are non-nil, they must be equal to either `on' or `off', in which
case the 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-changed-hook' is run, and t is returned.

See also: `erc-update-user' and `erc-update-channel-member'.

(fn NICK NEW-NICK &optional ADD VOICE HALFOP OP ADMIN OWNER HOST LOGIN FULL-NAME INFO UPDATE-MESSAGE-TIME)
(defalias 'erc-update-current-channel-member #[3330 "\305\211\306\307!\"\211A\203@\202*\310 \311!\205(r\211q\210\306\307!	\")\262\203\306\n\203:\312\313\314#!\210\203\200\315H>\204N\316\317\320D\"\210\321H=\204\200\322\262\315H>\204i\316\317\320D\"\210\211\321\323\267\202{\322\202}\305\202}I\266
\203\306\315H>\204\224\316\317\320D\"\210\324H=\204\306\322\262\315H>\204\257\316\317\320D\"\210\211\324\325\267\202\301\322\202\303\305\202\303I\266\f\203\f\315H>\204\332\316\317\320D\"\210\326H
=\204\f\322\262\315H>\204\365\316\317\320D\"\210\211\326\327\267\202\322\202	\305\202	I\266\203R\315H>\204 \316\317\320D\"\210\330H\f=\204R\322\262\315H>\204;\316\317\320D\"\210\211\330\331\267\202M\322\202O\305\202OI\266\n\203\230\315H>\204f\316\317\320D\"\210\332H=\204\230\322\262\315H>\204\201\316\317\320D\"\210\211\332
\333\267\202\223\322\202\225\305\202\225
I\266\203\263\315H>\204\253\316\317\320D\"\210\211\334\335 I\266\336\f\f\f\f&\262\202\232\203\232\211\204\373\337\340\f\f\f\fpC&\262\310 \311!\203\367r\211q\210\341\307!	#\210)\210\202%\211\315H\f>\204\n\316\317\340D\"\210\211\211\334p\315H\f>\204\316\317\340D\"\210\334HBI\266\342\343\344\267\2026\322\2028\305\2028\345\346\267\202H\322\202J\305\202J\347\350\267\202Z\322\202\\\305\202\\\351\352\267\202l\322\202n\305\202n\353\354\267\202~\322\202\200\305\202\200\355\205\210\335 &\f\262\341\307!B#\210\322\262\203\246\204\246\356\357!\210\206\260\206\260\207" [erc-channel-users erc-server-users erc-log-p cl-struct-erc-channel-user-tags cl-struct-erc-server-user-tags nil gethash erc-downcase erc-server-buffer buffer-live-p erc-log-aux format "update-member: user = %S, cuser = %S" 0 signal wrong-type-argument erc-channel-user 1 t #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 115 off 119)) 2 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 185 off 189)) 3 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 255 off 259)) 4 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 325 off 329)) 5 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 395 off 399)) 6 current-time erc-update-user vector erc-server-user puthash make-erc-channel-user :voice #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 558 off 562)) :halfop #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 576 off 580)) :op #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 594 off 598)) :admin #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 612 off 616)) :owner #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (on 630 off 634)) :last-message-time run-hooks erc-channel-members-changed-hook] 31 (#$ . 184567)])
#@253 Update user and channel information for the user with
nickname NICK in channel CHANNEL.

See also: `erc-update-current-channel-member'.

(fn CHANNEL NICK NEW-NICK &optional ADD VOICE HALFOP OP ADMIN OWNER HOST LOGIN FULL-NAME INFO UPDATE-MESSAGE-TIME)
(defalias 'erc-update-channel-member #[3587 "
\301\302!\203
\202&\211\206\303!\205\205$\211\205$\304\"\262\305!\205Nr\211q\210\306&
)\207" [erc-server-process nil bufferp processp erc-get-buffer buffer-live-p erc-update-current-channel-member] 31 (#$ . 188622)])
#@103 Remove NICK from current channel membership list.
Runs `erc-channel-members-changed-hook'.

(fn NICK)
(defalias 'erc-remove-current-channel-member #[257 "\301\302!\"\211\205\303!\210\304\305!\207" [erc-channel-users gethash erc-downcase erc-remove-channel-user run-hooks erc-channel-members-changed-hook] 4 (#$ . 189189)])
#@111 Remove NICK from CHANNEL's membership list.

See also `erc-remove-current-channel-member'.

(fn CHANNEL NICK)
(defalias 'erc-remove-channel-member #[514 "\301\302!\203\f\202%\211\206\303!\205\205#\211\205#\304\"\262\305!\2053r\211q\210\306!)\207" [erc-server-process nil bufferp processp erc-get-buffer buffer-live-p erc-remove-current-channel-member] 8 (#$ . 189524)])
#@198 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.

(fn CHANNEL TOPIC &optional MODIFY)
(defalias 'erc-update-channel-topic #[770 "\302\303!\203\f\202%\211\206\304!\205\205#\211\205#\305\"\262\306!\205Ir\211q\210\307\267\202C	P\202E	P\202E\310p!)\207" [erc-server-process erc-channel-topic nil bufferp processp erc-get-buffer buffer-live-p #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (append 53 prepend 60)) erc-update-mode-line-buffer] 9 (#$ . 189921)])
#@74 Set the modes for the TGT provided as MODE-STRING.

(fn TGT MODE-STRING)
(defalias 'erc-set-modes #[514 "\304!\211@\3058\306!\205a\205\307\"\211\205_r\211q\210\310\211\203[@@@A@\305@8\311\312\"\203D\313	#\210\202R\311\314\"\203R\315	#\210\266A\262\202$\316!)\262\207" [erc-server-process erc-channel-modes erc-channel-user-limit erc-channel-key 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] 14 (#$ . 190561)])
#@87 Sort LIST-OF-STRINGS in lexicographic order.

Side-effect free.

(fn LIST-OF-STRINGS)
(defalias 'erc-sort-strings #[257 "\300\301!\302\"\207" [sort copy-sequence string<] 4 (#$ . 191124)])
#@336 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).

(fn MODE-STRING)
(defalias 'erc-parse-modes #[257 "\300\301\"\205\350\302\303\304\305\"\"\304\306\"\307\211\211\211\310\300\311\"\2032\304\305\"B\262\304\306\"\262\202\237\262\203\326@\312\230\203I\310\262\202\316@\313\230\203W\307\262\202\316\300\314@\"\203\204@\203k\315\202l\316\205t@EB\262\203\316A\262\202\316\300\317@\"\203\271@\203\230\315\202\231\316\205\245\205\245@EB\262\211\203\316\203\316A\262\202\316\211\203\307@B\262\202\316@B\262A\262\2026\237\262\237\262\237\262E\266\207\207" [string-match "^\\s-*\\(\\S-+\\)\\(\\s-.*$\\|$\\)" mapcar char-to-string match-string 1 2 nil t "^\\s-*\\(\\S-+\\)\\(\\s-+.*$\\|$\\)" "+" "-" "^[qaovhbQAOVHB]" on off "^[LlKk]"] 11 (#$ . 191321)])
#@206 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.

(fn TGT MODE-STRING &optional NICK HOST LOGIN)
(defalias 'erc-update-modes #[1282 "\302!\211@A@\3038\304	!\203\205\305	\"\211\205\373\211q\210\306\301!\204*\307\203;\310@	\"A\262\202*\203K@	BA\262\202;\311	!\203\370@@@A@\303@8\312\313\"\203r\314
\211\307%\210\202\357\312\315\"\203\210\314
\211\307\211&\210\202\357\312\316\"\203\237\314
\211\307\211\211&\210\202\357\312\317\"\203\267\314
\211\307\211\211\211	&\210\202\357\312\320\"\203\320\314
\211\307\211\211\211\211\n&	\210\202\357\312\321\"\203\341\322
#\210\202\357\312\323\"\203\357\324
#\210A\262\266\202O\325!\262\202\307\207" [erc-server-process erc-channel-modes erc-parse-modes 2 erc-channel-p erc-get-buffer boundp nil delete erc-sort-strings string-match "^[Vv]" erc-update-channel-member "^[hH]" "^[oO]" "^[aA]" "^[qQ]" "^[Ll]" erc-update-channel-limit "^[Kk]" erc-update-channel-key erc-update-mode-line] 23 (#$ . 192435)])
#@57 Update CHANNEL's user limit to N.

(fn CHANNEL ONOFF N)
(defalias 'erc-update-channel-limit #[771 "\302=\203\211;\205U\303\304\"\205U\305\306!\203\2027\211\206)\307!\205)\2055\211\2055\310\"\262\311!\205Sr\211q\210\302=\203O\312!\211\202R\305\211)\266\203\207" [erc-server-process erc-channel-user-limit on string-match "^[0-9]+$" nil bufferp processp erc-get-buffer buffer-live-p string-to-number] 9 (#$ . 193580)])
#@95 Update CHANNEL's key to KEY if ONOFF is `on' or to nil if it's `off'.

(fn CHANNEL ONOFF KEY)
(defalias 'erc-update-channel-key #[771 "\302\303!\203\f\202%\211\206\304!\205\205#\211\205#\305\"\262\306!\205?r\211q\210\307=\203;\211\202>\302\211)\207" [erc-server-process erc-channel-key nil bufferp processp erc-get-buffer buffer-live-p on] 9 (#$ . 194033)])
#@495 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)

(fn TYPE NLH &optional L)
(defalias 'erc-handle-user-status-change #[770 "\203
\301\302\303$!\210\304=\203\305\207\306\207" [erc-log-p erc-log-aux format "user-change: type: %S  nlh: %S  l: %S" nick t nil] 9 (#$ . 194423)])
#@98 Highlight notice message S and return it.
See also variable `erc-notice-highlight-type'.

(fn S)
(defalias 'erc-highlight-notice #[257 "\302\267\202\303\304	G\305\306%\210\207\303\304G\305\306%\210\207\207" [erc-notice-highlight-type erc-notice-prefix #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (prefix 6 all 16)) erc-put-text-property 0 font-lock-face erc-notice-face] 7 (#$ . 195129)])
#@43 Notify the user of MESSAGE.

(fn MESSAGE)
(defalias 'erc-make-notice #[257 "\203	\302\303\"\210\304	P!\207" [erc-minibuffer-notice erc-notice-prefix message "%s" erc-highlight-notice] 4 (#$ . 195571)])
#@50 Highlight error message S and return it.

(fn S)
(defalias 'erc-highlight-error #[257 "\300\301G\302\303%\210\207" [erc-put-text-property 0 font-lock-face erc-error-face] 7 (#$ . 195783)])
#@501 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.

(fn START END PROPERTY VALUE &optional OBJECT)
(defalias 'erc-put-text-property #[1284 "\300%\207" [put-text-property] 11 (#$ . 195981)])
#@83 Return THING if THING is a list, or a list with THING as its element.

(fn THING)
(defalias 'erc-list #[257 "\211<\203\207\211C\207" [] 2 (#$ . 196583)])
#@115 Parse STRING as a user specification (nick!login@host).

Return a list of the three separate tokens.

(fn STRING)
(defalias 'erc-parse-user #[257 "\300\301\"\203\302\303\"\302\304\"\302\305\"E\207\300\306\"\203'\302\303\"\307\302\304\"E\207\211\307\211E\207" [string-match "^\\([^!\n]*\\)!\\([^@\n]*\\)@\\(.*\\)$" match-string 1 2 3 "^\\([^!\n]*\\)!\\(.*\\)$" ""] 6 (#$ . 196746)])
#@104 Return the nick corresponding to a user specification STRING.

See also `erc-parse-user'.

(fn STRING)
(defalias 'erc-extract-nick #[257 "\300!@\207" [erc-parse-user] 3 (#$ . 197145)])
#@258 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.

(fn START END PROPERTIES &optional OBJECT VALUE-LIST)
(defalias 'erc-put-text-properties #[1283 "\211\204\n\300\301\"\262\205(\211\205(\302\211A\262\242\211A\262\242%\210\202\n\207" [mapcar #[257 "\300\207" [t] 2 "\n\n(fn X)"] erc-put-text-property] 11 (#$ . 197338)])
#@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 #[0 "\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 (#$ . 197832)])
#@59 Return the value of `point' at the end of the input line.
(defalias 'erc-end-of-input-line #[0 "d\207" [] 1 (#$ . 198181)])
#@103 Time of last call to `erc-send-current-line'.
If that function has never been called, the value is 0.
(defvar erc-last-input-time 0 (#$ . 198312))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable erc-accidental-paste-threshold-seconds funcall function #[0 "\300\207" [0.2] 1] "Minimum time, in seconds, before sending new lines via IRC.\nIf the value is a number, `erc-send-current-line' signals an error\nif its previous invocation was fewer than this many seconds ago.\nThis is useful so that if you accidentally enter large amounts of text\ninto the ERC buffer, that text is not sent to the IRC server.\n\nIf the value is nil, `erc-send-current-line' always considers any\nsubmitted line to be intentional." :group erc :version "26.1" :type (choice number (other :tag "disabled" nil))] 10)
#@40 Parse current line and send it to IRC.
(defalias 'erc-send-current-line #[0 "\303 \203\304\305	\"\"\203c\214~\210`\306 W\203!\307\310!\210\202\\\311\312 p\313 \2049\314!\2049\307\315!\210\202Y\316p!\210\306 \317 |\210\320\321\322\323\324!\325\"\326$\216\327!\210)\330\331\"\210)\266\211\211)\202l\332\333!\210\334\335\336\337#\207" [erc-accidental-paste-threshold-seconds erc-last-input-time inhibit-read-only current-time time-less-p time-subtract 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 make-byte-code 0 "\303\300!\205-r\300q\210\214~\210db\210\304	!\203\305	!`\306\223\210\n`\306\223\210\307 \310 \210\311!\262*\207" vconcat vector [erc-server-process erc-insert-marker 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 switch-to-buffer "*ERC Accidental Paste Overflow*" lwarn erc :warning "You seem to have accidentally pasted some text!"] 10 (#$ . 199157) nil])
#@53 Return the input of the user in the current buffer.
(defalias 'erc-user-input #[0 "\301\302 \"\207" [erc-input-marker buffer-substring-no-properties erc-end-of-input-line] 3 (#$ . 200327)])
#@55 Regular expression used for matching commands in ERC.
(defvar erc-command-regexp "^/\\([A-Za-z']+\\)\\(\\s-+.*\\|\\s-*\\)$" (#$ . 200524))
#@68 compiler-macro for inlining `erc-input-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-input-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-input-p (and (memq (type-of cl-x) cl-struct-erc-input-tags) t)) nil] 9 (#$ . 200669)])
(put 'erc-input-p 'compiler-macro 'erc-input-p--cmacro)
#@13 

(fn CL-X)
(defalias 'erc-input-p #[257 "\301!>\205	\302\207" [cl-struct-erc-input-tags type-of t] 3 (#$ . 200999)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put erc-input-p side-effect-free error-free put erc-input cl-deftype-satisfies] 5)
#@73 compiler-macro for inlining `erc-input-string'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-input-string--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-input-string (progn (or (erc-input-p cl-x) (signal 'wrong-type-argument (list 'erc-input cl-x))) (aref cl-x 1))) nil] 9 (#$ . 201271)])
(put 'erc-input-string 'compiler-macro 'erc-input-string--cmacro)
#@61 Access slot "string" of `erc-input' struct CL-X.

(fn CL-X)
(defalias 'erc-input-string #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-input-tags type-of signal wrong-type-argument erc-input 1] 5 (#$ . 201670)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-input-string side-effect-free t] 4)
#@74 compiler-macro for inlining `erc-input-insertp'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-input-insertp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-input-insertp (progn (or (erc-input-p cl-x) (signal 'wrong-type-argument (list 'erc-input cl-x))) (aref cl-x 2))) nil] 9 (#$ . 202005)])
(put 'erc-input-insertp 'compiler-macro 'erc-input-insertp--cmacro)
#@62 Access slot "insertp" of `erc-input' struct CL-X.

(fn CL-X)
(defalias 'erc-input-insertp #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-input-tags type-of signal wrong-type-argument erc-input 2] 5 (#$ . 202409)])
(byte-code "\300\301\302\303#\300\207" [function-put erc-input-insertp side-effect-free t] 4)
#@72 compiler-macro for inlining `erc-input-sendp'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'erc-input-sendp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block erc-input-sendp (progn (or (erc-input-p cl-x) (signal 'wrong-type-argument (list 'erc-input cl-x))) (aref cl-x 3))) nil] 9 (#$ . 202747)])
(put 'erc-input-sendp 'compiler-macro 'erc-input-sendp--cmacro)
#@60 Access slot "sendp" of `erc-input' struct CL-X.

(fn CL-X)
(defalias 'erc-input-sendp #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-input-tags type-of signal wrong-type-argument erc-input 3] 5 (#$ . 203141)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put erc-input-sendp side-effect-free t defalias copy-erc-input copy-sequence] 4)
#@98 compiler-macro for inlining `make-erc-input'.

(fn CL-WHOLE &cl-quote &key STRING INSERTP SENDP)
(defalias 'make-erc-input--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312\313\306\306&\207" [plist-member :string :insertp :sendp (:string :insertp :sendp :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:string :insertp :sendp)" cl--defsubst-expand (string insertp sendp) (cl-block make-erc-input (record 'erc-input string insertp sendp))] 14 (#$ . 203521)])
(put 'make-erc-input 'compiler-macro 'make-erc-input--cmacro)
#@78 Constructor for objects of type `erc-input'.

(fn &key STRING INSERTP SENDP)
(defalias 'make-erc-input #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311\312$\207" [plist-member :string :insertp :sendp (:string :insertp :sendp :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:string :insertp :sendp)" record erc-input] 9 (#$ . 204200)])
(byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303&	\207" [function-put make-erc-input side-effect-free t cl-struct-define erc-input nil cl-structure-object record ((cl-tag-slot) (string) (insertp) (sendp)) cl-struct-erc-input-tags] 11)
#@171 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.

(fn INPUT)
(defalias 'erc-send-input #[257 "\203\n\211\306\230\202\307\310\"\203	\203\311\312!\210\313 \210\314\207\211\315\211\314C\316\317\"\210\211\320\321\f\n$\240\210
\211\203K\211@\211\242!\210A\266\202\2029\210\322\242!#>\204^\323\324\321\242D\"\210\211\242\325H\205\260\n\205\260\322\242!#>\204{\323\324\321\242D\"\210\211\242\326H\307\327\"\204\216\307$\"\204\245\330\331\332\333\334\335!\336\"\337\340%\341\327\"\"\210\202\255\342\327P\315\314#\210\315\262+\207" [erc-send-whitespace-lines erc-warn-about-blank-lines erc-send-this erc-insert-this str erc-pre-send-functions "" string-match "\\`[ 	
\f\n]*\\'" message "Blank line - ignoring..." beep nil t run-hook-with-args erc-send-pre-hook record erc-input type-of signal wrong-type-argument 3 1 "\n" mapc make-byte-code 257 "\302\303\304\305\306\307\300!\310\"\311\312%	\203\313!\206C\"\207" vconcat vector [erc-flood-protect mapc make-byte-code 257 "\303\300\242!	>\204\304\305\306\300\242D\"\210\300\242\307H\203\310!\210\311\312P\n?\313#\207" vconcat vector [cl-struct-erc-input-tags erc-flood-protect type-of signal wrong-type-argument erc-input 2 erc-display-msg erc-process-input-line "\n" t] 5 "\n\n(fn LINE)" erc-split-line] 8 "\n\n(fn LINE)" split-string erc-process-input-line cl-struct-erc-input-tags erc-command-regexp] 13 (#$ . 204934)])
#@13 

(fn LINE)
(defalias 'erc-display-command #[257 "\205G`	\204\304\305\211\306 \306 \205\307$\210`c\210\310`\311\307$\210\312c\266\313\n!\2032\314\n!`\305\223\210`\305\223\210\212\214\211`}\210\315\316!\210\315\317!*\262\207" [erc-insert-this erc-hide-prompt erc-server-process erc-insert-marker erc-display-prompt nil erc-command-indicator erc-command-indicator-face erc-put-text-property font-lock-face "\n" processp process-mark run-hooks erc-send-modify-hook erc-send-post-hook] 8 (#$ . 206468)])
#@97 Display LINE as a message of the user to the current target at the
current position.

(fn LINE)
(defalias 'erc-display-msg #[257 "\205:`\303 c\210`c\210\304`\305\306$\266\307c\210\310	!\203%\311	!`\312\223\210\n`\312\223\210\212\214\211`}\210\313\314!\210\313\315!*\262\207" [erc-insert-this erc-server-process erc-insert-marker erc-format-my-nick erc-put-text-property font-lock-face erc-input-face "\n" processp process-mark nil run-hooks erc-send-modify-hook erc-send-post-hook] 8 (#$ . 206986)])
#@84 Return the ERC command symbol for COMMAND if it exists and is bound.

(fn COMMAND)
(defalias 'erc-command-symbol #[257 "\300\301\302\226\"!\303!\205\211\207" [intern-soft format "erc-cmd-%s" fboundp] 5 (#$ . 207499)])
#@191 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.

(fn LINE)
(defalias 'erc-extract-command-from-line #[257 "\301\"\205N\302\303\304\"!\211\205\211K9\205\211K\262\202
\206#\305\203H\211\306N\2038\307\310\303\311\"\"\202I\312\313\314\315\303\311	\"!\316\"\"\202ID\266\204\207" [erc-command-regexp string-match erc-command-symbol match-string 1 erc-cmd-default do-not-parse-args format "%s" 2 delete "" split-string erc-trim-string " "] 11 (#$ . 207728)])
#@181 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.

(fn STRING)
(defalias 'erc-split-multiline-safe #[257 "\300\301\302\211\203?\303\304#\305\"\203%\305#B\262\301\225\262\202:\211G\301V\2037\211B\262\300\262\202:\300\262\266\202\237\207" [nil 0 t string-match "
?\n" substring] 10 (#$ . 208341)])
#@46 Set the current nickname to NICK.

(fn NICK)
(defalias 'erc-set-current-nick #[257 "r\301\302 !\203
\302 \202pq\210\211\211)\207" [erc-server-current-nick buffer-live-p erc-server-buffer] 3 (#$ . 208785)])
#@30 Return the current nickname.
(defalias 'erc-current-nick #[0 "r\301\302 !\203
\302 \202pq\210)\207" [erc-server-current-nick buffer-live-p erc-server-buffer] 2 (#$ . 209001)])
#@60 Return non-nil if NICK is the current nickname.

(fn NICK)
(defalias 'erc-current-nick-p #[257 "\300\301 \"\207" [erc-nick-equal-p erc-current-nick] 4 (#$ . 209187)])
#@164 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'.

(fn NICK1 NICK2)
(defalias 'erc-nick-equal-p #[514 "\300!\300!\230\207" [erc-downcase] 5 (#$ . 209362)])
#@75 Return the current default target (as a character string) or nil if none.
(defalias 'erc-default-target #[0 "@\211\204\n\301\202\211<\203\211A\202\211\207" [erc-default-recipients nil] 2 (#$ . 209621)])
#@56 Add CHANNEL to the default channel list.

(fn CHANNEL)
(defalias 'erc-add-default-channel #[257 "\211\227\211B\211\207" [erc-default-recipients] 4 (#$ . 209838)])
#@78 Delete CHANNEL from the default channel list.

(fn CHANNEL &optional BUFFER)
(defalias 'erc-delete-default-channel #[513 "r\211\203\301!\203\211\202pq\210\302\227\"\211)\207" [erc-default-recipients bufferp delete] 5 (#$ . 210009)])
#@123 Add QUERY'd NICKNAME to the default channel list.

The previous default target of QUERY type gets removed.

(fn NICKNAME)
(defalias 'erc-add-query #[257 "@A\301\227B\211<\203@\301=\203\202B\211\207" [erc-default-recipients QUERY] 7 (#$ . 210259)])
#@45 Delete the topmost target if it is a QUERY.
(defalias 'erc-delete-query #[0 "@A<\203@\301=\203\211\211\202\302\303!\207" [erc-default-recipients QUERY error "Current target is not a QUERY"] 4 (#$ . 210527)])
#@230 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.

(fn SPEC)
(defalias 'erc-ignored-user-p #[257 "\30120\302 \303!\205r\211q\210)\262\211\205-\211@\304\"\203&\305\301\"\210A\266\202\202\2620\207" [erc-ignore-list found erc-server-buffer buffer-live-p string-match throw] 6 (#$ . 210753)])
#@211 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'.

(fn MSG TGT PROC)
(defalias 'erc-ignored-reply-p #[771 "\303!\211\205[\304!\203\202,\211\206\305!\205\205*\211\205*\306\"\262\307!\205Yr\211q\210\310 \307!\205Jr\211q\210\311\312!	\")\262\211\205V\313\n\314!\"\262)\266\203\207" [erc-server-process erc-server-users erc-ignore-reply-list erc-message-target bufferp processp erc-get-buffer buffer-live-p erc-server-buffer gethash erc-downcase erc-list-match erc-user-spec] 12 (#$ . 211232)])
#@114 Return the addressed target in MSG.

The addressed target is the string before the first colon in MSG.

(fn MSG)
(defalias 'erc-message-target #[257 "\300\301\"\205\302\303\"\207" [string-match "^\\([^: \n]*\\):" match-string 1] 4 (#$ . 211902)])
#@61 Create a nick!user@host spec from a user struct.

(fn USER)
(defalias 'erc-user-spec #[257 "\211\301H>\204\302\303\304D\"\210\211\305H\301H>\204!\302\303\304D\"\210\306H\301H>\2043\302\303\304D\"\210\307H\206;\310\311\206A\310\312\206G\310\260\207" [cl-struct-erc-server-user-tags 0 signal wrong-type-argument erc-server-user 1 2 3 "" "!" "@"] 9 (#$ . 212159)])
#@64 Return non-nil if any regexp in LST matches STR.

(fn LST STR)
(defalias 'erc-list-match #[514 "\300\301\302\303\304\305\306!\307\"\310\311%\">\207" [nil mapcar make-byte-code 257 "\301\300\"?\207" vconcat vector [string-match] 4 "\n\n(fn REGEXP)"] 10 (#$ . 212548)])
#@181 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.

(fn &optional ARG)
(defalias 'erc-toggle-ctcp-autoresponse #[256 "\211\247\203\211\301V\203\302\202\211\203\303\202?\304\305\203&\306\202'\307\"\207" [erc-disable-ctcp-replies 0 t nil message "ERC CTCP replies are %s" "OFF" "ON"] 4 (#$ . 212827) "P"])
#@262 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.

(fn &optional ARG)
(defalias 'erc-toggle-flood-control #[256 "\211\247\203\211\301V\203\302\202\211\203\303\202?\304\305\203&\306\202'\307\"\207" [erc-flood-protect 0 t nil message "ERC flood control is %s" "ON" "OFF"] 4 (#$ . 213264) "P"])
#@181 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.

(fn &optional ARG)
(defalias 'erc-invite-only-mode #[256 "\300p!\210\301 \211\203\302!\204\303\304\305p\306$\202)\307\310\203$\311\202%\312QC\313\"\207" [erc-set-active-buffer erc-default-target erc-channel-p erc-display-message nil error no-target erc-load-irc-script-lines "/mode " " -i" " +i" t] 7 (#$ . 213771) "P"])
#@365 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'.

(fn KEY)
(defalias 'erc-get-channel-mode-from-keypress #[257 "\211\300\267\202\301 \207\302 \207\303\304!\207\303\305!\207\306!\207" [#s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("" 6 "
" 9 "l" 12 "k" 16)) keyboard-quit erc-insert-mode-command call-interactively erc-set-channel-limit erc-set-channel-key erc-toggle-channel-mode] 3 (#$ . 214270) "kChannel mode (RET to set more than one): "])
#@141 Toggle channel MODE.

If CHANNEL is non-nil, toggle MODE for that channel, otherwise use
`erc-default-target'.

(fn MODE &optional CHANNEL)
(defalias 'erc-toggle-channel-mode #[513 "\302p!\210\211\206\n\303 \211\203\304!\204\305\306\307\310\311$\202Q\235\211\203(\312\202)\313	\2037\314\315\316$!\210\317\320#\210\321\315\322\203J\323\202K\324	$!\266\202\207" [erc-channel-modes erc-log-p erc-set-active-buffer erc-default-target erc-channel-p erc-display-message nil error active no-target "OFF" "ON" erc-log-aux format "%s: Toggle mode %s %s" message "Toggle channel mode %s %s" erc-server-send "MODE %s %s%s" "-" "+"] 11 (#$ . 215073) "P"])
#@55 Insert the line "/mode <current target> " at `point'.
(defalias 'erc-insert-mode-command #[0 "\300 \211\203\301\302Qc\202\303\304\305p\306$\207" [erc-default-target "/mode " " " erc-display-message nil error no-target] 6 (#$ . 215747) nil])
#@47 Run "/names #channel" in the current channel.
(defalias 'erc-channel-names #[0 "\300p!\210\301 \211\203\302\303PC!\202\304\305\306p\307$\207" [erc-set-active-buffer erc-default-target erc-load-irc-script-lines "/names " erc-display-message nil error no-target] 6 (#$ . 215999) nil])
#@96 Clears the region (START,END) in OBJECT from all colors, etc.

(fn START END &optional OBJECT)
(defalias 'erc-remove-text-properties-region #[770 "\212\301\302\303$*\207" [inhibit-read-only t set-text-properties nil] 8 (#$ . 216293) "r"])
(put 'erc-remove-text-properties-region 'disabled t)
#@207 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.

(fn FILE &optional PATH)
(defalias 'erc-find-file #[513 "\300!\203\211\202(\203#\301@\"\262\300!\204#A\262\202\205(\211\207" [file-readable-p expand-file-name] 6 (#$ . 216596)])
#@63 Select an ERC startup file.
See also `erc-startup-file-list'.
(defalias 'erc-select-startup-file #[0 "\3012%\211\205\"\211@\302!\262\303!\203\304\301\"\210A\266\202\202\2620\207" [erc-startup-file-list found convert-standard-filename file-readable-p throw] 5 (#$ . 216979)])
#@82 Search for FILE in `default-directory', and any in `erc-script-path'.

(fn FILE)
(defalias 'erc-find-script-file #[257 "\301\"\207" [erc-script-path erc-find-file] 4 (#$ . 217273)])
#@230 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.

(fn FILE)
(defalias 'erc-load-script #[257 "\203\n\301\302P!\210\303\304\"\203\305!\207\306!\207" [erc-log-p erc-log-aux "erc-load-script: " string-match "\\.el\\'" load erc-load-irc-script] 4 (#$ . 217464)])
#@417 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.

(fn LINE &optional ARGS)
(defalias 'erc-process-script-line #[513 "\211\204\302\262\303\304\305Q\306 \307\300!\205\310 \302\311\211\312\204$\302\262\204+\302\262\2042\302\262\n\262\313\314\"\203N\315\316\"B\262\315\317\"\262\2026\237\262G\262\313
\"\262\203A\320\f\312#\302\211\320\"\313\321P\"\203\212\315\316\"\262\320\316\225\"\262\202\241\313\321P\"\203\241\315\316\"\262\320\316\225\"\262P\262\302\230\203\261\302\202)\313\322\"\203\275\202)\313\323\"\203\346\324\315\316\"!\325\326\211\250#\210\211X\203\340\211S8\202\341\302\262\202)\313\327\"\203\362\n\202)\313\330\"\203\376	\202)\313\331\"\203\n\202)\313\332\"\203\315\316\"\202)	\203#\333\334\335\"!\210\325\336\"\210\302\262\211\262\313\f\"\262P\262\266\202^\fP\262\207" [erc-session-server erc-log-p "" "\\(\\$\\(\\*\\|[1-9][0-9]*\\)\\)\\([^0-9]\\|$\\)" "\\(%.\\)" "\\|" erc-default-target boundp erc-current-nick nil 0 string-match "^\\s-*\\(\\S-+\\)\\(\\s-+.*$\\|$\\)" match-string 1 2 substring "^" "^\\$\\*$" "^\\$\\([0-9]+\\)$" string-to-number message "n = %S, integerp(n)=%S" "^%[Cc]$" "^%[Ss]$" "^%[Nn]$" "^%\\(.\\)$" erc-log-aux format "BUG in erc-process-script-line: bad escape sequence: %S\n" "BUG IN ERC: esc=%S"] 21 (#$ . 217907)])
#@58 Load an IRC script from FILE.

(fn FILE &optional FORCE)
(defalias 'erc-load-irc-script #[513 "\203\n\301\302P!\210\303\304!r\211q\210\305\306\307\310\311!\312\"\313$\216\314!\210\315 *\262\316\317!\"\207" [erc-log-p erc-log-aux "erc-load-script: " generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents buffer-string erc-load-irc-script-lines erc-split-multiline-safe] 9 (#$ . 219635)])
#@220 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.

(fn LINES &optional FORCE NOEXPAND)
(defalias 'erc-load-irc-script-lines #[769 "p\303\304 \206	\305 \306\300!\205\211\203!\307\310\"\203!\311\312\"\262\313\314G\315\316%\210\205x@\262	\203?\317\320P!\210\307\321\"\204p\203N\202R\322\"\323\"\203o\n\203o\313\314G\315\324%\210\325P\"\210\210A\262\202+\207" [erc-script-args erc-log-p erc-script-echo "" erc-command-indicator erc-prompt boundp string-match "^ " substring 1 erc-put-text-property 0 font-lock-face erc-command-indicator-face erc-log-aux "erc-load-script: CMD: " "^\\s-*$" erc-process-script-line erc-process-input-line erc-input-face erc-display-line] 14 (#$ . 220125)])
#@48 Perform user authentication at the IRC server.
(defalias 'erc-login #[0 "\203\306\307\310\311 \312 	\206\313 \n&!\210\f\203%\314\307\315\f\"!\210\202)\316\317!\210\314\307\320\311 \"!\210\314\307\321
\203=\202?\312 \322\323%!\210\324 \207" [erc-log-p erc-system-name erc-session-server erc-session-user-full-name erc-session-password erc-anonymous-login erc-log-aux format "login: nick: %s, user: %s %s %s :%s" erc-current-nick user-login-name system-name erc-server-send "PASS %s" message "Logging in without password" "NICK %s" "USER %s %s %s :%s" "0" "*" erc-update-mode-line erc-email-userid] 8 (#$ . 220990)])
#@258 Determine the connection and authentication parameters.
Sets the buffer local variables:

- `erc-session-connector'
- `erc-session-server'
- `erc-session-port'
- `erc-session-user-full-name'
- `erc-server-current-nick'

(fn &optional SERVER PORT NICK NAME)
(defalias 'erc-determine-parameters #[1024 "\306!\206\307!\310\311!!\207" [erc-server-connect-function erc-session-connector erc-session-server erc-default-port erc-session-port erc-session-user-full-name erc-compute-server erc-compute-full-name erc-set-current-nick erc-compute-nick] 7 (#$ . 221626)])
#@302 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

(fn &optional SERVER)
(defalias 'erc-compute-server #[256 "\211\206\206\302\303!\206	\207" [erc-server erc-default-server getenv "IRCSERVER"] 3 (#$ . 222205)])
#@304 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

(fn &optional NICK)
(defalias 'erc-compute-nick #[256 "\211\206:\203@\202\206\301\302!\206\303 \207" [erc-nick getenv "IRCNICK" user-login-name] 3 (#$ . 222658)])
#@324 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

(fn &optional FULL-NAME)
(defalias 'erc-compute-full-name #[256 "\211\206\206\302\303!\206	\203\304\207\305 \207" [erc-user-full-name erc-anonymous-login getenv "IRCNAME" "unknown" user-full-name] 3 (#$ . 223124)])
#@250 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

(fn &optional PORT)
(defalias 'erc-compute-port #[256 "\211\206	\206		\207" [erc-port erc-default-port] 2 (#$ . 223653)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\210\300\306\307\"\210\300\310\307\"\207" [defalias erc-string-to-emacs-time string-to-number nil make-obsolete "27.1" erc-emacs-time-to-erc-time float-time erc-current-time] 4)
#@87 Return the absolute value of the difference in seconds between T1 and T2.

(fn T1 T2)
(defalias 'erc-time-diff #[514 "\300\301\302\"!!\207" [abs float-time time-subtract] 7 (#$ . 224241)])
#@36 Check whether T1 > T2.

(fn T1 T2)
(defalias 'erc-time-gt #[514 "\300\"\207" [time-less-p] 5 (#$ . 224438)])
(make-obsolete 'erc-time-gt 'time-less-p "27.1")
#@48 Convert NS to a time string HH:MM.SS.

(fn NS)
(defalias 'erc-sec-to-time #[257 "\300!\262\301\302\303\245\303\246\304\245\304\246$\207" [truncate format "%02d:%02d.%02d" 3600 60] 7 (#$ . 224604)])
#@67 Convert a number of SECONDS into an English phrase.

(fn SECONDS)
(defalias 'erc-seconds-to-string #[257 "\300\211\211\211\211\301\245\262\301\246\262\302\245\262\302\246\262\303\245\262\303\246\262\304V\2034\305	\257\202U\304V\203C\306F\202U\304V\203Q\307E\202U\310D\262\311\312\"\262\313\314\"\203t\315\316\317\320\"\320\211\224%\262\202]\207" [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] 12 (#$ . 224813)])
#@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")) (#$ . 225486))
#@109 Return CTCP CLIENTINFO on command S.
If S is nil or an empty string then return general CLIENTINFO.

(fn S)
(defalias 'erc-client-info #[257 "\211\203\n\211\301\230\203\302\303\304\305\"\"\306P\207\307\226\"\211\203%\310AQ\202(\311P\207" [erc-clientinfo-alist "" apply concat mapcar #[257 "\211@\300P\207" [" "] 3 "\n\n(fn E)"] ": use CLIENTINFO <COMMAND> to get more specific information" assoc " " ": unknown command"] 6 (#$ . 225989)])
#@90 Determine whether DIR is a writable directory.
If it doesn't exist, create it.

(fn DIR)
(defalias 'erc-directory-writable-p #[257 "\300!\204\n\301!\210\302!\206\303\304\"\207" [file-attributes make-directory file-accessible-directory-p error "Cannot access %s"] 4 (#$ . 226445)])
#@93 Kill all buffers of PROCESS.
Does nothing if PROCESS is not a process object.

(fn PROCESS)
(defalias 'erc-kill-query-buffers #[257 "\300!\205\211\301\302\303\304\"\"\266\202\207" [processp #[0 "\300 ?\207" [erc-server-buffer-p] 1] mapcar #[257 "r\211q\210\300p!)\207" [kill-buffer] 3 "\n\n(fn BUFFER)"] erc-buffer-list] 8 (#$ . 226739)])
#@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 #[0 "\304\305!\210\306 \307\310!\"\211A\203@\202,\311 \312!\205*r\211q\210\307\310!	\")\262\313\211\211\211\211\211\211\211\211	\203	\314H\n>\204K\315\316\317\fD\"\210	\320H\262	\314H\n>\204b\315\316\317\fD\"\210	\321H\262		\314H\n>\204y\315\316\317\fD\"\210	\322H\262	\314H\n>\204\220\315\316\317\fD\"\210	\323H\262\n\203\n\314H>\204\254\315\316\324
D\"\210\n\320H\262\n\314H>\204\303\315\316\324
D\"\210\n\321H\262\n\314H>\204\332\315\316\324
D\"\210\n\322H\262\n\314H>\204\361\315\316\324
D\"\210\n\323H\262\n\314H>\204\315\316\324
D\"\210\n\325H\262\326\327!\203\204\330\331\n\f\203)\332\333
\"\202*\334\n\204C	\204C\204C\204C\203~\332\335\f\203N\336\202O\334\f\203X\337\202Y\334\f\203b\340\202c\334\f\203l\341\202m\334\f\203v\342\202w\334\343 &\202\334&\202\206	\207" [erc-channel-users erc-server-users cl-struct-erc-server-user-tags cl-struct-erc-channel-user-tags require thingatpt word-at-point gethash erc-downcase erc-server-buffer buffer-live-p nil 0 signal wrong-type-argument erc-server-user 1 2 3 4 erc-channel-user 5 called-interactively-p interactive message "%s is %s@%s%s%s" format " (%s)" "" " and is +%s%s%s%s%s on %s" "v" "h" "o" "a" "q" erc-default-target] 27 (#$ . 227090) 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 #[0 "\301 \302!\205r\211q\210)\207" [erc-away erc-server-buffer buffer-live-p] 3 (#$ . 228645)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\307\315\316\310\317&	\210\300\320\302\303\321DD\322\306\307\310\323&\210\300\324\302\303\325DD\326\306\307\310\323&\210\300\327\302\303\330DD\331\306\307\310\332&\210\300\333\302\303\334DD\335\306\336\310\323&\210\300\337\302\303\340DD\341\306\307\310\311&\207" [custom-declare-variable erc-mode-line-format funcall function #[0 "\300\207" [#1="%S %a"] 1 #1#] "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 #[0 "\300\207" [#2="%n on %t (%m,%l) %o"] 1 #2#] "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 #[514 "L\210\300\301!\205
\301\302!\207" [fboundp erc-update-mode-line nil] 4 "\n\n(fn SYM VAL)"] (choice (const :tag "Disabled" nil) string) erc-header-line-uses-tabbar-p #[0 "\300\207" [nil] 1] "Use tabbar mode instead of the header line to display the header." boolean erc-header-line-uses-help-echo-p #[0 "\300\207" [t] 1] "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 #[0 "\300\207" [nil] 1] "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 #[0 "\300\207" [t] 1] "Show the channel key in the header line." erc-paranoia erc-mode-line-away-status-format #[0 "\300\207" [#3="(AWAY since %a %b %d %H:%M) "] 1 #3#] "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)
#@77 Shorten SERVER name according to `erc-common-server-suffixes'.

(fn SERVER)
(defalias 'erc-shorten-server-name #[257 "\211;\205@\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216c\210\211\203:eb\210\312@@\313\314#\2033\315@A!\210\211A\262\202\210\316 *\262\207" [erc-common-server-suffixes generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 re-search-forward nil t replace-match buffer-string] 8 (#$ . 231828)])
#@73 Return the name of the target (channel or nickname or servername:port).
(defalias 'erc-format-target #[0 "\303 \211\206\304\206\f	!\305\306\n!Q\207" [erc-server-announced-name erc-session-server erc-session-port erc-default-target erc-shorten-server-name ":" erc-port-to-string] 5 (#$ . 232333)])
#@72 Return the server name or the current target and server name combined.
(defalias 'erc-format-target-and/or-server #[0 "\302\206	!\303 \203\304\303 !\305Q\202!\211\203\211\202!\306p!\207" [erc-server-announced-name erc-session-server erc-shorten-server-name erc-default-target erc-string-no-properties "@" buffer-name] 4 (#$ . 232640)])
#@53 Return the name of the network we are currently on.
(defalias 'erc-format-network #[0 "\300\301!\205\301 \211\203\2119\203\302!\202\303\207" [fboundp erc-network-name symbol-name ""] 3 (#$ . 232992)])
#@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 #[0 "\303\304!\203\304 \206\305\206	!\211\203 \2119\203 \306!\262\307 \203/\310\307 !\311Q\202H\211\203E\312!\204E\n\203A\313!\210\211\202H\314p!\207" [erc-server-announced-name erc-session-server erc-rename-buffers fboundp erc-network-name erc-shorten-server-name symbol-name erc-default-target erc-string-no-properties "@" get-buffer rename-buffer buffer-name] 4 (#$ . 233209)])
#@81 Return a formatted `erc-mode-line-away-status-format'
if `erc-away' is non-nil.
(defalias 'erc-format-away-status #[0 "\301 \211\203
\302\"\202\303\207" [erc-mode-line-away-status-format erc-away-time format-time-string ""] 4 (#$ . 233812)])
#@37 Return the current channel's modes.
(defalias 'erc-format-channel-modes #[0 "\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 (#$ . 234065)])
#@60 Return the estimated lag time to server, `erc-server-lag'.
(defalias 'erc-format-lag-time #[0 "\301 \302!\205r\211q\210)\262\211\203\303\304\"\202\305\207" [erc-server-lag erc-server-buffer buffer-live-p format "lag:%.0f" ""] 4 (#$ . 234468)])
#@66 Update the mode line in a single ERC buffer BUFFER.

(fn BUFFER)
(defalias 'erc-update-mode-line-buffer #[257 "r\211q\210\306\307\310 \311\312 \313\314 \315\316 \206\317\320\321 \322\323!\206 \317\324\325	!\326\327 \330\331 \332\333 &\334 \203<\n\204<\335\202F\334 \203E\317\202F\336\337=\203P\337\202\\\340!\203[ \202\\\341\342\f\"CC:\343\344!\203\351;\205v\342;\"<\203\212\345\346!\210$&\347\344!\210\202\350\211\204\224\337$\202\350=\203\331\350\351!r\211q\210\352\353\354\355\356!\357\"\360$\216c\210\361ed\"\210\362 *\262\363\364\365\203\314\366\367\370\n%\202\322\366\367##$\210\202\350\203\345\366\370#\202\346\211$\210\266\371 )\207" [erc-channel-topic erc-session-port erc-server-connected erc-header-line-face-method erc-mode-line-format mode-line-buffer-identification 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*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 fill-region buffer-string erc-replace-regexp-in-string "%" "%%" erc-propertize help-echo face force-mode-line-update mode-line-process erc-header-line-format erc-header-line-uses-tabbar-p erc-header-line-uses-help-echo-p] 22 (#$ . 234728)])
#@116 Update the mode line in BUFFER.

If BUFFER is nil, update the mode line in all ERC buffers.

(fn &optional BUFFER)
(defalias 'erc-update-mode-line #[256 "\211\203\300!\203\301!\207\302 \211\205'\211@\303!\203 \301!\210A\266\202\202\207" [bufferp erc-update-mode-line-buffer erc-buffer-list buffer-live-p] 5 (#$ . 236393)])
#@76 Convert port P to a string.
P may be an integer or a service name.

(fn P)
(defalias 'erc-port-to-string #[257 "\211\250\203	\300!\207\207" [int-to-string] 3 (#$ . 236735)])
#@78 Convert string S to either an integer port number or a service name.

(fn S)
(defalias 'erc-string-to-port #[257 "\211\247\203\207\300!\211\301U\203\202\211\207" [string-to-number 0] 4 (#$ . 236917)])
#@142 Show the version number of ERC in the minibuffer.
If optional argument HERE is non-nil, insert version number at point.

(fn &optional HERE)
(defalias 'erc-version #[256 "\301\302\"\203
\211c\202\303\304!\203\305\306\"\202\211\207" [emacs-version format "ERC (IRC client for Emacs %s)" called-interactively-p interactive message "%s"] 5 (#$ . 237133) "P"])
#@137 Show the active ERC modes in the minibuffer.
If optional argument HERE is non-nil, insert version number at point.

(fn &optional HERE)
(defalias 'erc-modes #[256 "\301\302\303\211\304\305!\211\203'\211@\306!\203 \211J\203 \307!B\262A\266\202\202\210)\211\262\310#\2037\211c\202E\311\312!\203D\313\314\"\202E\211\207" [case-fold-search mapconcat identity nil apropos-internal "^erc-.*mode$" boundp symbol-name ", " called-interactively-p interactive message "%s"] 8 (#$ . 237507) "P"])
#@49 Trim leading and trailing spaces off S.

(fn S)
(defalias 'erc-trim-string #[257 "\211;\204\300\207\301\302\"\203\303\207\301\304\"\203\305\306\"\207\207" [nil string-match "^\\s-*$" "" "^\\s-*\\(.*\\S-\\)\\s-*$" match-string 1] 4 (#$ . 238017)])
#@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 #[0 "\204\301\302!\210\303\304\"\211\2056\305 \210\306@!\210\211A\262\211\2056\307 \210\310\311!\210\306@!\210\211A\262\312 \210\202\207" [erc-server-process 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] 3 (#$ . 238280) nil])
#@26 Provide an input buffer.
(defalias 'erc-popup-input-buffer #[0 "\300\301!\302\303\304\305\306\307\310\311\"\"\312\313$!\314\315p\"!\210\211 \210``}\210\316 \207" [generate-new-buffer-name "*ERC input*" intern completing-read "Mode: " mapcar #[257 "\300!C\207" [symbol-name] 3 "\n\n(fn E)"] apropos-internal "-mode\\'" commandp nil t pop-to-buffer make-indirect-buffer shrink-window-if-larger-than-buffer] 9 (#$ . 238807) nil])
#@78 Create a variable name corresponding to CATALOG's ENTRY.

(fn CATALOG ENTRY)
(defalias 'erc-make-message-variable-name #[514 "\300\301\302!\303\302!R!\207" [intern "erc-message-" symbol-name "-"] 8 (#$ . 239242)])
#@69 Set CATALOG's ENTRY to FORMAT-SPEC.

(fn CATALOG ENTRY FORMAT-SPEC)
(defalias 'erc-define-catalog-entry #[771 "\300\"L\207" [erc-make-message-variable-name] 6 (#$ . 239464)])
#@62 Define a CATALOG according to ENTRIES.

(fn CATALOG ENTRIES)
(defalias 'erc-define-catalog #[514 "\211\211\205\211@\300@A#\210A\266\202\202\207" [erc-define-catalog-entry] 8 (#$ . 239648)])
(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")))
#@126 Format a proper PART message.

This function is an example on what could be done with formatting
functions.

(fn &rest ARGS)
(defalias 'erc-message-english-PART #[128 "\300>A@\301>A@\302>A@\303>A@\304>A@\305 \230\203'\306\307\"\202G\306\310\311\230\204D\306\312\313\314\315#\"\202E\311&\207" [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 "%" "%%"] 18 (#$ . 244762)])
(defvar erc-current-message-catalog 'english)
(make-variable-buffer-local 'erc-current-message-catalog)
#@201 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.

(fn ENTRY &optional CATALOG)
(defalias 'erc-retrieve-catalog-entry #[513 "\211\204\262\301\"\302!\203\211J\202$\302\301\303\"!\205$\301\303\"J\207" [erc-current-message-catalog erc-make-message-variable-name boundp english] 7 (#$ . 245363)])
#@77 Format MSG according to ARGS.

See also `format-spec'.

(fn MSG &rest ARGS)
(defalias 'erc-format-message #[385 "\300G\301\"\301=\203\302\303!\210\304!\211\204\302\305\"\210\306!\203&\307\"\262\310\307\311\"\"\207" [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] 8 (#$ . 245795)])
(byte-code "\300\301\302\"\210\303\304\305\306\307DD\310\311\312\313\314&\210\303\315\305\306\316DD\317\311\312\313\314&\210\303\320\305\306\321DD\322\311\312\313\314&\207" [add-hook kill-buffer-hook erc-kill-buffer-function custom-declare-variable erc-kill-server-hook funcall function #[0 "\300\207" [(erc-kill-server)] 1] "Invoked whenever a server buffer is killed via `kill-buffer'." :group erc-hooks :type hook erc-kill-channel-hook #[0 "\300\207" [(erc-kill-channel)] 1] "Invoked whenever a channel-buffer is killed via `kill-buffer'." erc-kill-buffer-hook #[0 "\300\207" [nil] 1] "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 #[0 "\301=\205'\302 \210\303 p=\203\304\305!\207\306\307 \206\310 !\203$\304\311!\207\304\312!\207" [major-mode erc-mode erc-remove-channel-users erc-server-buffer run-hooks erc-kill-server-hook erc-channel-p erc-default-target buffer-name erc-kill-channel-hook erc-kill-buffer-hook] 2 (#$ . 246896)])
#@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 #[0 "\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 (#$ . 247594)])
#@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 #[0 "\301 \205\302 \211\205\303\304\305\306!#\306#\262\207" [erc-part-reason erc-server-process-alive erc-default-target erc-server-send format "PART %s :%s" nil] 7 (#$ . 247917)])
#@61 Find the next occurrence of the `erc-parsed' text property.
(defalias 'erc-find-parsed-property #[0 "\300ed\301\302$\207" [text-property-not-all erc-parsed nil] 5 (#$ . 248262)])
#@51 Restore the property `erc-parsed' for the region.
(defalias 'erc-restore-text-properties #[0 "\300 \301ed\302\205
\303!$\207" [erc-find-parsed-property put-text-property erc-parsed erc-get-parsed-vector] 7 (#$ . 248447)])
#@54 Return the whole parsed vector on POINT.

(fn POINT)
(defalias 'erc-get-parsed-vector #[257 "\300\301\"\207" [get-text-property erc-parsed] 4 (#$ . 248678)])
#@55 Return nickname in the parsed vector VECT.

(fn VECT)
(defalias 'erc-get-parsed-vector-nick #[257 "\211\205\301!>\204\302\303\304D\"\210\211\305H\211\205\306\307\"@\211??\205,\310!\205,\207" [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 2 split-string "!" erc-is-valid-nick-p] 5 (#$ . 248843)])
#@59 Return message type in the parsed vector VECT.

(fn VECT)
(defalias 'erc-get-parsed-vector-type #[257 "\211\205\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-erc-response-tags type-of signal wrong-type-argument erc-response 3] 5 (#$ . 249189)])
#@224 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.

(fn HOST PORT CHANNEL USER PASSWORD)
(defalias 'erc-handle-irc-url #[1285 "\300\301\302\303\304\305\n\n\"\306\"\307$!@r\211\206pq\210\211\203'\203'\310!\202F\311\2062\312 \313 ?\314	\205D\315\n!&	)\207" [erc-buffer-filter make-byte-code 0 "\n\300\230\205\301U\205\304 \207" vconcat vector [erc-session-server erc-session-port erc-open-server-buffer-p] 2 erc-cmd-JOIN erc-open erc-compute-nick erc-compute-full-name nil get-buffer-process] 17 (#$ . 249456)])
(byte-code "\300\301!\210\302\303!\207" [provide erc require erc-goodies] 2)

Zerion Mini Shell 1.0