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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require mh-e gnus-util speedbar timer] 2)
(defvar mh-speed-refresh-flag nil)
(defvar mh-speed-last-selected-folder nil)
(defvar mh-speed-folder-map (make-hash-table :test 'equal))
(defvar mh-speed-flists-cache (make-hash-table :test 'equal))
(defvar mh-speed-flists-process nil)
(defvar mh-speed-flists-timer nil)
(defvar mh-speed-partial-line "")
(byte-code "\301\302\303\"A>\204 \304!\302\303\"\211\301AB\241\266\301\207" [speedbar-stealthy-function-list mh-speed-stealth-update assoc "files" copy-tree] 4)#@32 Extra menu items for speedbar.
(defvar mh-folder-speedbar-menu-items '("--" ["Visit Folder" mh-speed-view (with-current-buffer speedbar-buffer (get-text-property (line-beginning-position) 'mh-folder))] ["Expand Nested Folders" mh-speed-expand-folder (and (get-text-property (line-beginning-position) 'mh-children-p) (not (get-text-property (line-beginning-position) 'mh-expanded)))] ["Contract Nested Folders" mh-speed-contract-folder (and (get-text-property (line-beginning-position) 'mh-children-p) (get-text-property (line-beginning-position) 'mh-expanded))] ["Refresh Speedbar" mh-speed-refresh t]) (#$ . 666))
(defvar mh-show-speedbar-menu-items mh-folder-speedbar-menu-items)
(defvar mh-letter-speedbar-menu-items mh-folder-speedbar-menu-items)#@47 Specialized speedbar keymap for MH-E buffers.
(defvar mh-folder-speedbar-key-map (speedbar-make-specialized-keymap) (#$ . 1422))
(define-keymap :keymap mh-folder-speedbar-key-map "+" 'mh-speed-expand-folder "-" 'mh-speed-contract-folder "RET" 'mh-speed-view "r" 'mh-speed-refresh)
(defvar mh-show-speedbar-key-map mh-folder-speedbar-key-map)
(defvar mh-letter-speedbar-key-map mh-folder-speedbar-key-map)
(byte-code "\300\301\302\"\210\300\303\302\"\207" [defalias mh-speed-contract-folder mh-speed-toggle mh-speed-expand-folder] 3)#@182 Regenerates the list of folders in the speedbar.

Run this command if you've added or deleted a folder, or want to
update the unseen message count before the next automatic
update.
(defalias 'mh-speed-refresh #[0 "\300\301!\210\302\303!\207" [mh-speed-flists t mh-speed-invalidate-map ""] 2 (#$ . 1961) nil])#@96 Do stealth update.
With non-nil FORCE, the update is always carried out.

(fn &optional FORCE)
(defalias 'mh-speed-stealth-update #[256 "rq\210\301e\302\")\203 \303!\210\304\207\305\207" [speedbar-buffer get-text-property mh-level mh-speed-update-current-folder nil t] 4 (#$ . 2275)])#@124 Toggle the display of child folders in the speedbar.
The optional arguments from speedbar are IGNORED.

(fn &rest IGNORED)
(defalias 'mh-speed-toggle #[128 "\302 \210\303`\304\"\303`\305\"\303`\306\"\303`\307\"`\310\311\204 \310\202\207 \203n \310y\210`\262\303`\307\"\203X \303`\307\"V\203X \303`\304\"\312	\"\203Q \312	\"\310\211\223\210\313	\"\210\210\310y\210\202) \211`|\210\314y\210\315\316!\210\317\320 \320 T\321#\202\207 \310y\210\322T\"\210b\210\315\323!\210\317\320 \320 T\324#)\207" [inhibit-read-only mh-speed-folder-map beginning-of-line get-text-property mh-folder mh-children-p mh-expanded mh-level nil t gethash remhash -1 speedbar-change-expand-button-char 43 add-text-properties line-beginning-position (mh-expanded nil) mh-speed-add-buttons 45 (mh-expanded t)] 11 (#$ . 2569) nil])#@163 Visits the selected folder just as if you had used \<mh-folder-mode-map>\[mh-visit-folder].
The optional arguments from speedbar are IGNORED.

(fn &rest IGNORED)
(defalias 'mh-speed-view #[128 "\301\302 \303\"\211;\205 \304\305\306\307\211&;\2050 \310 r\311\312\"\216\313 \210\314\"\210\315 \210\316 *\262\207" [mh-interpret-number-as-range-flag get-text-property line-beginning-position mh-folder mh-read-range "Scan" t nil internal--before-save-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-save-selected-window] 2] dframe-select-attached-frame mh-visit-folder delete-other-windows dframe-maybee-jump-to-attached-frame] 9 (#$ . 3390) nil])#@139 Interface function to create MH-E speedbar buffer.
BUFFER is the MH-E buffer for which the speedbar buffer is to be
created.

(fn BUFFER)
(defalias 'mh-folder-speedbar-buttons #[257 "\302e\303\"?\205J \304 \210\305!\210\306\307\310\311\312\313\314\312\315\316&	\210\317y\210\320\312\321\312\"\206+ \322 \323 T\312\223#\266\324\323 \323 T\325#\210\326\327!\210	\316V\205J \330\312!\207" [mh-speed-folder-map mh-speed-update-interval get-text-property mh-level erase-buffer clrhash speedbar-make-tag-line bracket 43 mh-speed-toggle nil " " ignore mh-speedbar-folder 0 -1 puthash gethash make-marker line-beginning-position add-text-properties (mh-folder nil mh-expanded nil mh-children-p t mh-level 0) mh-speed-stealth-update t mh-speed-flists] 11 (#$ . 4070)])
(byte-code "\300\301\302\"\210\300\303\302\"\207" [defalias mh-show-speedbar-buttons mh-folder-speedbar-buttons mh-letter-speedbar-buttons] 3)#@70 Compatibility macro to handle speedbar versions 0.11a and 0.14beta4.
(defalias 'mh-speed-select-attached-frame '(macro . #[0 "\300\301!\203 \302\207\303\304!\203 \305\207\306\307!\207" [fboundp dframe-select-attached-frame (dframe-select-attached-frame speedbar-frame) boundp speedbar-attached-frame (select-frame speedbar-attached-frame) error "Installed speedbar version not supported by MH-E"] 2 (#$ . 4983)]))#@487 Update speedbar highlighting of the current folder.
The function tries to be smart so that work done is minimized.
The currently highlighted folder is cached and no highlighting
happens unless it changes.
Also highlighting is suspended while the speedbar frame is selected.
Otherwise you get the disconcerting behavior of folders popping open
on their own when you are trying to navigate around in the speedbar
buffer.

The update is always carried out if FORCE is non-nil.

(fn FORCE)
(defalias 'mh-speed-update-current-folder #[257 "\305 \212\306!\210\307\310 !\311!)\210p\312\2045 \n\203! =\2035 ;\203a \313\314O\315\232\203a \232\204a \316\311!\210\fq\210\317\320\"\210\321!\203N \317\322\"\210\323 \210\324\325!`\"\210\211q\210\311!\210=\205j \312\211)\207" [speedbar-frame case-fold-search mh-speed-refresh-flag mh-speed-last-selected-folder speedbar-buffer selected-frame dframe-select-attached-frame mh-speed-extract-folder-name buffer-name select-frame t 0 1 "+" nil mh-speed-highlight mh-speedbar-folder mh-speed-goto-folder mh-speedbar-selected-folder speedbar-position-cursor-on-line set-window-point frame-first-window] 7 (#$ . 5405)])#@39 Set FOLDER to FACE.

(fn FOLDER FACE)
(defalias 'mh-speed-highlight #[514 "\212\302\303	`#b\210\304 \210\305\306\307 \302#\203 \310!\262\202# \311!\262\304 \210\305\312\307 \302#\2056 \313`\307 \314$*\207" [inhibit-read-only mh-speed-folder-map t gethash beginning-of-line re-search-forward "([1-9][0-9]*/[0-9]+)" line-end-position mh-speed-bold-face mh-speed-normal-face "\\[.\\] " put-text-property face] 7 (#$ . 6581)])#@47 Return normal face for given FACE.

(fn FACE)
(defalias 'mh-speed-normal-face #[257 "\211\300\267\207\301\207\302\207\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (mh-speedbar-folder-with-unseen-messages 4 mh-speedbar-selected-folder-with-unseen-messages 6)) mh-speedbar-folder mh-speedbar-selected-folder] 3 (#$ . 7017)])#@45 Return bold face for given FACE.

(fn FACE)
(defalias 'mh-speed-bold-face #[257 "\211\300\267\207\301\207\302\207\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (mh-speedbar-folder 4 mh-speedbar-selected-folder 6)) mh-speedbar-folder-with-unseen-messages mh-speedbar-selected-folder-with-unseen-messages] 3 (#$ . 7391)])#@117 Move point to line containing FOLDER.
The function will expand out parent folders of FOLDER if needed.

(fn FOLDER)
(defalias 'mh-speed-goto-folder #[257 "\211\301\302\303\"\204+ \211\203+ \304\305\"\262\211\250\203 T\301OB\262\306O\262\202 \303\"\211\203: \211b\266\202Q eb\210\307 \210\310`\311\"\204J \307 \210\303\"b\266\203\202 \310\312 \313\"\232\203l \307 \210\310`\311\"\204l \307 \210\314\315\211A\262\242#\262\303`#b\210\202Q \316 \210\310`\313\"\232\207" [mh-speed-folder-map nil t gethash mh-search-from-end 47 0 mh-speed-toggle get-text-property mh-expanded line-beginning-position mh-folder format "%s/%s" beginning-of-line] 9 (#$ . 7762)])#@149 Given an MH-E BUFFER find the folder that should be highlighted.
Do the right thing for the different kinds of buffers that MH-E
uses.

(fn BUFFER)
(defalias 'mh-speed-extract-folder-name #[257 "r\211q\210\305\267\2025 	\2026 \nq\210	\2026 \306\f\"\2056 \f\307\225\310O\311\312\"\211\2050 \313\314\307O\"\266\202\2026 \310)\207" [major-mode mh-current-folder mh-show-folder-buffer mh-user-path buffer-file-name #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (mh-folder-mode 10 mh-show-mode 14 mh-letter-mode 21)) string-match 0 nil mh-search-from-end 47 format "+%s"] 8 (#$ . 8451)])#@89 Add speedbar button for FOLDER which is at indented by LEVEL amount.

(fn FOLDER LEVEL)
(defalias 'mh-speed-add-buttons #[514 "\300!\301\302\303#\"\207" [mh-sub-folders mapc make-closure #[257 "\305\306\301\206 \307\301\203 \310\202 \311@$\312\n\"\313\314\315A\203$ \316\202% \317\320\321\305\322	@\203= \305\323\n@A#\202> \311#\324\321\203R @\325V\203R \326\202S \327\300&	\210\212\330y\210\f\331\312\f\"\206g \332 \333 T\321\223#\266\334\333 \333 T\335\336\321\337\nA??\340\n\205\217 \341@\fABD\342\300D\"BBBBBB#*\207" [V0 V1 mh-speed-flists-cache inhibit-read-only mh-speed-folder-map format "%s%s%s" "+" "/" "" gethash t speedbar-make-tag-line bracket 43 32 mh-speed-toggle nil "%s%s" " (%s/%s)" mh-speed-view 0 mh-speedbar-folder-with-unseen-messages mh-speedbar-folder -1 puthash make-marker line-beginning-position add-text-properties mh-folder mh-expanded mh-children-p append mh-count mh-level] 16 "\n\n(fn F)"]] 8 (#$ . 9083)])
(defvar mh-speed-current-folder nil)
(defvar mh-speed-flists-folder nil)#@66 PROCESS can be killed without query on Emacs exit.

(fn PROCESS)
(defalias 'mh-process-kill-without-query '(macro . #[257 "\300\301BB\207" [set-process-query-on-exit-flag (nil)] 4 (#$ . 10131)]))
(make-obsolete 'mh-process-kill-without-query 'set-process-query-on-exit-flag "29.1")#@222 Execute flists -recurse and update message counts.
If FORCE is non-nil the timer is reset.

Any number of optional FOLDERS can be specified. If specified,
flists is run only for that one folder.

(fn FORCE &rest FOLDERS)
(defalias 'mh-speed-flists #[385 "\203) \203 \305!\210\306\307	!\203) \310	!\311=\204) \312	\313\"\210\314	!\210\315\306\211?\205= \316\306\f\317V\2059 \f\320#\211\207" [mh-speed-flists-timer mh-speed-flists-process mh-speed-partial-line mh-speed-flists-folder mh-speed-update-interval cancel-timer nil processp process-status exit set-process-filter t kill-process "" run-at-time 0 #[0 "\305!\205\f \306!\307=??\205h 	\203 \310	!@\311\312O\202= \313\314\315\"r\211q\210\316\317\"\216\320\321\322\n\"\312\323\312\324%\210edS{*\262\325P\326\327\330\312\321\331\n\"	\203P \332\202Q \333\334\335\f!	\206Z \336&\312\337\312\"\210\340\341\"\207" [mh-speed-flists-process mh-speed-flists-folder mh-progs mh-speed-current-folder mh-unseen-seq processp process-status exit reverse 1 nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] call-process expand-file-name "folder" (t nil) "-fast" "+" apply start-process "*flists*" "flists" "-noall" "-all" "-sequence" symbol-name ("-recurse") set-process-query-on-exit-flag set-process-filter mh-speed-parse-flists-output] 9]] 6 (#$ . 10420) (list t)])#@148 Parse the incremental results from flists.
PROCESS is the flists process and OUTPUT is the results that must
be handled next.

(fn PROCESS OUTPUT)
(defalias 'mh-speed-parse-flists-output #[514 "\306 \307\310\211\211\211\211\311\312\"\216\313\314	#\211\262\203\315\316\n		O#\262\317\320\321	\"!\211@\262\211A@\262\3228\266\202\203\203\211\203\323\n\"\211@\232?\206[ \211A\232?\262\203\n\324B#\266\325\326!!\203rq\210\327\330e\331\"\203\323\"\310\203b\210\332 b\210\330`\333\"\204\302 \334 b\210\330`S\335\"\262\315\336#c\210\337\340\"\210\332 b\210\341``T\333BD#\266\202\330`\333\"B\232\204\334 b\210\330`S\335\"\262\342\343\332 \327#\210`\334 |\210\315\336#c\210\337\340\"\210\332 b\210\341``T\333BD#\210\266*T\262\202 )\310O\211\207" [mh-speed-partial-line mh-speed-current-folder mh-speed-flists-cache speedbar-buffer inhibit-read-only mh-speed-folder-map match-data 0 nil make-closure #[0 "\301\300!\207" [V0 set-match-data] 2] string-search "\n" format "%s%s" "" cl-values-list mh-parse-flist-output-line 2 gethash puthash buffer-live-p get-buffer t get-text-property mh-level line-beginning-position mh-count line-end-position face " (%s/%s)" mh-speed-highlight unknown add-text-properties re-search-backward " "] 17 (#$ . 11821)])#@62 Remove FOLDER from various optimization caches.

(fn FOLDER)
(defalias 'mh-speed-invalidate-map #[257 "rq\210\306\307\310\"\211\205 \311O\312\n\"\306\203\201 \313!\211\204( \266\314\202H \211A\204G \2039 T\306O\202= \315\306O@@\232\203G \316\262\210b\210\317\320 \321\"\232\203\201 \317\320 \322\"\203` \323 \210\211\203x \324\325!\210\326\320 \320 T\327\314=D#)\210\330\f\331\"\210\306\324\332\232\205\211 \333 )\266\204)\207" [speedbar-buffer speedbar-update-flag mh-speed-folder-map inhibit-read-only mh-speed-last-selected-folder mh-speed-refresh-flag nil mh-search-from-end 47 0 gethash mh-sub-folders 43 1 32 get-text-property line-beginning-position mh-folder mh-expanded mh-speed-toggle t mh-speedbar-change-expand-button-char add-text-properties mh-children-p mh-speed-highlight mh-speedbar-folder "" mh-clear-sub-folders-cache] 11 (#$ . 13145) (list "")])#@80 Change the expansion button character to CHAR for the current line.

(fn CHAR)
(defalias 'mh-speedbar-change-expand-button-char #[257 "\212\301 \210\302\303\304 \305#\2051 \305\306u\210\307\310!\210\311\310\305#\210\312``S\313\314$\210\315\316!\2050 \316`\317Z\320\"))\207" [inhibit-read-only beginning-of-line re-search-forward "\\[.\\]" line-end-position t -2 delete-char 1 insert-char put-text-property invisible nil fboundp speedbar-insert-image-button-maybe 2 3] 6 (#$ . 14040)])#@114 Add FOLDER since it is being created.
The function invalidates the latest ancestor that is present.

(fn FOLDER)
(defalias 'mh-speed-add-folder #[257 "rq\210\305\306\307\"\305\31024 \2053 \311O\262\312\n\"\262\211\203* \313\310\305\"\210\306\307\"\262\202 0\210\211\204< \305\262\211\206D \312\305\n\"b\210\314\315\316!\210\317\320 \320 T\321#)\210\322\320 \323\"\203a \324 \210\314\211)\266\204)\207" [speedbar-buffer speedbar-update-flag mh-speed-folder-map inhibit-read-only mh-speed-refresh-flag nil mh-search-from-end 47 --cl-block-while-loop-- 0 gethash throw t mh-speedbar-change-expand-button-char 43 add-text-properties line-beginning-position (mh-children-p t) get-text-property mh-expanded mh-speed-toggle] 9 (#$ . 14533)])
(provide 'mh-speed)
