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



(byte-code "\300\301!\210\300\302!\210\3031 \300\304!0\210\202 \210\305\306\307\310\311\301%\210\312\313\314\315\316DD\317\320\321%\207" [require erc speedbar (error) dframe custom-declare-group erc-speedbar nil "Integration of ERC in the Speedbar." :group custom-declare-variable erc-speedbar-sort-users-type funcall function #[0 "\300\207" [activity] 1 ""] "How channel nicknames are sorted.\n\n`activity'     - Sort users by channel activity\n`alphabetical' - Sort users alphabetically\nnil            - Do not sort users" :type (choice (const :tag "Sort users by channel activity" activity) (const :tag "Sort users alphabetically" alphabetical) (const :tag "Do not sort users" nil))] 6)#@39 Keymap used when in erc display mode.
(defvar erc-speedbar-key-map nil (#$ . 776))#@58 Install those variables used by speedbar to enhance ERC.
(defalias 'erc-install-speedbar-variables #[0 "\204% \301 \302\303\304#\210\302\305\304#\210\302\306\307#\210\302\310\307#\210\302\311\312#\210\313\314!\210\315\316!\207" [erc-speedbar-key-map speedbar-make-specialized-keymap define-key "e" speedbar-edit-line "" "+" speedbar-expand-line "=" "-" speedbar-contract-line speedbar-add-expansion-list ("ERC" erc-speedbar-menu-items erc-speedbar-key-map erc-speedbar-server-buttons) speedbar-add-mode-functions-list ("ERC" (speedbar-item-info . erc-speedbar-item-info))] 4 (#$ . 864)])#@49 Additional menu-items to add to speedbar frame.
(defvar erc-speedbar-menu-items '(["Goto buffer" speedbar-edit-line t] ["Expand Node" speedbar-expand-line (save-excursion (beginning-of-line) (looking-at "[0-9]+: *.\\+. "))] ["Contract Node" speedbar-contract-line (save-excursion (beginning-of-line) (looking-at "[0-9]+: *.-. "))]) (#$ . 1465))
(eval-after-load 'speedbar #[0 "\300 \207" [erc-install-speedbar-variables] 1])#@93 Initialize speedbar to display an ERC browser.
This will add a speedbar major display mode.
(defalias 'erc-speedbar-browser #[0 "\300\301!\210\302\303!\210\304\305!\210\306 \207" [require speedbar speedbar-frame-mode 1 speedbar-change-initial-expansion-list "ERC" speedbar-get-focus] 2 (#$ . 1895) nil])#@53 Create buttons for speedbar in BUFFER.

(fn BUFFER)
(defalias 'erc-speedbar-buttons #[257 "\300 \210\301\211\211rq\210\302 \262\303\304 !\262\305 )\262\203$ \306\301\307#\207\2036 \310\307\"\210\311y\210\312\313\307#\207\211\203? \310\307\"\207\301\207" [erase-buffer nil erc-server-buffer-p erc-channel-p erc-default-target erc-query-buffer-p erc-speedbar-channel-buttons 0 erc-speedbar-insert-target -1 erc-speedbar-expand-channel "+"] 8 (#$ . 2204)])#@80 Insert the initial list of servers you are connected to.

(fn DIRECTORY DEPTH)
(defalias 'erc-speedbar-server-buttons #[514 "\301\302!\211\205, \303\211\211\203) \211@\304\305\306\307\310!\311\312\f&	\210A\266\202\202\n )\210\303\207" [inhibit-read-only erc-buffer-list #[0 "p\301!=\207" [erc-server-process process-buffer] 3] t speedbar-make-tag-line bracket 43 erc-speedbar-expand-server buffer-name erc-speedbar-goto-buffer nil] 15 (#$ . 2674)])#@27 

(fn TEXT SERVER INDENT)
(defalias 'erc-speedbar-expand-server #[771 "\301\302\"\203, \303\304!\210\305\212\306\210\307u\210\310\306T#*\203% \303\304!\210\202B \303\311!\210\202B \301\312\"\203> \303\313!\210\314!\210\202B \315\316!\210\317 \207" [inhibit-read-only string-search "+" speedbar-change-expand-button-char 45 t nil 1 erc-speedbar-channel-buttons 63 "-" 43 speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly] 7 (#$ . 3137)])#@38 

(fn DIRECTORY DEPTH SERVER-BUFFER)
(defalias 'erc-speedbar-channel-buttons #[771 "\302!\205/ r\211q\210)\303\304\"\211\205- \305\211\211\203* \211@\306\"\210A\266\202\202 )\210\305\266\202\207" [erc-server-process inhibit-read-only get-buffer erc-buffer-list #[0 "\301!p=?\207" [erc-server-process process-buffer] 2] t erc-speedbar-insert-target] 10 (#$ . 3629)])#@21 

(fn BUFFER DEPTH)
(defalias 'erc-speedbar-insert-target #[514 "rq\210\300\301 !)\203 \302\303\304\305\306!\307\310	&	\207\302\310\211\211\211\306!\307\310	&	\207" [erc-channel-p erc-default-target speedbar-make-tag-line bracket 43 erc-speedbar-expand-channel buffer-name erc-speedbar-goto-buffer nil] 12 (#$ . 4010)])#@135 For the line matching TEXT, in CHANNEL, expand or contract a line.
INDENT is the current indentation level.

(fn TEXT CHANNEL INDENT)
(defalias 'erc-speedbar-expand-channel #[771 "\306\307\"\203\324 \310\311!\210\312\212\313\210\314u\210rq\210\315\316	\"\n\2037 \2037 \f\2030 \317\320\n#\202V \317\321\n\"\202V \n\203B \317\322\n\"\202V \203U \f\203Q \317\323\"\202V \324\202V \325P)\326rq\210)!\327\330\331\313\211\332P\313\211\211T&	\210\211\325\230\204\212 \327\330\331\313\211\333P\313\211\211T&	\210'\334\267\202\251 \335rq\210\336 )!\202\260 \337rq\210\336 )!\202\260 rq\210\336 )\211\203\316 \312\211\211\203\314 \211@\340\341T#\210A\266\202\202\267 )\210*\266\202\352 \306\342\"\203\346 \310\341!\210\343!\210\202\352 \344\345!\210\346 \207" [inhibit-read-only erc-channel-modes erc-channel-user-limit erc-channel-key erc-show-channel-key-p erc-channel-topic string-search "+" speedbar-change-expand-button-char 45 t nil 1 apply concat format "lk %.0f %s" "kl %.0f" "l %.0f" "k %s" "k" "" erc-controls-interpret speedbar-make-tag-line angle 105 "Modes: +" "Topic: " #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (alphabetical 145 activity 157)) erc-sort-channel-users-alphabetically erc-get-channel-user-list erc-sort-channel-users-by-activity erc-speedbar-insert-user 43 "-" speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly erc-speedbar-sort-users-type] 15 (#$ . 4349)])#@170 Insert one user based on the channel member list ENTRY.
EXP-CHAR is the expansion character to use.
INDENT is the current indentation level.

(fn ENTRY EXP-CHAR INDENT)
(defalias 'erc-speedbar-insert-user #[771 "@A\302H>\204 \303\304\305D\"\210\306H\302H>\204% \303\304\305D\"\210\307H\302H>\2048 \303\304\305D\"\210\310H\302H>\204K \303\304\305D\"\210\311H\302H>\204^ \303\304\305D\"\210\312H\205x \302H	>\204u \303\304\313D\"\210\306H\205\222 \302H	>\204\216 \303\304\313	D\"\210\311H\211\203\232 \314\202\233 \315\203\243 \316\202\244 \315Q\211\204\261 \205\262 \314Q\211E\204\315 \204\315 \204\315 \203\335 \317\320\321\322\323\323&	\207\324=\203\363 \325y\210\322\316E#\210\317\326\327\323\211\323\211\211&	\207" [cl-struct-erc-server-user-tags cl-struct-erc-channel-user-tags 0 signal wrong-type-argument erc-server-user 1 2 5 3 4 erc-channel-user "@" "" "+" speedbar-make-tag-line bracket 43 erc-speedbar-expand-user nil 45 -1 statictag 63] 25 (#$ . 5848)])#@137 Update the speedbar information about a ERC buffer.
The update is only done when the channel is actually expanded already.

(fn BUFFER)
(defalias 'erc-speedbar-update-channel #[257 "rq\210\212eb\210\301\302\303\304!!P\305\306#\205\" \307 \210\310\311!\210\312\313\311#*\207" [speedbar-buffer re-search-forward "^1: *.+. *" regexp-quote buffer-name nil t beginning-of-line speedbar-delete-subblock 1 erc-speedbar-expand-channel "+"] 6 (#$ . 6895)])#@26 

(fn TEXT TOKEN INDENT)
(defalias 'erc-speedbar-expand-user #[771 "\301\302\"\203] \303\304!\210\305\212\306\210\307u\210@A@\3108\2030 \311\306\211\211\211\306\211\211\fT&	\210\203D \311\306\211\211\211\306\211\211\fT&	\210\211\203W \311\306\211\211\211\306\211\211\fT&	\210*\266\202s \301\312\"\203o \303\313!\210\314!\210\202s \315\316!\210\317 \207" [inhibit-read-only string-search "+" speedbar-change-expand-button-char 45 t nil 1 2 speedbar-make-tag-line "-" 43 speedbar-delete-subblock error "Ooops... not sure what to do" speedbar-center-buffer-smartly] 16 (#$ . 7351)])#@101 When user clicks on TEXT, goto an ERC buffer.
The INDENT level is ignored.

(fn TEXT BUFFER INDENT)
(defalias 'erc-speedbar-goto-buffer #[771 "\304\305!\2031 \306!\210\307\310\"\211\203 \311!\210\312\313!!\207	\203) \314\311\315!!)\207\306!\210\316!\207\307\310\"\211\203C \311!\210\312\313!!\207\203P \314\311\315!!)\207\306!\210\316!\207" [speedbar-frame dframe-power-click pop-up-frames speedbar-power-click featurep dframe dframe-select-attached-frame get-buffer-window 0 select-window raise-frame window-frame t display-buffer switch-to-buffer] 7 (#$ . 7956)])#@51 Return the text for the item on the current line.
(defalias 'erc-speedbar-line-text #[0 "\300 \210\301\302\303\304#\205 \305`\306 \"\207" [beginning-of-line re-search-forward "[]>] " nil t buffer-substring-no-properties line-end-position] 4 (#$ . 8544)])#@67 Display information about the current buffer on the current line.
(defalias 'erc-speedbar-item-info #[0 "\300 \301 \203 <\203 \302\303@#\207\304!\203 \302\305\"\207\302\306\"\207" [speedbar-line-token erc-speedbar-line-text message "%s: %s" bufferp "Channel: %s" "%s"] 6 (#$ . 8805)])
(provide 'erc-speedbar)
