;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\301%\210\311\312\313\314\315DD\316\317\320\321\322\323\324\310\305&\207" [require erc auth-source erc-networks custom-declare-group erc-autojoin nil "Enable autojoining." :group custom-declare-variable erc-autojoin-mode funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if Erc-Autojoin mode is enabled.\nSee the `erc-autojoin-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `erc-autojoin-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 12)
#@248 Toggle ERC autojoin mode.
With a prefix argument ARG, enable autojoin if ARG is positive,
and disable it otherwise.  If called from Lisp, enable the mode
if ARG is omitted or nil.
Makes ERC autojoin on connects and reconnects.

(fn &optional ARG)
(defalias 'erc-autojoin-mode #[256 "\302 \303\301\304=\203 \305\301!?\202! \247\203  \306W\203  \307\202! \310\"\210\311\300!\2038 \312\301\"\305\301!\2038 \301B	\203B \313 \210\202E \314 \210\315\316\305\301!\203Q \317\202R \320\"\210\321\322!\203z \323\301!\210\302 \203j \211\302 \232\203z \324\325\305\301!\203v \326\202w \327\330#\210\210\331 \210\305\301!\207" [global-minor-modes erc-autojoin-mode current-message set-default toggle default-value 1 nil t boundp delq erc-autojoin-enable erc-autojoin-disable run-hooks erc-autojoin-mode-hook erc-autojoin-mode-on-hook erc-autojoin-mode-off-hook called-interactively-p any customize-mark-as-set message "Erc-Autojoin mode %sabled%s" "en" "dis" "" force-mode-line-update] 6 (#$ . 784) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar erc-autojoin-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\207" [erc-autojoin-mode-map erc-autojoin-mode-hook variable-documentation put "Hook run after entering or leaving `erc-autojoin-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode erc-autojoin-mode boundp] 6)
#@27 Enable ERC autojoin mode.
(defalias 'erc-autojoin-enable #[0 "\301\302\303\"\210\304\305\306\307\"\210\305\310\311\"\210\305\312\313\"\210\305\314\315\"\207" [erc-autojoin-mode add-to-list erc-modules autojoin t add-hook erc-after-connect erc-autojoin-channels erc-nickserv-identified-hook erc-autojoin-after-ident erc-server-JOIN-functions erc-autojoin-add erc-server-PART-functions erc-autojoin-remove] 3 (#$ . 2390) nil])
#@28 Disable ERC autojoin mode.
(defalias 'erc-autojoin-disable #[0 "\302\303\"\304\305\306\307\"\210\305\310\311\"\210\305\312\313\"\210\305\314\315\"\207" [erc-modules erc-autojoin-mode delq autojoin nil remove-hook erc-after-connect erc-autojoin-channels erc-nickserv-identified-hook erc-autojoin-after-ident erc-server-JOIN-functions erc-autojoin-add erc-server-PART-functions erc-autojoin-remove] 3 (#$ . 2822) nil])
(byte-code "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\210\306\307\310\311\312DD\313\314\315%\210\306\316\310\311\317DD\320\321\322\314\323&\210\306\324\310\311\325DD\326\321\322\314\327&\210\306\330\310\311\331DD\332\314\333%\207" [put erc-autojoin-mode definition-name autojoin erc-autojoin-enable erc-autojoin-disable custom-declare-variable erc-autojoin-channels-alist funcall function #[0 "\300\207" [nil] 1 #1=""] "Alist of channels to autojoin on IRC networks.\nEvery element in the alist has the form (SERVER . CHANNELS).\nSERVER is a regexp matching the server, and channels is the list\nof channels to join.  SERVER can also be a symbol, in which case\nit is matched against the value of `erc-network' instead of\n`erc-server-announced-name' or `erc-session-server' (this can be\nuseful when connecting to an IRC proxy that relays several\nnetworks under the same server).\n\nIf the channel(s) require channel keys for joining, the passwords\nare found via auth-source.  For instance, if you use ~/.authinfo\nas your auth-source backend, then put something like the\nfollowing in that file:\n\nmachine irc.example.net login \"#fsf\" password sEcReT\n\nCustomize this variable to set the value for your first connect.\nOnce you are connected and join and part channels, this alist\nkeeps track of what channels you are on, and will join them\nagain when you get disconnected.  When you restart Emacs, however,\nthose changes are lost, and the customization you saved the last\ntime is used again." :type (repeat (cons :tag "Server" (regexp :tag "Name") (repeat :tag "Channels" (string :tag "Name")))) erc-autojoin-timing #[0 "\300\207" [connect] 1 #1#] "When ERC should attempt to autojoin a channel.\nIf the value is `connect', autojoin immediately on connecting.\nIf the value is `ident', autojoin after successful NickServ\nidentification, or after `erc-autojoin-delay' seconds.\nAny other value means the same as `connect'." :version "24.1" (choice (const :tag "On Connection" connect) (const :tag "When Identified" ident)) erc-autojoin-delay #[0 "\300\207" [30] 1 #1#] "Number of seconds to wait before attempting to autojoin channels.\nThis only takes effect if `erc-autojoin-timing' is `ident'.\nIf NickServ identification occurs before this delay expires, ERC\nautojoins immediately at that time." integer erc-autojoin-domain-only #[0 "\300\207" [t] 1 #1#] "Truncate host name to the domain name when joining a server.\nIf non-nil, and a channel on the server a.b.c is joined, then\nonly b.c is used as the server for `erc-autojoin-channels-alist'.\nThis is important for networks that redirect you to other\nservers, presumably in the same domain." boolean] 8)
(defvar erc--autojoin-timer nil nil)
(make-variable-buffer-local 'erc--autojoin-timer)
#@119 Attempt to autojoin channels.
This is called from a timer set up by `erc-autojoin-channels'.

(fn SERVER NICK BUFFER)
(defalias 'erc-autojoin-channels-delayed #[771 "\203 \304!r\211q\210\305\306\203 \307\310!\210\311\"+\207" [erc--autojoin-timer erc-autojoin-timing erc-autojoin-delay erc-log-p cancel-timer -1 connect erc-log-aux "Delayed autojoin started (no ident success detected yet)" erc-autojoin-channels] 6 (#$ . 6034)])
#@129 Match the current network or server against CANDIDATE.
This should be a key from `erc-autojoin-channels-alist'.

(fn CANDIDATE)
(defalias 'erc-autojoin-server-match #[257 "\211\303 =\206 \211;\205 \211\206 	\304\305\306#)\266\203\207" [erc-server-announced-name erc-session-server inhibit-changing-match-data erc-network nil t string-match] 8 (#$ . 6480)])
#@130 Autojoin channels in `erc-autojoin-channels-alist'.
This function is run from `erc-nickserv-identified-hook'.

(fn NETWORK NICK)
(defalias 'erc-autojoin-after-ident #[514 "\203 \306!	\307=\203N \n\206 \310\311\312\f!\"\211\203L \211@\313@!\203E \211A\211\203D \211@\314\"\204= \315\"\210A\266\202\202) \210A\266\202\202 \266\316\207" [erc--autojoin-timer erc-autojoin-timing erc-session-server erc-server-announced-name erc-server-process erc-autojoin-channels-alist cancel-timer ident mapcar #[257 "r\211q\210\300 )\207" [erc-default-target] 2 "\n\n(fn BUF)"] erc-channel-list erc-autojoin-server-match erc-member-ignore-case erc-server-join-channel nil] 11 (#$ . 6852)])
#@71 Autojoin channels in `erc-autojoin-channels-alist'.

(fn SERVER NICK)
(defalias 'erc-autojoin-channels #[514 "\306=\203 	\307V\203b \310	\311\312p&\202b \206 \f\211\203` \211@\313@!\203Y \211A\211\203X \211@\314\315\316#!@\211\203J r\211q\210\317 )\204P \320\"\210\210A\266\202\202. \210A\266\202\202 \266\311\207" [erc-autojoin-timing erc-autojoin-delay erc--autojoin-timer erc-session-server erc-server-announced-name erc-autojoin-channels-alist ident 0 run-with-timer nil erc-autojoin-channels-delayed erc-autojoin-server-match erc-buffer-filter make-closure #[0 "\302 \211;\205 \303\300@!\205 \304\301!\304!\230\207" [V0 V1 erc-default-target erc-autojoin-server-match erc-downcase] 4] erc-server-process-alive erc-server-join-channel] 12 (#$ . 7549)])
#@110 Compute the current server for lookup in `erc-autojoin-channels-alist'.
Respects `erc-autojoin-domain-only'.
(defalias 'erc-autojoin-current-server #[0 "\206 	\n\203 \303\304\"\203 \305\306\"\207\207" [erc-server-announced-name erc-session-server erc-autojoin-domain-only string-match "[^.\n]+\\.\\([^.\n]+\\.[^.\n]+\\)$" match-string 1] 4 (#$ . 8335)])
#@82 Add the channel being joined to `erc-autojoin-channels-alist'.

(fn PROC PARSED)
(defalias 'erc-autojoin-add #[514 "\302!>\204 \303\304\305D\"\210\211\306H\307\302!>\204\" \303\304\305D\"\210\310H!@r\311!q\210\312 )\313!\203_ \314\315 	\"\206B \314	\"\211\203X A\235\204^ \211AB\241\266\202a D	B\210\266\316\207" [cl-struct-erc-response-tags erc-autojoin-channels-alist type-of signal wrong-type-argument erc-response 5 erc-parse-user 2 process-buffer erc-autojoin-current-server erc-current-nick-p assoc erc-network nil] 9 (#$ . 8701)])
#@85 Remove the channel being left from `erc-autojoin-channels-alist'.

(fn PROC PARSED)
(defalias 'erc-autojoin-remove #[514 "\302!>\204 \303\304\305D\"\210\211\306H@\307\302!>\204# \303\304\305D\"\210\310H!@r\311!q\210\312 )\313!\203Z \314\315 	\"\206C \314	\"\211\203Y \211\316A\"\241\210\211A\204Y \316	\"\210\266\317\207" [cl-struct-erc-response-tags erc-autojoin-channels-alist type-of signal wrong-type-argument erc-response 4 erc-parse-user 2 process-buffer erc-autojoin-current-server erc-current-nick-p assoc erc-network delete nil] 10 (#$ . 9265)])
(provide 'erc-join)
