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

[  Home  ][  C0mmand  ][  Upload File  ]

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

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

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

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\301%\210\311\312\313\314\310\305\315\316&\210\311\317\320\321\310\305\315\322&\210\311\323\306\324\310\305\315\325&\210\311\326\306\327\310\305\315\330&\210\311\331\332\333\310\305\315\334&\210\311\335\306\336\310\305\315\330&\210\311\337\340\341\310\305\315\342&\210\311\343\344\345\310\305\315\342&\210\311\346\306\347\310\305\315\350&\210\311\351\352\353\310\305\315\354&\210\311\355\306\356\310\305\315\357&\210\311\360\320\361\310\305\315\330&\210\311\362\363\364\310\305\315\365&\210\311\366\306\367\310\305\315\370&\210\311\371\372\373\310\305\315\374&\210\311\375\376\377\310\305\315\201@\201A\201B&	\207" [require erc erc-compat erc-match custom-declare-group erc-track nil "Track active buffers and show activity in the mode line." :group custom-declare-variable erc-track-enable-keybindings 'ask "Whether to enable the ERC track keybindings, namely:\n`C-c C-SPC' and `C-c C-@', which both do the same thing.\n\nThe default is to check to see whether these keys are used\nalready: if not, then enable the ERC track minor mode, which\nprovides these keys.  Otherwise, do not touch the keys.\n\nThis can alternatively be set to either t or nil, which indicate\nrespectively always to enable ERC track minor mode or never to\nenable ERC track minor mode.\n\nThe reason for using this default value is to both (1) adhere to\nthe Emacs development guidelines which say not to touch keys of\nthe form C-c C-<something> and also (2) to meet the expectations\nof long-time ERC users, many of whom rely on these keybindings." :type (choice (const :tag "Ask, if used already" ask) (const :tag "Enable" t) (const :tag "Disable" nil)) erc-track-visibility t "Where do we look for buffers to determine their visibility?\nThe value of this variable determines, when a buffer is considered\nvisible or invisible.  New messages in invisible buffers are tracked,\nwhile switching to visible buffers when they are tracked removes them\nfrom the list.  See also `erc-track-when-inactive'.\n\nPossible values are:\n\nt                - all frames\nvisible          - all visible frames\nnil              - only the selected frame\nselected-visible - only the selected frame if it is visible\n\nActivity means that there was no user input in the last 10 seconds." (choice (const :tag "All frames" t) (const :tag "All visible frames" visible) (const :tag "Only the selected frame" nil) (const :tag "Only the selected frame if it is visible" selected-visible)) erc-track-exclude "A list targets (channel names or query targets) which should not be tracked." (repeat string) erc-track-remove-disconnected-buffers "If true, remove buffers associated with a server that is\ndisconnected from `erc-modified-channels-alist'." boolean erc-track-exclude-types '("NICK" "333" "353") "List of message types to be ignored.\nThis list could look like '(\"JOIN\" \"PART\").\n\nBy default, exclude changes of nicknames (NICK), display of who\nset the channel topic (333), and listing of users on the current\nchannel (353)." erc-message-type erc-track-exclude-server-buffer "If true, don't perform tracking on the server buffer; this is\nuseful for excluding all the things like MOTDs from the server and\nother miscellaneous functions." erc-track-shorten-start 1 "This number specifies the minimum number of characters a channel name in\nthe mode-line should be reduced to." number erc-track-shorten-cutoff 4 "All channel names longer than this value will be shortened." erc-track-shorten-aggressively "If non-nil, channel names will be shortened more aggressively.\nUsually, names are not shortened if this will save only one character.\nExample: If there are two channels, #linux-de and #linux-fr, then\nnormally these will not be shortened.  When shortening aggressively,\nhowever, these will be shortened to #linux-d and #linux-f.\n\nIf this variable is set to `max', then channel names will be shortened\nto the max.  Usually, shortened channel names will remain unique for a\ngiven set of existing channels.  When shortening to the max, the shortened\nchannel names will be unique for the set of active channels only.\nExample: If there are two active channels #emacs and #vi, and two inactive\nchannels #electronica and #folk, then usually the active channels are\nshortened to #em and #v.  When shortening to the max, however, #emacs is\nnot compared to #electronica -- only to #vi, therefore it can be shortened\neven more and the result is #e and #v.\n\nThis setting is used by `erc-track-shorten-names'." (choice (const :tag "No" nil) (const :tag "Yes" t) (const :tag "Max" max)) erc-track-shorten-function 'erc-track-shorten-names "This function will be used to reduce the channel names before display.\nIt takes one argument, CHANNEL-NAMES which is a list of strings.\nIt should return a list of strings of the same number of elements.\nIf nil instead of a function, shortening is disabled." (choice (const :tag "Disabled") function) erc-track-list-changed-hook "Hook that is run whenever the contents of\n`erc-modified-channels-alist' changes.\n\nThis is useful for people that don't use the default mode-line\nnotification but instead use a separate mechanism to provide\nnotification of channel activity." hook erc-track-use-faces "Use faces in the mode-line.\nThe faces used are the same as used for text in the buffers.\n(e.g. `erc-pal-face' is used if a pal sent a message to that channel.)" erc-track-faces-priority-list '(erc-error-face (erc-nick-default-face erc-current-nick-face) erc-current-nick-face erc-keyword-face (erc-nick-default-face erc-pal-face) erc-pal-face erc-nick-msg-face erc-direct-msg-face (erc-button erc-default-face) (erc-nick-default-face erc-dangerous-host-face) erc-dangerous-host-face erc-nick-default-face (erc-nick-default-face erc-default-face) erc-default-face erc-action-face (erc-nick-default-face erc-fool-face) erc-fool-face erc-notice-face erc-input-face erc-prompt-face) "A list of faces used to highlight active buffer names in the mode line.\nIf a message contains one of the faces in this list, the buffer name will\nbe highlighted using that face.  The first matching face is used." (repeat (choice face (repeat :tag "Combination" face))) erc-track-priority-faces-only "Only track text highlighted with a priority face.\nIf you would like to ignore changes in certain channels where there\nare no faces corresponding to your `erc-track-faces-priority-list', set\nthis variable.  You can set a list of channel name strings, so those\nwill be ignored while all other channels will be tracked as normal.\nOther options are 'all, to apply this to all channels or nil, to disable\nthis feature.\n\nNote: If you have a lot of faces listed in `erc-track-faces-priority-list',\nsetting this variable might not be very useful." (choice (const nil) (repeat string) (const all)) erc-track-faces-normal-list '((erc-button erc-default-face) (erc-nick-default-face erc-dangerous-host-face) erc-dangerous-host-face erc-nick-default-face (erc-nick-default-face erc-default-face) erc-default-face erc-action-face) "A list of faces considered to be part of normal conversations.\nThis list is used to highlight active buffer names in the mode line.\n\nIf a message contains one of the faces in this list, and the\nprevious mode line face for this buffer is also in this list, then\nthe buffer name will be highlighted using the face from the\nmessage.  This gives a rough indication that active conversations\nare occurring in these channels.\n\nThe effect may be disabled by setting this variable to nil." (repeat (choice face (repeat :tag "Combination" face))) erc-track-position-in-mode-line 'before-modes "Where to show modified channel information in the mode-line.\n\nSetting this variable only has effects in GNU Emacs versions above 21.3.\n\nChoices are:\n'before-modes - add to the beginning of `mode-line-modes',\n'after-modes  - add to the end of `mode-line-modes',\nt             - add to the end of `global-mode-string',\nnil           - don't add to mode line." (choice (const :tag "Just before mode information" before-modes) (const :tag "Just after mode information" after-modes) (const :tag "After all other information" t) (const :tag "Don't display in mode line" nil)) :set #[(sym val) "	L\210\303\302!\205\n\205\304 \210\305	!\207" [sym val erc-track-mode boundp erc-track-remove-from-mode-line erc-track-add-to-mode-line] 2]] 10)
#@187 Generate a new `erc-modified-channels-object' based on STRINGS.
If STRINGS is nil, we initialize `erc-modified-channels-object' to
an appropriate initial value for this flavor of Emacs.
(defalias 'erc-modified-channels-object #[(strings) "\203\"	\302=\203\303\202\304\305\306\237\307#	\310=\203\311\202 \312Q\207\313\207" [strings erc-track-position-in-mode-line after-modes "[" " [" mapconcat identity "," before-modes "] " "]" ""] 5 (#$ . 9022)])
#@73 Internal object used for displaying modified channels in the mode line.
(defvar erc-modified-channels-object (erc-modified-channels-object nil) (#$ . 9487))
(put 'erc-modified-channels-object 'risky-local-variable t)
#@476 An ALIST used for tracking channel modification activity.
Each element looks like (BUFFER COUNT FACE) where BUFFER is a buffer
object of the channel the entry corresponds to, COUNT is a number
indicating how often activity was noticed, and FACE is the face to use
when displaying the buffer's name.  See `erc-track-faces-priority-list',
and `erc-track-showcount'.

Entries in this list should only happen for buffers where activity occurred
while the buffer was not visible.
(defvar erc-modified-channels-alist nil (#$ . 9711))
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\313\306\307&\210\300\314\315\316\304\305\306\307&\210\300\317\320\321\306\307\304\322&\207" [custom-declare-variable erc-track-showcount nil "If non-nil, count of unseen messages will be shown for each channel." :type boolean :group erc-track erc-track-showcount-string ":" "The string to display between buffer name and the count in the mode line.\nThe default is a colon, resulting in \"#emacs:9\"." string erc-track-switch-from-erc t "If non-nil, `erc-track-switch-buffer' will return to the last non-erc buffer\nwhen there are no more active channels." erc-track-switch-direction 'oldest "Direction `erc-track-switch-buffer' should switch.\n\n  importance  -  find buffer with the most important message\n  oldest      -  find oldest active buffer\n  newest      -  find newest active buffer\n  leastactive -  find buffer with least unseen messages\n  mostactive  -  find buffer with most unseen messages.\n\nIf set to 'importance, the importance is determined by position\nin `erc-track-faces-priority-list', where first is most\nimportant." (choice (const importance) (const oldest) (const newest) (const leastactive) (const mostactive))] 8)
#@57 Remove `erc-track-modified-channels' from the mode-line
(defalias 'erc-track-remove-from-mode-line #[nil "\302\300!\203\303\304\"	:\205\305\306	\"\211\207" [mode-line-modes global-mode-string boundp remove (t erc-modified-channels-object) delq erc-modified-channels-object] 3 (#$ . 11467)])
#@124 Add `erc-track-modified-channels' to POSITION in the mode-line.
See `erc-track-position-in-mode-line' for possible values.
(defalias 'erc-track-add-to-mode-line #[(position) "\302=\203\303\304!\203\305\304\306\"\207\307=\203#\303\304!\203#\305\304\310\311#\207\311=\2054	\204/\312\305\301\313\311#\207" [position global-mode-string before-modes boundp mode-line-modes add-to-list (t erc-modified-channels-object) after-modes (t erc-modified-channels-object) t ("") erc-modified-channels-object] 4 (#$ . 11772)])
#@405 Call `erc-unique-channel-names' with the correct parameters.
This function is a good value for `erc-track-shorten-function'.
The list of all channels is returned by `erc-all-buffer-names'.
CHANNEL-NAMES is the list of active channel names.
Only channel names longer than `erc-track-shorten-cutoff' are
actually shortened, and they are only shortened to a minimum
of `erc-track-shorten-start' characters.
(defalias 'erc-track-shorten-names #[(channel-names) "\302\303 \304	$\207" [channel-names erc-track-shorten-start erc-unique-channel-names erc-all-buffer-names #[(s) "G	V\207" [s erc-track-shorten-cutoff] 2]] 5 (#$ . 12303)])
#@151 Return all channel or query buffer names.
Note that we cannot use `erc-channel-list' with a nil argument,
because that does not return query buffers.
(defalias 'erc-all-buffer-names #[nil "\212\304\305 \304\211\203*\n@\211q\210\306=\204\307=\203#\310 B\nA\211\204\f**\207" [result buf --dolist-tail-- major-mode nil buffer-list erc-mode erc-dcc-chat-mode buffer-name] 3 (#$ . 12942)])
#@269 Return a list of unique channel names.
ALL is the list of all channel and query buffer names.
ACTIVE is the list of active buffer names.
PREDICATE is a predicate that should return non-nil if a name needs
  no shortening.
START is the minimum length of the name used.
(defalias 'erc-unique-channel-names #[(all active &optional predicate start) "\306=\203\f\307	\n#\207\310\307\f\n#\311\"\312\f	\312
\211\203s@
\f\312\211\203d\204d@A
\313G
G^O\230\2031
\235\2041\2021
B+A\211\204\"*
\237*\207" [erc-track-shorten-aggressively active predicate start all result max erc-unique-substrings sort #[(a b) "G	GV\207" [a b] 2] nil 0 all-substrings channel --dolist-tail-- winner candidate substrings] 6 (#$ . 13349)])
#@48 Return a list of unique substrings of STRINGS.
(defalias 'erc-unique-substrings #[(strings &optional predicate start) "\247\203\302W\203
\303\304\305	\"\207" [start strings 0 2 mapcar #[(str) "\306\307	!\"G\fG^\310\211
\311!\203'!\204'\202`\204L
V\2038\312\202F\313
O
\314
\n\"?
T\202'
GSU\203^\204^\202`
-\207" [str strings others maxlen start i delete copy-sequence nil functionp t 0 erc-unique-substring-1 candidate done predicate erc-track-shorten-aggressively] 5]] 3 (#$ . 14123)])
#@65 Return non-nil when any string in OTHERS starts with CANDIDATE.
(defalias 'erc-unique-substring-1 #[(candidate others) "\305\211G\f\203*\204*\f@\fA\nG	Y\203\n\306	O\230\203\n\202+\207" [candidate maxlen other result others nil 0] 4 (#$ . 14664)])
(byte-code "\301\302\303\304\")\305\232\203\346\306\302\307\310\")\311\232\203\346\312\302\313\314\")\315\232\203\346\301\302\316\317\")\320\232\203\346\306\302\321\322\")\323\232\203\346\301\302\324\325\")\326\232\203\346\301\327\330!)\331\232\203\346\306\327\332!)\333\232\203\346\301\302\334\335\")\336\232\203\346\301\302\337\340\")\341\232\203\346\301\302\342\343\344\345$)\346\232\203\346\301\302\347\350\351\352$)\353\232\203\346\301\302\354\355\"\356\232)\203\346\306\357\360\361\"\362\232\205\276\357\363\364\"?\205\276\327\365!\366\232\205\276\327\367!\370\232)\203\346\301\357\360\371\"\362\232\205\342\357\363\372\"?\205\342\327\373!\374\232\205\342\327\375!\376\232)\204\360\377\201@\201AC\"\210\301\207" [erc-track-shorten-aggressively nil erc-unique-channel-names #1=("#emacs" "#vi" "#electronica" "#folk") #2=("#emacs" "#vi") #3=("#em" "#vi") t #4=("#emacs" "#vi" "#electronica" "#folk") #5=("#emacs" "#vi") #6=("#em" "#v") max #7=("#emacs" "#vi" "#electronica" "#folk") #8=("#emacs" "#vi") #9=("#e" "#v") #10=("#linux-de" "#linux-fr") #11=("#linux-de" "#linux-fr") #12=("#linux-de" "#linux-fr") #13=("#linux-de" "#linux-fr") #14=("#linux-de" "#linux-fr") #15=("#linux-d" "#linux-f") #16=("#dunnet" "#lisp" "#sawfish" "#fsf" "#guile" "#testgnome" "#gnu" "#fsbot" "#hurd" "#hurd-bunny" "#emacs") #17=("#hurd-bunny" "#hurd" "#sawfish" "#lisp") #18=("#hurd-" "#hurd" "#s" "#l") erc-unique-substrings #19=("#emacs" "#vi" "#electronica" "#folk") #20=("#em" "#vi" "#el" "#f") #21=("#emacs" "#vi" "#electronica" "#folk") #22=("#em" "#v" "#el" "#f") #23=("#emacs" "#burse" "+linux.de" "#starwars" "#bitlbee" "+burse" "#ratpoison") #24=("+linux.de" "#starwars" "#burse") #25=("+l" "#s" "#bu") #26=("fsbot" "#emacs" "deego") #27=("fsbot") #28=("fs") #29=("fsbot" "#emacs" "deego") #30=("fsbot") #[#31=(s) "G\301V\207" [s 4] 2] 1 #32=("f") #33=("fsbot" "#emacs" "deego") #34=("fsbot") #[#35=(s) "G\301V\207" [s 4] 2] 2 #36=("fs") #37=("deego" "#hurd" "#hurd-bunny" "#emacs") #38=("#hurd" "#hurd-bunny") #39=("#hurd" "#hurd-") erc-unique-substring-1 #40="abc" #41=("ab" "abcd") #42="abcd" #43="a" #44=("xyz" "xab") #45=("abc" "xyz" "xab") #46=("ab" "xy" "xa") #47=("abc" "abcdefg") #48=("abc" "abcd") #49=("ab" "abcd") #50=("xyz" "xab") #51=("abc" "xyz" "xab") #52=("abc" "xyz" "xab") #53=("abc" "abcdefg") #54=("abc" "abcd") signal cl-assertion-failed (and (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#1# '#2#)) '#3#) (equal (let ((erc-track-shorten-aggressively t)) (erc-unique-channel-names '#4# '#5#)) '#6#) (equal (let ((erc-track-shorten-aggressively 'max)) (erc-unique-channel-names '#7# '#8#)) '#9#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#10# '#11#)) '#12#) (equal (let ((erc-track-shorten-aggressively t)) (erc-unique-channel-names '#13# '#14#)) '#15#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#16# '#17#)) '#18#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-substrings '#19#)) '#20#) (equal (let ((erc-track-shorten-aggressively t)) (erc-unique-substrings '#21#)) '#22#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#23# '#24#)) '#25#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#26# '#27#)) '#28#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#29# '#30# (lambda #31# (> (length s) 4)) 1)) '#32#) (equal (let ((erc-track-shorten-aggressively nil)) (erc-unique-channel-names '#33# '#34# (lambda #35# (> (length s) 4)) 2)) '#36#) (let ((erc-track-shorten-aggressively nil)) (equal (erc-unique-channel-names '#37# '#38#) '#39#)) (let ((erc-track-shorten-aggressively t)) (and (equal (erc-unique-substring-1 #40# '#41#) #42#) (not (erc-unique-substring-1 #43# '#44#)) (equal (erc-unique-substrings '#45#) '#46#) (equal (erc-unique-substrings '#47#) '#48#))) (let ((erc-track-shorten-aggressively nil)) (and (equal (erc-unique-substring-1 "abc" '#49#) "abcd") (not (erc-unique-substring-1 "a" '#50#)) (equal (erc-unique-substrings '#51#) '#52#) (equal (erc-unique-substrings '#53#) '#54#))))] 5)
#@36 Keymap for rcirc track minor mode.
(defvar erc-track-minor-mode-map (make-sparse-keymap) (#$ . 19110))
(byte-code "\301\302\303#\210\301\304\303#\210\305\306\307\310\311\312\313\314\315\316\317\320&\207" [erc-track-minor-mode-map define-key "" erc-track-switch-buffer [3 67108896] custom-declare-variable erc-track-minor-mode nil "Non-nil if Erc-Track minor mode is enabled.\nSee the command `erc-track-minor-mode' for a description of this minor mode." :set custom-set-minor-mode :initialize custom-initialize-default :group erc-track :type boolean] 12)
#@467 Toggle mode line display of ERC activity (ERC Track minor mode).
With a prefix argument ARG, enable ERC Track minor mode if ARG is
positive, and disable it otherwise.  If called from Lisp, enable
the mode if ARG is omitted or nil.

ERC Track minor mode is a global minor mode.  It exists for the
sole purpose of providing the C-c C-SPC and C-c C-@ keybindings.
Make sure that you have enabled the track module, otherwise the
keybindings will not do anything useful.
(defalias 'erc-track-minor-mode #[(&optional arg) "\303 	\304=\203\n?\202\305	!\306V\307\310\n\203\311\202\312\"\210\313\314!\203D\315\302!\210\303 \2037\303 \232\203D\316\317\n\203A\320\202B\321\"\210)\322 \210\n\207" [#1=#:last-message arg erc-track-minor-mode current-message toggle prefix-numeric-value 0 run-hooks erc-track-minor-mode-hook erc-track-minor-mode-on-hook erc-track-minor-mode-off-hook called-interactively-p any customize-mark-as-set message "Erc-Track minor mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 19677) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\211%\207" [erc-track-minor-mode-map add-minor-mode erc-track-minor-mode "" nil] 6)
#@77 Enable `erc-track-minor-mode', depending on `erc-track-enable-keybindings'.
(defalias 'erc-track-minor-mode-maybe #[(&optional buffer) "?\205i\305	!\203r	q\210\n)\306=\204\307 \205i\310=\203^\311\312!\203+\313\2022\311\314!\2052\315\211\203Y\316\317\f\320\321R!\203O\322\323!\210\324\325!\210\300\326!\202\\\322\327!\210\324\325!\202\\\300\326!)\207\330=\203h\300\326!\207\331\207" [erc-track-minor-mode buffer major-mode erc-track-enable-keybindings key buffer-live-p erc-mode erc-buffer-list ask key-binding [3 67108896] "C-SPC" "" "C-@" y-or-n-p "The C-c " " binding is in use;" " override it for tracking? " message "Will change it; set `erc-track-enable-keybindings' to disable this message" sleep-for 3 1 "Not changing it; set `erc-track-enable-keybindings' to disable this message" t nil] 6 (#$ . 20861)])
#@263 Non-nil if Erc-Track mode is enabled.
See the command `erc-track-mode' for a description of this minor mode.
Setting this variable directly does not take effect;
either customize it (see the info node `Easy Customization')
or call the function `erc-track-mode'.
(custom-declare-variable 'erc-track-mode nil '(#$ . 21702) :set 'custom-set-minor-mode :initialize 'custom-initialize-default :group 'erc-track :type 'boolean)
#@227 Toggle ERC track mode.
With a prefix argument ARG, enable track if ARG is positive,
and disable it otherwise.  If called from Lisp, enable the mode
if ARG is omitted or nil.
This mode tracks ERC channel buffers with activity.
(defalias 'erc-track-mode #[(&optional arg) "\303 	\304=\203\n?\202\305	!\306V\211\203\307 \210\202!\310 \210\311\312\n\203+\313\202,\314\"\210\315\316!\203Q\317\302!\210\303 \203D\303 \232\203Q\320\321\n\203N\322\202O\323\"\210)\324 \210\n\207" [#1=#:last-message arg erc-track-mode current-message toggle prefix-numeric-value 0 erc-track-enable erc-track-disable run-hooks erc-track-mode-hook erc-track-mode-on-hook erc-track-mode-off-hook called-interactively-p any customize-mark-as-set message "Erc-Track mode %sabled" "en" "dis" force-mode-line-update] 4 (#$ . 22131) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\300!\205\n\303\211%\207" [erc-track-mode-map add-minor-mode erc-track-mode nil boundp] 6)
#@24 Enable ERC track mode.
(defalias 'erc-track-enable #[nil "\303\304\305\"\210\306\307\301!\205@	\203#\310\311\312\"\210\310\313\312\"\210\310\314\312\"\210\2029\315\n!\210\316 \210\310\311\317\"\210\310\320\321\"\210\310\322\323\"\210\310\324\325\"\210\325 \207" [erc-track-mode erc-track-when-inactive erc-track-position-in-mode-line add-to-list erc-modules track t boundp add-hook window-configuration-change-hook erc-user-is-active erc-send-completed-hook erc-server-001-functions erc-track-add-to-mode-line erc-update-mode-line erc-window-configuration-change erc-insert-post-hook erc-track-modified-channels erc-disconnected-hook erc-modified-channels-update erc-connect-pre-hook erc-track-minor-mode-maybe] 3 (#$ . 23116) nil])
#@25 Disable ERC track mode.
(defalias 'erc-track-disable #[nil "\304\305\"\306\307\302!\205F\310 \210\n\203+\311\312\313\"\210\311\314\313\"\210\311\315\313\"\210\311\316\313\"\210\202:\311\312\317\"\210\311\320\321\"\210\311\322\323\"\210\311\324\325\"\210\205F\303\326!\207" [erc-modules erc-track-mode erc-track-when-inactive erc-track-minor-mode delq track nil boundp erc-track-remove-from-mode-line remove-hook window-configuration-change-hook erc-user-is-active erc-send-completed-hook erc-server-001-functions erc-timer-hook erc-window-configuration-change erc-disconnected-hook erc-modified-channels-update erc-insert-post-hook erc-track-modified-channels erc-connect-pre-hook erc-track-minor-mode-maybe -1] 3 (#$ . 23859) nil])
(byte-code "\300\301\302\303#\210\300\304\302\303#\210\300\305\302\303#\210\306\307\310\311\312\313\314\315\316\317&	\207" [put erc-track-mode definition-name track erc-track-enable erc-track-disable custom-declare-variable erc-track-when-inactive nil "Enable channel tracking even for visible buffers, if you are\ninactive." :group erc-track :type boolean :set #[(sym val) "\203\303 \210	\nL\210\304 \207	\nL\207" [erc-track-mode sym val erc-track-disable erc-track-enable] 2]] 10)
#@36 Last time the user sent something.
(defvar erc-buffer-activity nil (#$ . 25092))
#@132 How many seconds of inactivity by the user
to consider when `erc-track-visibility' is set to
only consider active buffers visible.
(defvar erc-buffer-activity-timeout 10 (#$ . 25180))
#@28 Set `erc-buffer-activity'.
(defalias 'erc-user-is-active #[(&rest ignore) "\205	\302 \303 \207" [erc-server-connected erc-buffer-activity erc-current-time erc-track-modified-channels] 1 (#$ . 25370)])
(defalias 'erc-track-get-buffer-window #[(buffer frame-param) "\302=\203\303\304 !\305=\205\306	\307\"\207\306	\"\207" [frame-param buffer selected-visible frame-visible-p selected-frame t get-buffer-window nil] 3])
#@44 Return non-nil when the buffer is visible.
(defalias 'erc-buffer-visible #[(buffer) "\203	\205\305\n\"\205\306	\307 \"\fX\207\305\n\"\207" [erc-track-when-inactive erc-buffer-activity buffer erc-track-visibility erc-buffer-activity-timeout erc-track-get-buffer-window erc-time-diff erc-current-time] 3 (#$ . 25802)])
(defalias 'erc-window-configuration-change #[nil "\300\301 !?\205\f\302\303\304\"\207" [minibuffer-window-active-p minibuffer-window add-hook post-command-hook erc-modified-channels-update] 3])
#@208 Variable to prevent running `erc-modified-channels-update' multiple
times.  Without it, you cannot debug `erc-modified-channels-display',
because the debugger also cases changes to the window-configuration.
(defvar erc-modified-channels-update-inside nil (#$ . 26330))
#@246 This function updates the information in `erc-modified-channels-alist'
according to buffer visibility.  It calls
`erc-modified-channels-display' at the end. This should usually be
called via `window-configuration-change-hook'.
ARGS are ignored.
(defalias 'erc-modified-channels-update #[(&rest args) "?\205\303\304\305\306\n\"\210	\203\307 \210\310\303!\210*\311\312\313\"\207" [erc-modified-channels-update-inside removed-channel erc-modified-channels-alist t nil mapc #[(elt) "@\305	!\203#\306	!\203#\307	!\204#\n\205(r	q\210)?\205(\310\311	!)\207" [elt buffer erc-track-remove-disconnected-buffers erc-server-connected removed-channel bufferp buffer-live-p erc-buffer-visible t erc-modified-channels-remove-buffer] 2] erc-modified-channels-display force-mode-line-update remove-hook post-command-hook erc-modified-channels-update] 3 (#$ . 26606) nil])
#@68 The face to use when mouse is over channel names in the mode line.
(defvar erc-track-mouse-face 'mode-line-highlight (#$ . 27483))
#@112 Return STRING as a button that switches to BUFFER when clicked.
If FACES are provided, color STRING with them.
(defalias 'erc-make-mode-line-buffer-name #[(string buffer &optional faces count) "\306 \203	\n\307!Q\202\310	!\311
\312\313\314\"\315\316\317\320\321\322DEF#\210\311
\312\313\323\"\315\324\325\320\326\327DEF#\210\330\331\fG\332
\f%\210\330\331\fG\333\334\f%\210\330\331\fG\335 \f%\210!\203j\"\203j\330\331\fG\336!\f%\210\f*\207" [erc-track-showcount string erc-track-showcount-string count name map make-sparse-keymap int-to-string copy-sequence define-key vector mode-line mouse-2 lambda (e) (interactive "e") save-selected-window (select-window (posn-window (event-start e))) switch-to-buffer mouse-3 (e) (interactive "e") (select-window (posn-window (event-start e))) switch-to-buffer-other-window put-text-property 0 local-map help-echo "mouse-2: switch to buffer, mouse-3: switch to buffer in other window" mouse-face face buffer erc-track-mouse-face faces erc-track-use-faces] 10 (#$ . 27621)])
#@136 Set `erc-modified-channels-object'
according to `erc-modified-channels-alist'.
Use `erc-make-mode-line-buffer-name' to create buttons.
(defalias 'erc-modified-channels-display #[nil "\306=\204\f\307=\203\310 \210\202\311=\203\312 \210\313\314!\210	\315=?\205\222\n\2040\303\315!\211\207\316\317\n\"\316\320\n\"\316\321\n\"\316\322\f\"\323!\203U!\202W\315\f\203\212@\203w\324@\f@@
@$BA\fA
AA\202\\\303!\211.\207" [erc-track-switch-direction erc-track-position-in-mode-line erc-modified-channels-alist erc-modified-channels-object buffers counts mostactive leastactive erc-track-sort-by-activest importance erc-track-sort-by-importance run-hooks erc-track-list-changed-hook nil mapcar car cadr cddr #[(buf) "\301!\206\302\207" [buf buffer-name ""] 2] functionp erc-make-mode-line-buffer-name faces long-names erc-track-shorten-function short-names strings] 5 (#$ . 28659)])
#@51 Remove BUFFER from `erc-modified-channels-alist'.
(defalias 'erc-modified-channels-remove-buffer #[(buffer) "\302	\236	\"\303 \205\304 \207" [buffer erc-modified-channels-alist delete interactive-p erc-modified-channels-display] 3 (#$ . 29600) "bBuffer: "])
#@726 Return the face to use in the mode line from the faces in FACES.
If `erc-track-faces-priority-list' is set, the one from FACES who
is first in that list will be used.  If nothing matches or if
`erc-track-faces-priority-list' is not set, the default mode-line
faces will be used.

If `erc-track-faces-normal-list' is non-nil, use it to produce a
blinking effect that indicates channel activity when the first
element in FACES and the highest-ranking face among the rest of
FACES are both members of `erc-track-faces-normal-list'.

If one of the faces is a list, then it will be ranked according
to its highest-tanking face member.  A list of faces including
that member will take priority over just the single member
element.
(defalias 'erc-track-find-face #[(faces) "\303\304\215\205\n\303\305\215\211\204\306\202%\n\235\203$	\235\203$	\202%\n*\207" [erc-track-faces-normal-list no-first choice face (byte-code "\304\211\205\n@\211\235\203\305\306	\"\210\nA\211\204\304*\207" [erc-track-faces-priority-list candidate --dolist-tail-- faces nil throw face] 4) (byte-code "\304\211\205\n@\211A\235\203\305\306	\"\210\nA\211\204\304*\207" [erc-track-faces-priority-list candidate --dolist-tail-- faces nil throw face] 4) nil] 4 (#$ . 29869)])
#@207 Hook function for `erc-insert-post-hook' to check if the current
buffer should be added to the mode line as a hidden, modified
channel.  Assumes it will only be called when current-buffer
is in `erc-mode'.
(defalias 'erc-track-modified-channels #[nil "\306 \206\307p!\310p!\204\223	\235\204\223\n\203\311 \204\223\312\313 \206%e\"\204\223\314\315 !
\316=\204;
\235\205?\317\320\215??\205\217p\236\204Yp\321\322\f!BBB\202\215\f\203\215p\236\211\211AA)\322\203y\fB\202z\f!\211\211A@)TB\241\210+\323 )\202\260\310p!\204\243\205\260	\235\205\260p\236\205\260\324p!\210\323 )\207" [this-channel erc-track-exclude erc-track-exclude-server-buffer erc-track-exclude-types faces erc-track-priority-faces-only erc-default-target buffer-name erc-buffer-visible erc-server-buffer-p erc-message-type-member erc-find-parsed-property erc-faces-in buffer-string all found (byte-code "\304\211\205\n@\211\235\203\305\306\307\"\210\nA\211\204\304*\207" [faces f --dolist-tail-- erc-track-faces-priority-list nil throw found t] 4) 1 erc-track-find-face erc-modified-channels-display erc-modified-channels-remove-buffer erc-modified-channels-alist cell x old-face new-face] 5 (#$ . 31151)])
#@41 Return a list of all faces used in STR.
(defalias 'erc-faces-in #[(str) "\305G\306\307\305\310#!\311\312\f\310$\211\2032\fU\2042\307\f\310#\211\203\313\302	\"\210\202\n,\207" [str cur faces m i 0 erc-list get-text-property face nil next-single-property-change add-to-list] 7 (#$ . 32397)])
(byte-code "\301\302\303G\304\305%\210\306!)\204\307\310\311C\"\210\302\207" [str #1="is bold" put-text-property 3 face #2=(bold erc-current-nick-face) erc-faces-in signal cl-assertion-failed (let ((str #1#)) (put-text-property 3 (length str) 'face '#2# str) (erc-faces-in str))] 6)
#@93 Stores the name of the last buffer you were in before activating
`erc-track-switch-buffers'
(defvar erc-track-last-non-erc-buffer nil (#$ . 33000))
#@102 Sort erc-modified-channels-alist by activity.
That means the number of unseen messages in a channel.
(defalias 'erc-track-sort-by-activest #[nil "\301\302\"\211\207" [erc-modified-channels-alist sort #[(a b) "A@	A@V\207" [a b] 2]] 3 (#$ . 33155)])
#@237 Return a number indicating the priority of FACE in
`erc-track-faces-priority-list'.  Lower number means higher
priority.

If face is not in `erc-track-faces-priority-list', it will have a
higher number than any other face in that list.
(defalias 'erc-track-face-priority #[(face) "\301\302\303\215\210)\207" [count 0 done (byte-code "\305\211\203#\n@\211\232\203\306\307\310\"\210\202\fT\nA\211\204*\305\207" [erc-track-faces-priority-list item --dolist-tail-- face count nil throw done t] 4)] 2 (#$ . 33413)])
#@121 Sort erc-modified-channels-alist by importance.
That means the position of the face in `erc-track-faces-priority-list'.
(defalias 'erc-track-sort-by-importance #[nil "\301\302\"\211\207" [erc-modified-channels-alist sort #[(a b) "\303\211AA)!\303\n\211AA)!W\207" [a x b erc-track-face-priority] 4]] 3 (#$ . 33947)])
#@177 Return the buffer name of ARG in `erc-modified-channels-alist'.
Negative arguments index in the opposite direction.  This direction is
relative to `erc-track-switch-direction'
(defalias 'erc-track-get-active-buffer #[(arg) "\305\306W\203B\307\n\310\"\203\311\202>\307\n\311\"\203 \310\202>\307\n\312\"\203+\313\202>\307\n\313\"\2036\312\202>\307\n\314\"\205>\310[\315\n\316\"\203P\fGZ\202RS\211\fGY\203a\fGS\202i	\306W\203i\306	\f8@*\207" [erc-track-switch-direction offset dir arg erc-modified-channels-alist nil 0 eql oldest newest mostactive leastactive importance memql (oldest leastactive)] 4 (#$ . 34275)])
#@211 Switch to the next active ERC buffer, or if there are no active buffers,
switch back to the last non-ERC buffer visited.  Next is defined by
`erc-track-switch-direction', a negative argument will reverse this.
(defalias 'erc-track-switch-buffer #[(arg) "\204\306\307!\207	\203\n\310=\204p\311\312\f!!\207\205+
\205+\313!\205+\311!\207" [erc-track-mode erc-modified-channels-alist major-mode erc-track-last-non-erc-buffer arg erc-track-switch-from-erc message "Enable the ERC track module if you want to use the tracking minor mode" erc-mode switch-to-buffer erc-track-get-active-buffer buffer-live-p] 3 (#$ . 34923) "p"])
(provide 'erc-track)

MMCT - 2023