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



(byte-code "\300\301!\210\302\303\304\305\306\301%\210\307\310\311\312\313DD\314\315\316\317\320\321\322\306\303&\207" [require erc custom-declare-group erc-match nil "Keyword and Friend/Foe/... recognition.\nGroup containing all things concerning pattern matching in ERC\nmessages." :group custom-declare-variable erc-match-mode funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if Erc-Match mode is enabled.\nSee the `erc-match-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-match-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 12)#@552 Toggle ERC match mode.
With a prefix argument ARG, enable match if ARG is positive,
and disable it otherwise.  If called from Lisp, enable the mode
if ARG is omitted or nil.
This mode checks whether messages match certain patterns.  If so,
they are hidden or highlighted.  This is controlled via the variables
`erc-pals', `erc-fools', `erc-keywords', `erc-dangerous-hosts', and
`erc-current-nick-highlight-type'.  For all these highlighting types,
you can decide whether the entire message or only the sending nick is
highlighted.

(fn &optional ARG)
(defalias 'erc-match-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!\203{ \323\301!\210\302 \203j \211\302 \232\203{ \324\325\326\305\301!\203w \327\202x \330\331$\210\210\332 \210\305\301!\207" [global-minor-modes erc-match-mode current-message set-default toggle default-value 1 nil t boundp delq erc-match-enable erc-match-disable run-hooks erc-match-mode-hook erc-match-mode-on-hook erc-match-mode-off-hook called-interactively-p any customize-mark-as-set message "%s %sabled%s" "Erc-Match mode" "en" "dis" "" force-mode-line-update] 7 (#$ . 812) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar erc-match-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-match-mode-map erc-match-mode-hook variable-documentation put "Hook run after entering or leaving `erc-match-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-match-mode boundp] 6)#@24 Enable ERC match mode.
(defalias 'erc-match-enable #[0 "\302>\203 \210\202 \302B\303\304\305\306\307#\207" [erc-modules erc-match-mode match t add-hook erc-insert-modify-hook erc-match-message append] 4 (#$ . 2691) nil])#@25 Disable ERC match mode.
(defalias 'erc-match-disable #[0 "\302\303\"\304\305\306\307\"\207" [erc-modules erc-match-mode delq match nil remove-hook erc-insert-modify-hook erc-match-message] 3 (#$ . 2924) nil])
(byte-code "\300\301\302\303#\210\300\301\304\303#\210\300\305\304\303#\210\300\306\304\303#\210\307\310\311\312\313DD\314\315\316%\210\307\317\311\312\320DD\321\315\322%\210\307\323\311\312\324DD\325\315\326%\210\307\327\311\312\330DD\331\315\332%\210\307\333\311\312\334DD\335\315\336%\210\307\337\311\312\340DD\341\315\342%\210\307\343\311\312\344DD\345\315\346%\210\307\347\311\312\350DD\351\315\352%\210\307\353\311\312\354DD\355\315\356%\210\307\357\311\312\360DD\361\315\362%\210\307\363\311\312\364DD\365\315\366%\210\307\367\311\312\370DD\371\315\372%\210\307\373\311\312\374DD\375\315\376%\210\307\377\311\312\201@ DD\201A \201B \201C \315\201D &\210\307\201E \311\312\201F DD\201G \201H \201I \315\201J &\210\307\201K \311\312\201L DD\201M \201N \201O \315\201P &\207" [put erc-match-mode erc-module match definition-name erc-match-enable erc-match-disable custom-declare-variable erc-pals funcall function #[0 "\300\207" [nil] 1 #1=""] "List of pals on IRC." :type (repeat regexp) erc-fools #[0 "\300\207" [nil] 1 #1#] "List of fools on IRC." (repeat regexp) erc-keywords #[0 "\300\207" [nil] 1 #1#] "List of keywords to highlight in all incoming messages.\nEach entry in the list is either a regexp, or a cons cell with the\nregexp in the car and the face to use in the cdr.  If no face is\nspecified, `erc-keyword-face' is used." (repeat (choice regexp (list regexp face))) erc-dangerous-hosts #[0 "\300\207" [nil] 1 #1#] "List of regexps for hosts to highlight.\nUseful to mark nicks from dangerous hosts." (repeat regexp) erc-current-nick-highlight-type #[0 "\300\207" [keyword] 1 #1#] "Determine how to highlight text in which your current nickname appears\n(does not apply to text sent by you).\n\nThe following values are allowed:\n\n nil               - do not highlight the message at all\n `keyword'         - highlight all instances of current nickname in message\n `nick'            - highlight the nick of the user who typed your nickname\n `nick-or-keyword' - highlight the nick of the user who typed your nickname,\n                     or all instances of the current nickname if there was\n                     no sending user\n `message'         - highlight the entire message where current nickname occurs\n `all'             - highlight the entire message (including the nick) where\n                     current nickname occurs\n\nAny other value disables highlighting of current nickname altogether." (choice (const nil) (const nick) (const keyword) (const nick-or-keyword) (const message) (const all)) erc-pal-highlight-type #[0 "\300\207" [nick] 1 #1#] "Determines how to highlight messages by pals.\nSee `erc-pals'.\n\nThe following values are allowed:\n\n    nil       - do not highlight the message at all\n    `nick'    - highlight pal's nickname only\n    `message' - highlight the entire message from pal\n    `all'     - highlight the entire message (including the nick)\n                from pal\n\nAny other value disables pal highlighting altogether." (choice (const nil) (const nick) (const message) (const all)) erc-fool-highlight-type #[0 "\300\207" [nick] 1 #1#] "Determines how to highlight messages by fools.\nSee `erc-fools'.\n\nThe following values are allowed:\n\n    nil       - do not highlight the message at all\n    `nick'    - highlight fool's nickname only\n    `message' - highlight the entire message from fool\n    `all'     - highlight the entire message (including the nick)\n                from fool\n\nAny other value disables fool highlighting altogether." (choice (const nil) (const nick) (const message) (const all)) erc-keyword-highlight-type #[0 "\300\207" [keyword] 1 #1#] "Determines how to highlight messages containing keywords.\nSee variable `erc-keywords'.\n\nThe following values are allowed:\n\n    `keyword' - highlight keyword only\n    `message' - highlight the entire message containing keyword\n    `all'     - highlight the entire message (including the nick)\n                containing keyword\n\nAny other value disables keyword highlighting altogether." (choice (const nil) (const keyword) (const message) (const all)) erc-dangerous-host-highlight-type #[0 "\300\207" [nick] 1 #1#] "Determines how to highlight messages by nicks from dangerous-hosts.\nSee `erc-dangerous-hosts'.\n\nThe following values are allowed:\n\n    `nick'    - highlight nick from dangerous-host only\n    `message' - highlight the entire message from dangerous-host\n    `all'     - highlight the entire message (including the nick)\n                from dangerous-host\n\nAny other value disables dangerous-host highlighting altogether." (choice (const nil) (const nick) (const message) (const all)) erc-log-matches-types-alist #[0 "\300\207" [((keyword . "ERC Keywords"))] 1 #1#] "Alist telling ERC where to log which match types.\nValid match type keys are:\n- keyword\n- pal\n- dangerous-host\n- fool\n- current-nick\n\nThe other element of each cons pair in this list is the buffer name to\nuse for the logged message." (repeat (cons (choice :tag "Key" (const keyword) (const pal) (const dangerous-host) (const fool) (const current-nick)) (string :tag "Buffer name"))) erc-log-matches-flag #[0 "\300\207" [away] 1 #1#] "Flag specifying when matched message logging should happen.\nWhen nil, don't log any matched messages.\nWhen t, log messages.\nWhen `away', log messages only when away." (choice (const nil) (const away) (const t)) erc-log-match-format #[0 "\300\207" ["%t<%n:%c> %m"] 1 #1#] "Format for matched Messages.\nThis variable specifies how messages in the corresponding log buffers\nwill be formatted.  The various format specs are:\n\n%t Timestamp (uses `erc-timestamp-format' if non-nil or \"[%Y-%m-%d %H:%M] \")\n%n Nickname of sender\n%u Nickname!user@host of sender\n%c Channel in which this was received\n%m Message" string erc-beep-match-types #[0 "\300\207" [(current-nick)] 1 #1#] "Types of matches to beep for when a match occurs.\nThe function `erc-beep-on-match' needs to be added to `erc-text-matched-hook'\nfor beeping to work." (choice (repeat :tag "Beep on match" (choice (const current-nick) (const keyword) (const pal) (const dangerous-host) (const fool))) (const :tag "Don't beep" nil)) erc-text-matched-hook #[0 "\300\207" [(erc-log-matches)] 1 #1#] "Hook run when text matches a given match-type.\nFunctions in this hook are passed as arguments:\n(match-type nick!user@host message) where MATCH-TYPE is a symbol of:\ncurrent-nick, keyword, pal, dangerous-host, fool." :options (erc-log-matches erc-hide-fools erc-beep-on-match) hook erc-match-exclude-server-buffer #[0 "\300\207" [nil] 1 #1#] "If true, don't perform match on the server buffer.\nThis is useful for excluding all the things like MOTDs from the\nserver and other miscellaneous functions." :version "24.3" boolean erc-match-quote-when-adding #[0 "\300\207" [ask] 1 #1#] "Whether to `regexp-quote' when adding to a match list interactively.\nWhen the value is a boolean, the opposite behavior will be made\navailable via universal argument." :package-version (ERC . "5.5") (choice (const ask) (const t) (const nil))] 8)#@126 Syntax table used when highlighting messages.
This syntax table should make all the valid nick characters word
constituents.
(defvar erc-match-syntax-table (byte-code "\300 \301\302\303#\210\301\304\303#\210\301\305\303#\210\301\306\303#\210\301\307\303#\210\301\310\303#\210\301\311\303#\210\301\312\303#\210\301\313\303#\210\301\314\303#\210\207" [make-syntax-table modify-syntax-entry 91 "w" 93 123 125 96 94 45 95 124 92] 5) (#$ . 10235))
(custom-declare-face 'erc-current-nick-face '((t :weight bold :foreground "DarkTurquoise")) "ERC face for occurrences of your current nickname." :group 'erc-faces)
(custom-declare-face 'erc-dangerous-host-face '((t :foreground "red")) "ERC face for people on dangerous hosts.\nSee `erc-dangerous-hosts'." :group 'erc-faces)
(custom-declare-face 'erc-pal-face '((t :weight bold :foreground "Magenta")) "ERC face for your pals.\nSee `erc-pals'." :group 'erc-faces)
(custom-declare-face 'erc-fool-face '((t :foreground "dim gray")) "ERC face for fools on the channel.\nSee `erc-fools'." :group 'erc-faces)
(custom-declare-face 'erc-keyword-face '((t :weight bold :foreground "pale green")) "ERC face for your keywords.\nNote that this is the default face to use if\n`erc-keywords' does not specify another." :group 'erc-faces)#@206 Add an entry interactively to a list.
LIST must be passed as a symbol
The query happens using PROMPT.
Completion is performed on the optional alist COMPLETIONS.

(fn LIST PROMPT &optional COMPLETIONS ALT)
(defalias 'erc-add-entry-to-list #[1026 "\301\302\303\"#\304\305!\262\306\267\202- \211\230\2044 \307\310\311\"!\202. ?\202. \202. \304\2034 \211\262\312J\"\203B \313\314\"\207JBL\207" [erc-match-quote-when-adding completing-read make-closure #[257 "\301@\300J\"?\207" [V0 erc-member-ignore-case] 4 "\n\n(fn X)"] nil regexp-quote #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ask 21 t 36 nil 41)) y-or-n-p format "Use regexp-quoted form (%s) instead? " erc-member-ignore-case error "\"%s\" is already on the list"] 10 (#$ . 11518)])#@175 Remove an entry interactively from a list.
LIST must be passed as a symbol.
The elements of LIST can be strings, or cons cells where the
car is the string.

(fn LIST PROMPT)
(defalias 'erc-remove-entry-from-list #[514 "\300\301J\"\302\303\304$\305J\"\203 \306J\"L\207\306\307J\"J\"L\207" [mapcar #[257 "\211<\203 \207\211C\207" [] 2 "\n\n(fn X)"] completing-read nil t erc-member-ignore-case delete assoc] 9 (#$ . 12323)])#@58 Add pal interactively to `erc-pals'.

(fn &optional ARG)
(defalias 'erc-add-pal #[256 "\300\301\302\303 $\207" [erc-add-entry-to-list erc-pals "Add pal: " erc-get-server-nickname-alist] 6 (#$ . 12768) "P"])#@41 Delete pal interactively to `erc-pals'.
(defalias 'erc-delete-pal #[0 "\300\301\302\"\207" [erc-remove-entry-from-list erc-pals "Delete pal: "] 3 (#$ . 12981) nil])#@60 Add fool interactively to `erc-fools'.

(fn &optional ARG)
(defalias 'erc-add-fool #[256 "\300\301\302\303 $\207" [erc-add-entry-to-list erc-fools "Add fool: " erc-get-server-nickname-alist] 6 (#$ . 13151) "P"])#@43 Delete fool interactively to `erc-fools'.
(defalias 'erc-delete-fool #[0 "\300\301\302\"\207" [erc-remove-entry-from-list erc-fools "Delete fool: "] 3 (#$ . 13369) nil])#@66 Add keyword interactively to `erc-keywords'.

(fn &optional ARG)
(defalias 'erc-add-keyword #[256 "\300\301\302\303$\207" [erc-add-entry-to-list erc-keywords "Add keyword: " nil] 6 (#$ . 13544) "P"])#@49 Delete keyword interactively to `erc-keywords'.
(defalias 'erc-delete-keyword #[0 "\300\301\302\"\207" [erc-remove-entry-from-list erc-keywords "Delete keyword: "] 3 (#$ . 13750) nil])#@80 Add dangerous-host interactively to `erc-dangerous-hosts'.

(fn &optional ARG)
(defalias 'erc-add-dangerous-host #[256 "\300\301\302\303$\207" [erc-add-entry-to-list erc-dangerous-hosts "Add dangerous-host: " nil] 6 (#$ . 13940) "P"])#@63 Delete dangerous-host interactively to `erc-dangerous-hosts'.
(defalias 'erc-delete-dangerous-host #[0 "\300\301\302\"\207" [erc-remove-entry-from-list erc-dangerous-hosts "Delete dangerous-host: "] 3 (#$ . 14181) nil])#@100 Check whether the current nickname is in MSG.
NICKUSERHOST will be ignored.

(fn NICKUSERHOST MSG)
(defalias 'erc-match-current-nick-p #[514 "\301 p\302\303#\216\304!\210\205 \305\306\307\310 !\306Q\")\207" [erc-match-syntax-table syntax-table make-closure #[0 "r\300q\210\302\301!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table string-match "\\b" regexp-quote erc-current-nick] 8 (#$ . 14407)])#@90 Check whether NICKUSERHOST is in `erc-pals'.
MSG will be ignored.

(fn NICKUSERHOST MSG)
(defalias 'erc-match-pal-p #[514 "\205\f \205\f \301\"\207" [erc-pals erc-list-match] 5 (#$ . 14818)])#@99 Check whether NICKUSERHOST is in `erc-fools' or MSG is directed at a fool.

(fn NICKUSERHOST MSG)
(defalias 'erc-match-fool-p #[514 "\211\205 \205 \205 \301\"\206 \302!\207" [erc-fools erc-list-match erc-match-directed-at-fool-p] 5 (#$ . 15019)])#@115 Check whether any keyword of `erc-keywords' matches for MSG.
NICKUSERHOST will be ignored.

(fn NICKUSERHOST MSG)
(defalias 'erc-match-keyword-p #[514 "\211\205 \205 \301\302\303\"\"\207" [erc-keywords erc-list-match mapcar #[257 "\211<\203 \211@\207\207" [] 2 "\n\n(fn X)"]] 6 (#$ . 15281)])#@101 Check whether NICKUSERHOST is in `erc-dangerous-hosts'.
MSG will be ignored.

(fn NICKUSERHOST MSG)
(defalias 'erc-match-dangerous-host-p #[514 "\205\f \205\f \301\"\207" [erc-dangerous-hosts erc-list-match] 5 (#$ . 15586)])#@274 Check whether MSG is directed at a fool.
In order to do this, every entry in `erc-fools' will be used.
In any of the following situations, MSG is directed at an entry FOOL:

- MSG starts with "FOOL: " or "FOO, "
- MSG contains ", FOOL." (actually, "\s. FOOL\s.")

(fn MSG)
(defalias 'erc-match-directed-at-fool-p #[257 "\301\302\"\301\303\"\304\"\206 \304\"\207" [erc-fools mapcar #[257 "\300\301Q\207" ["^" "[:,] "] 4 "\n\n(fn ENTRY)"] #[257 "\300\301Q\207" ["\\s. " "\\s."] 4 "\n\n(fn ENTRY)"] erc-list-match] 6 (#$ . 15821)])#@82 Mark certain keywords in a region.
Use this defun with `erc-insert-modify-hook'.
(defalias 'erc-match-message #[0 "eb\210\301\302\303e!\304!\211\205 \305!@\211\205# \306\307!d\310#\205# \311\224\211\205) \311\225\211\203F \312\\dX\203F \211f\313=\203A \312\202B \314\\\202G e\211d{\205y \205U \315 ?\205y \316\317\320	\f&\203v \321\"\202x 	\"\207" [erc-match-exclude-server-buffer ("pal" "fool" "dangerous-host") ("keyword" "current-nick") erc-get-parsed-vector erc-get-parsed-vector-nick erc-parse-user re-search-forward regexp-quote t 0 2 62 1 erc-server-buffer-p mapc make-closure #[257 "eb\210\306P\307\310\311Q!\307\312P!J\313\230\203 \314\315 !\202% \307\316P!J\307\317P!\304\300\"\205\357 \320=\203F \302\203F \321\303\302\322p%\210\202\336 \313\230\203\201 \323=\203\201 \302\203a \321\303\302\322p%\210\202\336 \324\302\206g e\\b\210\325\326\327#\203\336 \321\330\224\330\225\322$\210\202j \202\336 \331\267\202\235 \321\301d\322p%\210\202\336 \321ed\322p%\210\202\336 \332\230\203\265 \333=\203\265 \334\335\336\302#\"\210\202\336 \313\230\203\336 \333=\203\336 \324\302\206\307 e\\b\210\325\326\327#\203\336 \321\330\224\330\225\322$\210\202\312 \337\340\307!\304\206\355 \341\342\305!P\300$\207" [V0 V1 V2 V3 V4 V5 "erc-" intern "erc-match-" "-p" "-highlight-type" "current-nick" regexp-quote erc-current-nick "s" "-face" nick erc-put-text-property font-lock-face nick-or-keyword 2 re-search-forward nil t 0 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (message 135 all 146)) "keyword" keyword mapc make-closure #[257 "\211\300:\203 @\262A\262\302\301\206 e\\b\210\303\304\305#\205, \306\307\224\307\225\310$\210\202 \207" [V0 V1 2 re-search-forward nil t erc-put-text-property 0 font-lock-face] 8 "\n\n(fn ELT)"] run-hook-with-args erc-text-matched-hook "Server:" erc-get-parsed-vector-type] 12 "\n\n(fn MATCH-TYPE)"] append] 18 (#$ . 16364)])#@361 Log matches in a separate buffer, determined by MATCH-TYPE.
The behavior of this function is controlled by the variables
`erc-log-matches-types-alist' and `erc-log-matches-flag'.
Specify the match types which should be logged in the former,
and deactivate/activate match logging in the latter.
See `erc-log-match-format'.

(fn MATCH-TYPE NICKUSERHOST MESSAGE)
(defalias 'erc-log-matches #[771 "\236A\305!@	\306=\204 	\307=\205T \310 \205T \205T \311\n\312B\313\314\315\303!\203. \206/ \316!B\317\320 \2068 \321B\322B\323\nB\257\"r\324!q\210\306db\210\211c*\262\207" [erc-log-matches-types-alist erc-log-matches-flag erc-log-match-format erc-timestamp-format inhibit-read-only erc-parse-user t away erc-away-time format-spec 110 116 format-time-string boundp "[%Y-%m-%d %H:%M] " 99 erc-default-target "" 109 117 erc-log-matches-make-buffer] 13 (#$ . 18330)])#@73 Create or get a log-matches buffer named NAME and return it.

(fn NAME)
(defalias 'erc-log-matches-make-buffer #[257 "\300!\211\206\n \301!r\211q\210\204 \302c\210\303\304\305\"\210)\207" [get-buffer get-buffer-create " == Type \"q\" to dismiss messages ==\n" view-mode-enter nil #[257 "\300\301!\205	 \302!\207" [y-or-n-p "Discard messages? " kill-buffer] 3 "\n\n(fn BUFFER)"]] 6 (#$ . 19207)])#@74 Display a notice that messages were logged while away.

(fn PROC PARSED)
(defalias 'erc-log-matches-come-back #[514 "\302 \203 \303=\203 \304\305	\"\210\306\207" [erc-log-matches-flag erc-log-matches-types-alist erc-away-time away mapc #[257 "\300A!A\205@ \301rq\210\302dS\303\")!\301\304 !\211\205> \205> \305\"\205> \306\307\310\311\312\313\"$\210\306\307\310\311\312\314\"$\266\202\207" [get-buffer erc-emacs-time-to-erc-time get-text-property timestamp erc-away-time time-less-p erc-display-message nil notice active format "You have logged messages waiting in \"%s\"." "Type \"C-c C-k %s RET\" to view them."] 12 "\n\n(fn MATCH-TYPE)"] nil] 5 (#$ . 19613)])
(add-hook 'erc-server-305-functions 'erc-log-matches-come-back nil)#@47 Interactively open an erc-log-matches buffer.
(defalias 'erc-go-to-log-matches-buffer #[0 "\301\302\303\304\"\305#\306!\207" [erc-log-matches-types-alist completing-read "Switch to ERC Log buffer: " mapcar #[257 "\211A\300B\207" [t] 3 "\n\n(fn X)"] #[257 "\300@!\207" [get-buffer] 3 "\n\n(fn BUFFER-CONS)"] switch-to-buffer] 5 (#$ . 20363) nil])
(define-key erc-mode-map "" 'erc-go-to-log-matches-buffer)#@123 Hide foolish comments.
This function should be called from `erc-text-matched-hook'.

(fn MATCH-TYPE NICKUSERHOST MESSAGE)
(defalias 'erc-hide-fools #[771 "\300=\205\f \301ed\302p$\207" [fool erc-put-text-properties (invisible intangible)] 8 (#$ . 20779)])#@129 Beep when text matches.
This function is meant to be called from `erc-text-matched-hook'.

(fn MATCH-TYPE NICKUSERHOST MESSAGE)
(defalias 'erc-beep-on-match #[771 "\235\205 \301 \207" [erc-beep-match-types beep] 5 (#$ . 21042)])
(provide 'erc-match)
