403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.217.5
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/emacs/28.2/lisp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/28.2/lisp/msb.elc
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(defconst msb--few-menus '(((and (boundp 'server-buffer-clients) server-buffer-clients 'multi) 3030 "Clients (%d)") ((and msb-display-invisible-buffers-p (msb-invisible-buffer-p) 'multi) 3090 "Invisible buffers (%d)") ((eq major-mode 'dired-mode) 2010 "Dired (%d)" msb-dired-item-handler msb-sort-by-directory) ((eq major-mode 'Man-mode) 4090 "Manuals (%d)") ((eq major-mode 'w3-mode) 4020 "WWW (%d)") ((or (memq major-mode '(rmail-mode rmail-edit-mode vm-summary-mode vm-mode mail-mode)) (memq major-mode '(mh-letter-mode mh-show-mode mh-folder-mode)) (memq major-mode '(gnus-summary-mode message-mode gnus-group-mode gnus-article-mode score-mode gnus-browse-killed-mode))) 4010 "Mail (%d)") ((not buffer-file-name) 4099 "Buffers (%d)") ('no-multi 1099 "Files (%d)")))
(defconst msb--very-many-menus '(((and (boundp 'server-buffer-clients) server-buffer-clients 'multi) 1010 "Clients (%d)") ((and (boundp 'vc-mode) vc-mode 'multi) 1020 "Version Control (%d)") ((and buffer-file-name (buffer-modified-p) 'multi) 1030 "Changed files (%d)") ((and (get-buffer-process (current-buffer)) 'multi) 1040 "Processes (%d)") ((and msb-display-invisible-buffers-p (msb-invisible-buffer-p) 'multi) 1090 "Invisible buffers (%d)") ((eq major-mode 'dired-mode) 2010 "Dired (%d)" msb-dired-item-handler msb-sort-by-directory) ((eq major-mode 'Man-mode) 5030 "Manuals (%d)") ((eq major-mode 'w3-mode) 5020 "WWW (%d)") ((or (memq major-mode '(rmail-mode rmail-edit-mode vm-summary-mode vm-mode mail-mode)) (memq major-mode '(mh-letter-mode mh-show-mode mh-folder-mode)) (memq major-mode '(gnus-summary-mode message-mode gnus-group-mode gnus-article-mode score-mode gnus-browse-killed-mode))) 5010 "Mail (%d)") ((and (not buffer-file-name) 'no-multi) 5099 "Other non-file buffers (%d)") ((and (string-match "/\\.[^/]*$" buffer-file-name) 'multi) 3090 "Hidden Files (%d)") ((memq major-mode '(c-mode c++-mode)) 3010 "C/C++ Files (%d)") ((eq major-mode 'emacs-lisp-mode) 3020 "Elisp Files (%d)") ((eq major-mode 'latex-mode) 3030 "LaTeX Files (%d)") ('no-multi 3099 "Other files (%d)")))
(custom-declare-group 'msb nil "Customizable buffer-selection with multiple menus." :prefix "msb-" :group 'mouse)
#@63 Set the value of custom variables for msb.

(fn SYMBOL VALUE)
(defalias 'msb-custom-set #[514 "L\210\301\302!\205\205\303\304!\207" [msb-mode featurep msb msb-menu-bar-update-buffers t] 4 (#$ . 2264)])
(byte-code "\302\303\304\305\306DD\307\310\311\312\313\314\315\257\312\313\316\315	\257\317BBB\320\321&\210\302\322\304\305\323DD\324\310\325\320\321\326\327&	\210\302\330\304\305\331DD\332\310\333\320\321&\207" [msb--very-many-menus msb--few-menus custom-declare-variable msb-menu-cond funcall function #[0 "\207" [msb--very-many-menus] 1 #1=""] "List of criteria for splitting the mouse buffer menu.\nThe elements in the list should be of this type:\n (CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLING-FN ITEM-SORT-FN).\n\nWhen making the split, the buffers are tested one by one against the\nCONDITION, just like a Lisp cond: When hitting a true condition, the\nother criteria are *not* tested and the buffer name will appear in the\nmenu with the menu-title corresponding to the true condition.\n\nIf the condition returns the symbol `multi', then the buffer will be\nadded to this menu *and* tested for other menus too.  If it returns\n`no-multi', then the buffer will only be added if it hasn't been added\nto any other menu.\n\nDuring this test, the buffer in question is the current buffer, and\nthe test is surrounded by calls to `save-excursion' and\n`save-match-data'.\n\nThe categories are sorted by MENU-SORT-KEY.  Smaller keys are on top.\nA value of nil means don't display this menu.\n\nMENU-TITLE is really a format.  If you add %d in it, the %d is\nreplaced with the number of items in that menu.\n\nITEM-HANDLING-FN is optional.  If it is supplied and is a function,\nthen it is used for displaying the items in that particular buffer\nmenu, otherwise the function pointed out by\n`msb-item-handling-function' is used.\n\nITEM-SORT-FN is also optional.\nIf it is not supplied, the function pointed out by\n`msb-item-sort-function' is used.\nIf it is nil, then no sort takes place and the buffers are presented\nin least-recently-used order.\nIf it is t, then no sort takes place and the buffers are presented in\nmost-recently-used order.\nIf it is supplied and non-nil and not t than it is used for sorting\nthe items in that particular buffer menu.\n\nNote1: There should always be a `catch-all' as last element, in this\nlist.  That is an element like (t TITLE ITEM-HANDLING-FUNCTION).\nNote2: A buffer menu appears only if it has at least one buffer in it.\nNote3: If you have a CONDITION that can't be evaluated you will get an\nerror every time you do \\[msb]." :type choice const :tag "long" :value "short" ((sexp :tag "user")) :set msb-custom-set msb-modes-key #[0 "\300\207" [4000] 1 #1#] "The sort key for files sorted by mode." integer :version "20.3" msb-separator-diff #[0 "\300\207" [100] 1 #1#] "Non-nil means use separators.\nThe separators will appear between all menus that have a sorting key\nthat differs by this value or more." (choice integer (const nil))] 12)
#@45 The sort key for files sorted by directory.
(defvar msb-files-by-directory-sort-key 0 (#$ . 5287))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\300\316\302\303\317DD\320\306\315\310\311&\210\300\321\302\303\322DD\323\306\315\310\311&\210\300\324\302\303\325DD\326\306\327\310\311&\207" [custom-declare-variable msb-max-menu-items funcall function #[0 "\300\207" [15] 1 #1=""] "The maximum number of items in a menu.\nIf this variable is set to 15 for instance, then the submenu will be\nsplit up in minor parts, 15 items each.  A value of nil means no limit." :type (choice integer (const nil)) :set msb-custom-set msb-max-file-menu-items #[0 "\300\207" [10] 1 #1#] "The maximum number of items from different directories.\n\nWhen the menu is of type `file by directory', this is the maximum\nnumber of buffers that are clumped together from different\ndirectories.\n\nSet this to 1 if you want one menu per directory instead of clumping\nthem together.\n\nIf the value is not a number, then the value 10 is used." integer msb-most-recently-used-sort-key #[0 "\300\207" [-1010] 1 #1#] "Where should the menu with the most recently used buffers be placed?" msb-display-most-recently-used #[0 "\300\207" [15] 1 #1#] "How many buffers should be in the most-recently-used menu.\nNo buffers at all if less than 1 or nil (or any non-number)." msb-most-recently-used-title #[0 "\300\207" ["Most recently used (%d)"] 1 #1#] "The title for the most-recently-used menu." string] 8)
#@74 Function that specifies how many pixels to shift the top menu leftwards.
(defvar msb-horizontal-shift-function #[0 "\300\207" [0] 1] (#$ . 6832))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable msb-display-invisible-buffers-p funcall function #[0 "\300\207" [nil] 1 ""] "Show invisible buffers or not.\nNon-nil means that the buffer menu should include buffers that have\nnames that starts with a space character." :type boolean :set msb-custom-set] 8)
#@500 The appearance of a buffer menu.

The default function to call for handling the appearance of a menu
item.  It should take two arguments, BUFFER and MAX-BUFFER-NAME-LENGTH,
where the latter is the max length of all buffer names.

The function should return the string to use in the menu.

When the function is called, BUFFER is the current buffer.  This
function is called for items in the variable `msb-menu-cond' that have
nil as ITEM-HANDLING-FUNCTION.  See `msb-menu-cond' for more
information.
(defvar msb-item-handling-function 'msb-item-handler (#$ . 7331))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\310\311&\210\316\317\320\321#\210\322\211\203F\211@\317N\203?\320N\204?\323\320\317N#\210A\266\202\202%\210\324\317\320\325#\210\300\320\302\303\326DD\327\306\330\310\311&\210\324\320\331\332#\207" [custom-declare-variable msb-item-sort-function funcall function #[0 "\300\207" [msb-sort-by-name] 1 #1=""] "The order of items in a buffer menu.\n\nThe default function to call for handling the order of items in a menu\nitem.  This function is called like a sort function.  The items look\nlike (ITEM-NAME . BUFFER).\n\nITEM-NAME is the name of the item that will appear in the menu.\nBUFFER is the buffer, this is not necessarily the current buffer.\n\nSet this to nil or t if you don't want any sorting (faster)." :type (choice (const msb-sort-by-name) (const :tag "Newest first" t) (const :tag "Oldest first" nil)) :set msb-custom-set msb-files-by-directory #[0 "\300\207" [nil] 1 #1#] "Non-nil means that files should be sorted by directory.\nThis is instead of the groups in `msb-menu-cond'." boolean defvaralias msb-after-load-hooks msb-after-load-hook nil (saved-value saved-variable-comment) put make-obsolete-variable "24.1" #[0 "\300\207" [nil] 1 #1#] "Hook run after the msb package has been loaded." hook "use `with-eval-after-load' instead." "28.1"] 8)
(defvar msb--last-buffer-menu nil)
(defvar msb--error nil)
#@295 Create one string item, concerning BUFFER, for the buffer menu.
The item looks like:
*% <buffer-name>
The `*' appears only if the buffer is marked as modified.
The `%' appears only if the buffer is read-only.
Optional second argument MAXBUF is completely ignored.

(fn BUFFER &optional MAXBUF)
(defalias 'msb-item-handler #[513 "\301 \302 \203\303\202\f\304\203\305\202\304\306\307$\207" [buffer-read-only buffer-name buffer-modified-p "*" " " "%" format "%s%s %s"] 10 (#$ . 9333)])
(defalias 'msb--dired-directory #[0 ";\203\301\302!!\207:\203\301\302@!!\207\303\304\305 \"\207" [dired-directory abbreviate-file-name expand-file-name error "Unknown type of `dired-directory' in buffer %s" buffer-name] 3])
#@303 Create one string item, concerning a dired BUFFER, for the buffer menu.
The item looks like:
*% <buffer-name>
The `*' appears only if the buffer is marked as modified.
The `%' appears only if the buffer is read-only.
Optional second argument MAXBUF is completely ignored.

(fn BUFFER &optional MAXBUF)
(defalias 'msb-dired-item-handler #[513 "\301 \302 \203\303\202\f\304\203\305\202\304\306\307$\207" [buffer-read-only msb--dired-directory buffer-modified-p "*" " " "%" format "%s%s %s"] 10 (#$ . 10067)])
#@277 Create one string item for the buffer menu.
The item looks like:
<buffer-name> *%# <file-name>
The `*' appears only if the buffer is marked as modified.
The `%' appears only if the buffer is read-only.
The `#' appears only version control file (SCCS/RCS).

(fn BUFFER MAXBUF)
(defalias 'msb-alon-item-handler #[514 "\303\211\304\"\305!\306 \203\307\202\310\203\311\202\310\312\301!\203)	\203)\313\202*\310\n\206/\314&\207" [buffer-read-only vc-mode buffer-file-name format "%%%ds  %%s%%s%%s  %%s" buffer-name buffer-modified-p "*" " " "%" boundp "#" ""] 9 (#$ . 10593)])
#@110 Sort the items ITEM1 and ITEM2 by their `buffer-name'.
An item looks like (NAME . BUFFER).

(fn ITEM1 ITEM2)
(defalias 'msb-sort-by-name #[514 "\300A!\300A!\231\207" [buffer-name] 5 (#$ . 11187)])
#@121 Sort the items ITEM1 and ITEM2 by directory name.  Made for dired.
An item look like (NAME . BUFFER).

(fn ITEM1 ITEM2)
(defalias 'msb-sort-by-directory #[514 "rAq\210\300 )rAq\210\300 )\231\207" [msb--dired-directory] 4 (#$ . 11393)])
#@290 Pop up several menus of buffers for selection with the mouse.
This command switches buffers in the window that you clicked on, and
selects that window.

See the function `mouse-select-buffer' and the variable
`msb-menu-cond' for more information about how the menus are split.

(fn EVENT)
(defalias 'msb #[257 "\301 \302!\211@\262\303\304!\204\305!\210\306\307\310\"?\262\311!\211\203*\312!\266\202/\305!\266\211\203>\313\314!>\203>\315 \210\266\303\207" [last-input-event selected-window event-start nil framep select-window sit-for 0.1 t mouse-select-buffer switch-to-buffer down event-modifiers discard-input] 7 (#$ . 11638) "e"])
#@153 Return t if optional BUFFER is an "invisible" buffer.
If the argument is left out or nil, then the current buffer is considered.

(fn &optional BUFFER)
(defalias 'msb-invisible-buffer-p #[256 "\300!G\301V\205\300!\301H\302=\207" [buffer-name 0 32] 3 (#$ . 12297)])
#@58 Strip one hierarchy level from the end of DIR.

(fn DIR)
(defalias 'msb--strip-dir #[257 "\300\301!!\207" [file-name-directory directory-file-name] 4 (#$ . 12572)])
#@13 

(fn LIST)
(defalias 'msb--init-file-alist #[257 "\300\301\302\303\304\"\"\305\"\306C\306C\301\302\303\307\310#\"\"\242\242BC\244\207" [sort apply nconc mapcar #[257 "\300\301!!\211\205\302!BC\207" [expand-file-name buffer-file-name msb--strip-dir] 4 "\n\n(fn BUFFER)"] #[514 "@@\231\207" [] 4 "\n\n(fn ITEM1 ITEM2)"] nil make-closure #[257 "\300\242@\232\203\301A\301\242B\240\210\302\207\300\242\205\300\242\301\242B\300@\240\210\301AC\240\210\211\205-\211C\207" [V0 V1 nil] 4 "\n\n(fn ITEM)"]] 11 (#$ . 12744)])
#@82 Format a suitable title for the menu item.

(fn TOP-FOUND-P DIR NUMBER-OF-ITEMS)
(defalias 'msb--format-title #[771 "\300\203	\301\202\n\302\303!#\207" [format "%s... (%d)" "%s (%d)" abbreviate-file-name] 7 (#$ . 13291)])
#@81 Choose file-menu with respect to directory for every buffer in LIST.

(fn LIST)
(defalias 'msb--choose-file-menu #[257 "\211\304!\305	\247\203	\202\306\305\211\211\211\211\211\211	@\262	A\262@\262A\262\307!\203H\305\305@\262\203wGX\203w\211@GGY\203w\310\311\305@\311G&\312=\203w\312\262\313A\"\262A\262@\262\2029GV\203\264@\262	\314\n	@\nAG#AB\fB\262\f\305\262\n@\262A\262@\262A\262\266\202-\203\303\312\262\nB\262\262\262\315!\262A\262\232\203\333\262	\203CG	GY\203\374\310	\311\305	\311G&\312=\204G	GW\203C\310\311\305\f\311G&\312=\203C\314\n	@\nAG#AB\fB\262\f\305\262\n@\262A\262@\262A\262\266\202-\203_\314@AG#AB	B\262	\305\262\237\207" [msb--choose-file-menu-arg-list msb-max-file-menu-items msb--choose-file-menu-list completion-ignore-case msb--init-file-alist nil 10 copy-sequence compare-strings 0 t append msb--format-title msb--strip-dir] 22 (#$ . 13524)])
#@241 Create a vector from an element MENU-COND-ELT of `msb-menu-cond'.
This takes the form:
[BUFFER-LIST-VARIABLE CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLER SORTER]
See `msb-menu-cond' for a description of its elements.

(fn MENU-COND-ELT)
(defalias 'msb--create-function-info #[257 "\302\303!G\304V\205
\3048\211\203\305!\203\211\202G\306V\203)\3068\202*	\305!\204:\211\203:\211\307=\203>\211\202?	G\304W\203J\310\311!\210G\304V\203]\305!\204]\312\313C\"\210G\306V\203z\203z\305!\204z\307=\204z\312\313C\"\210\314L\210\315@A@\316\n8&\207" [msb-item-handling-function msb-item-sort-function make-symbol "-msb-buffer-list" 3 fboundp 4 t error "Wrong format of msb-menu-cond" signal invalid-function nil vector 2] 13 (#$ . 14551)])
#@29 

(fn FUNCTION-INFO-VECTOR)
(defalias 'msb--collect #[257 "\300\211\211\301\300\211T\211\262\203JGW\203JH\262\302\303H\304\"\211\262\203@\305=\2032\204@\306=\203;\304\262B\262\203\306=\204\211\237\266\203\262\211\204\\\204\\\307\310!\210\207" [nil -1 eval 1 t no-multi multi error "No catch-all in msb-menu-cond!"] 10 (#$ . 15335)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put msb--collect speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@214 Add BUFFER to the menu depicted by FUNCTION-INFO.
All side-effects.  Adds an element of form (BUFFER-TITLE . BUFFER)
to the buffer-list variable in FUNCTION-INFO.

(fn BUFFER FUNCTION-INFO MAX-BUFFER-NAME-LENGTH)
(defalias 'msb--add-to-menu #[771 "\300H\301H\"BJBL\207" [0 4] 8 (#$ . 15847)])
#@98 Select the appropriate menu for BUFFER.

(fn BUFFER FUNCTION-INFO-VECTOR MAX-BUFFER-NAME-LENGTH)
(defalias 'msb--choose-menu #[771 "?\205\302!?\205\234\3031\213rq\210\304\211\211\305\304\211T\211\262\203_GW\203_H\262\306\307H\310\"\211\262\203U\311=\203G\204U\312=\203P\310\262B\262\203\312=\204\211\237\266\203\262\211\204q\204q\313\314!\210\266\203\211\205\206\211@\315#\210A\266\202\202s\262)0\207\210	?\205\234\316\317\320!\"\313\321	\"\207" [msb-display-invisible-buffers-p msb--error msb-invisible-buffer-p (error) nil -1 eval 1 t no-multi multi error "No catch-all in msb-menu-cond!" msb--add-to-menu format-message "In msb-menu-cond, error for buffer `%s'." buffer-name "%s"] 13 (#$ . 16154)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put msb--choose-menu speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@95 Return (SORT-KEY TITLE . BUFFER-LIST) or nil if the buffer-list is empty.

(fn FUNCTION-INFO)
(defalias 'msb--create-sort-item #[257 "\211\300HJ\211\2051\301H\302H\211\205/\211\303\304HG\"\305\267\202)\202-\237\202-\306\"BB\266\202\207" [0 5 2 format 3 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nil 32 t 36)) sort] 9 (#$ . 17056)])
#@496 Return ALIST as a sorted, aggregated alist.

In the result all items with the same car element (according to
SAME-PREDICATE) are aggregated together.  The alist is first sorted by
SORT-PREDICATE.

Example:
(msb--aggregate-alist
 \='((a . a1) (a . a2) (b . b1) (c . c3) (a . a4) (a . a3) (b . b3) (b . b2))
 (function string=)
 (lambda (item1 item2)
   (string< (symbol-name item1) (symbol-name item2))))
results in
((a a1 a2 a4 a3) (b b1 b3 b2) (c c3))

(fn ALIST SAME-PREDICATE SORT-PREDICATE)
(defalias 'msb--aggregate-alist #[771 "??\2059\300C\300C\300C\301C\300C\302\303\304\305\306\n\n\n\n\n&\307\f\305\310
\"\"\"\"\242\242\237BC\244\266\205\207" [nil t apply nconc mapcar make-closure #[257 "\304\242\203\301A\301\242B\240\210\304\306\240\210\305@\240\210\306\207\300@\305\242\"\203+\301A\301\242B\240\210\306\207\303\301\242\240\210\302\305\242\240\210\301AC\240\210\305@\240\210\302\242\303\242\237BC\207" [V0 V1 V2 V3 V4 V5 nil] 4 "\n\n(fn ITEM)"] sort #[514 "\300@@\"\207" [V0] 5 "\n\n(fn ITEM1 ITEM2)"]] 19 (#$ . 17453)])
(defalias 'msb--mode-menu-cond #[0 "C\303\304\305\"\306\307\310 A\211\2035\211@r\211q\210\311 \204-	\236\204-	\312\n\307\211$BB\262)A\266\202\202\f\210\211\262\313\"\"\207" [msb-modes-key major-mode mode-name mapcar make-closure #[257 "\300\211\242T\240\210\301\302\303@DE\300\242A\304PE\207" [V0 eq major-mode quote " (%d)"] 5 "\n\n(fn ITEM)"] sort nil buffer-list msb-invisible-buffer-p format-mode-line #[514 "AA\231\207" [] 4 "\n\n(fn ITEM1 ITEM2)"]] 13])
#@126 Return a list for the most recently used buffers.
It takes the form ((TITLE . BUFFER-LIST)...).

(fn MAX-BUFFER-NAME-LENGTH)
(defalias 'msb--most-recently-used-menu #[257 "\247\205h\304V\205h\305 A\304\306\211:\203N@\262rq\210\307 ?\205)	\310=?)\203Arq\210\n\")BB\262T\262Y\204NA\262\202\211\237\266\204;\203_\311G\"\202d\312\313C\"B\266\202\207" [msb-display-most-recently-used major-mode msb-item-handling-function msb-most-recently-used-title 0 buffer-list nil msb-invisible-buffer-p dired-mode format signal wrong-type-argument] 9 (#$ . 18995)])
(defalias 'msb--create-buffer-menu-2 #[0 "\306C\307\211\310 \211\203&\211@\204\311 \204\211\242\312!G]\240\210A\266\202\202\210\313\314\315\316\317	\320 \"\"\"\262\310 \211\203\374\211@\n\203N\321!\203N\211B\262\202\365\211\242?\205[\311!?\205\363\3221\342rq\210\307\211\211\323\307\211T\211\262\203\262GW\203\262H\262\324\325H\326\"\211\262\203\250\327=\203\232\204\250\330=\203\243\326\262B\262\203n\330=\204n\211\237\266\203\262\211\204\304\204\304\331\332!\210\266\203\211\205\331\211@\333#\210A\266\202\202\306\262)0\266\202\365\210?\205\363\334\335\312!\"\331\336\"\266A\266\202\2026\210\203\f\315\337\340\"\341!\"\262\307\342\242!\323\307\211\211\211T\211\262\203A	GW\203AH\262\343!\262\203;B\262\307\262\202\237\266\205\244\315\344\345\346A\203X\fBB\202Y\347\"!\"\262\317\350\351!
\205l\352\353DC\354\n\203u\355\202v\356\357BBC$\207" [msb-display-invisible-buffers-p msb-menu-cond msb-files-by-directory msb--error msb-most-recently-used-sort-key msb-separator-diff 0 nil buffer-list msb-invisible-buffer-p buffer-name apply vector mapcar msb--create-function-info append msb--mode-menu-cond buffer-file-name (error) -1 eval 1 t no-multi multi error "No catch-all in msb-menu-cond!" msb--add-to-menu format-message "In msb-menu-cond, error for buffer `%s'." "%s" make-closure #[257 "	@\302\303\304\305\300\"A\"\306\"BB\207" [V0 msb-files-by-directory-sort-key sort mapcar make-closure #[257 "r\211q\210	\300\242\")B\207" [V0 msb-item-handling-function] 4 "\n\n(fn BUFFER)"] #[514 "@@\231\207" #1=[] 4 "\n\n(fn ITEM1 ITEM2)"]] 8 "\n\n(fn BUFFER-LIST)"] msb--choose-file-menu msb--most-recently-used-menu msb--create-sort-item cdr msb--add-separators sort #[514 "@@W\207" #1# 4 "\n\n(fn ELT1 ELT2)"] (keymap "Select Buffer") msb--make-keymap-menu separator "--" toggle "*Files by type*" "*Files by directory*" msb--toggle-menu-type] 18])
(defalias 'msb--create-buffer-menu #[0 "\300 \301\302\"\216\212\303 *\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] msb--create-buffer-menu-2] 4])
#@63 Multi-purpose function for selecting a buffer with the mouse.
(defalias 'msb--toggle-menu-type #[0 "?\301\302!\207" [msb-files-by-directory msb-menu-bar-update-buffers t] 2 (#$ . 21746) nil])
#@227 Pop up several menus of buffers, for selection with the mouse.
Returns the selected buffer or nil if no buffer is selected.

The way the buffers are split is conveniently handled with the
variable `msb-menu-cond'.

(fn EVENT)
(defalias 'mouse-select-buffer #[257 "\204	\203\303\304!\203\304 \203\305\306 \211\305\303\307!\203N\303\310!\203N\311!\3128\262@\311!\3128\262A\311!\211@\262\n Z\262DD\262\266\313	\"\262\211@\314=\203b\315 \210\316!\207\211@\247\203y\211A\204y\211@	\236AA\316!)\207\211@\247\203\206\211A\262\202y\211@;\203\224\211A\204\224\211@\207\211\204\231\207\317\320\"\207" [msb--error msb--last-buffer-menu msb-horizontal-shift-function fboundp frame-or-buffer-changed-p nil msb--create-buffer-menu posn-x-y posn-window event-start 2 x-popup-menu toggle msb--toggle-menu-type mouse-select-buffer error "Unknown form for buffer: %s"] 8 (#$ . 21947)])
#@20 

(fn SORTED-LIST)
(defalias 'msb--add-separators #[257 "\203	\247\204\n\207\301C\302\303\304\305\306\"\"\"\207" [msb-separator-diff nil apply nconc mapcar make-closure #[257 "	\203\300\242\203\211@\300\242Z	V\203\300@\240\210\300\242\302BD\207\300@\240\210\211C\207" [V0 msb-separator-diff separator] 3 "\n\n(fn ITEM)"]] 8 (#$ . 22864)])
#@27 

(fn LIST MCOUNT RESULT)
(defalias 'msb--split-menus-2 #[771 "GV\203>\301\302\211W\203!\211A\262\242B\262T\262\202\n\211\237\262\211@@\303P\262\304F\244B\266\204\305T#\207\211\204D\207\302@@\303P\262\304F\244B\266\202\211\237\207" [msb-max-menu-items 0 nil "..." keymap msb--split-menus-2] 10 (#$ . 23224)])
#@13 

(fn LIST)
(defalias 'msb--split-menus #[257 "\250\203\301V\203\302\301\303#\207\207" [msb-max-menu-items 0 msb--split-menus-2 nil] 5 (#$ . 23571)])
(defalias 'msb--select-buffer #[0 "\301!\207" [last-command-event switch-to-buffer] 2 nil nil])
#@17 

(fn RAW-MENU)
(defalias 'msb--make-keymap-menu #[257 "\300C\301\302\303\"\"\207" [0 mapcar make-closure #[257 "\211\301=\203\n\301\302D\207\303\304A\"\300\211\242T\240@\305@F\306!\244\207" [V0 separator "--" mapcar #[257 "\300A!@\301BB\207" [buffer-name msb--select-buffer] 4 "\n\n(fn ITEM)"] keymap msb--split-menus] 6 "\n\n(fn SUB-MENU)"]] 6 (#$ . 23831)])
#@72 A re-written version of `menu-bar-update-buffers'.

(fn &optional ARG)
(defalias 'msb-menu-bar-update-buffers #[256 "\304\305 \306\"\205l\307\310!\203\310 \204\211\205l\311 \312\211\313 \211A\262A\203QG\314\315\"	\250\203D	\316V\203D	V\203D	\233\312\241\210\317\320F\321\322\"\244\266\203\n\203h\203h\323\205a\324EA\244\202i\241\266\203\207" [msb--last-buffer-menu msb-max-menu-items global-buffers-menu-map msb-separator-diff lookup-key current-global-map [menu-bar buffer] fboundp frame-or-buffer-changed-p frame-list nil msb--create-buffer-menu format "Frames (%d)" 1 frame keymap mapcar #[257 "\300\301\"\300\301\"D\302\303\"\244\207" [frame-parameter name make-closure #[0 "\301\300!\207" [V0 menu-bar-select-frame] 2 nil nil]] 5 "\n\n(fn FRAME)"] "Buffers and Frames" (separator "--")] 11 (#$ . 24207)])
(defvar msb-mode-map (byte-code "\300\301!\302\303\304#\210\207" [make-sparse-keymap "Msb" define-key [remap mouse-buffer-menu] msb] 5))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable msb-mode funcall function #[0 "\300\207" [nil] 1 ""] "Non-nil if Msb mode is enabled.\nSee the `msb-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 `msb-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :type boolean] 10)
#@698 Toggle Msb mode.

This is a minor mode.  If called interactively, toggle the `Msb mode'
mode.  If the prefix argument is positive, enable the mode, and if it
is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable the
mode if ARG is nil, omitted, or is a positive number.  Disable the
mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `(default-value \='msb-mode)'.

The mode's hook is called both when the mode is enabled and when it is
disabled.

This mode overrides the binding(s) of `mouse-buffer-menu' to provide a
different buffer menu using the function `msb'.

(fn &optional ARG)
(defalias 'msb-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\301B	\203M\313\314\315\"\210\316\314\317\"\210\315\310!\210\202[\316\314\315\"\210\313\314\317\"\210\317\310!\210\320\321\305\301!\203g\322\202h\323\"\210\324\325!\203\220\326\301!\210\302 \203\200\211\302 \232\203\220\327\330\305\301!\203\214\331\202\215\332\333#\210\210\334 \210\305\301!\207" [global-minor-modes msb-mode current-message set-default toggle default-value 1 nil t boundp delq add-hook menu-bar-update-hook msb-menu-bar-update-buffers remove-hook menu-bar-update-buffers run-hooks msb-mode-hook msb-mode-on-hook msb-mode-off-hook called-interactively-p any customize-mark-as-set message "Msb mode %sabled%s" "en" "dis" "" force-mode-line-update] 6 (#$ . 25679) (byte-code "\203\n\301!\202\302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar msb-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" [msb-mode-map msb-mode-hook variable-documentation put "Hook run after entering or leaving `msb-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 msb-mode boundp] 6)
#@25 Unload the Msb library.
(defalias 'msb-unload-function #[0 "\300\301!\210\302\207" [msb-mode -1 nil] 2 (#$ . 27786)])
(byte-code "\300\301!\210\302\303!\207" [provide msb run-hooks msb-after-load-hook] 2)

Youez - 2016 - github.com/yon3zu
LinuXploit