| 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/emacs-lisp/ |
Upload File : |
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.
#@10
(fn S)
(defalias 'easy-menu-intern #[257 "\211;\203 \300!\207\207" [intern] 3 (#$ . 84)])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put easy-menu-intern speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@3810 Define a pop-up menu and/or menu bar menu specified by MENU.
If SYMBOL is non-nil, define SYMBOL as a function to pop up the
submenu defined by MENU, with DOC as its doc string.
MAPS, if non-nil, should be a keymap or a list of keymaps; add
the submenu defined by MENU to the keymap or each of the keymaps,
as a top-level menu bar item.
The first element of MENU must be a string. It is the menu bar
item name. It may be followed by the following keyword argument
pairs:
:filter FUNCTION
FUNCTION must be a function which, if called with one
argument---the list of the other menu items---returns the
items to actually display.
:visible INCLUDE
INCLUDE is an expression. The menu is visible if the
expression evaluates to a non-nil value. `:included' is an
alias for `:visible'.
:active ENABLE
ENABLE is an expression. The menu is enabled for selection
if the expression evaluates to a non-nil value. `:enable' is
an alias for `:active'.
:label FORM
FORM is an expression that is dynamically evaluated and whose
value serves as the menu's label (the default is the first
element of MENU).
:help HELP
HELP is a string, the help to display for the menu.
In a GUI this is a "tooltip" on the menu button. (Though
in Lucid :help is not shown for the top-level menu bar, only
for sub-menus.)
The rest of the elements in MENU are menu items.
A menu item can be a vector of three elements:
[NAME CALLBACK ENABLE]
NAME is a string--the menu item name.
CALLBACK is a command to run when the item is chosen, or an
expression to evaluate when the item is chosen.
ENABLE is an expression; the item is enabled for selection if the
expression evaluates to a non-nil value.
Alternatively, a menu item may have the form:
[ NAME CALLBACK [ KEYWORD ARG ]... ]
where NAME and CALLBACK have the same meanings as above, and each
optional KEYWORD and ARG pair should be one of the following:
:keys KEYS
KEYS is a string; a keyboard equivalent to the menu item.
This is normally not needed because keyboard equivalents are
usually computed automatically. KEYS is expanded with
`substitute-command-keys' before it is used.
:key-sequence KEYS
KEYS is a hint for speeding up Emacs's first display of the
menu. It should be nil if you know that the menu item has no
keyboard equivalent; otherwise it should be a string or
vector specifying a keyboard equivalent for the menu item.
:active ENABLE
ENABLE is an expression; the item is enabled for selection
whenever this expression's value is non-nil. `:enable' is an
alias for `:active'.
:visible INCLUDE
INCLUDE is an expression; this item is only visible if this
expression has a non-nil value. `:included' is an alias for
`:visible'.
:label FORM
FORM is an expression that is dynamically evaluated and whose
value serves as the menu item's label (the default is NAME).
:suffix FORM
FORM is an expression that is dynamically evaluated and whose
value is concatenated with the menu entry's label.
:style STYLE
STYLE is a symbol describing the type of menu item; it should
be `toggle' (a checkbox), or `radio' (a radio button), or any
other value (meaning an ordinary menu item).
:selected SELECTED
SELECTED is an expression; the checkbox or radio button is
selected whenever the expression's value is non-nil.
:help HELP
HELP is a string, the help to display for the menu item.
Alternatively, a menu item can be a string. Then that string
appears in the menu as unselectable text. A string consisting
solely of dashes is displayed as a menu separator.
Alternatively, a menu item can be a list with the same format as
MENU. This is a submenu.
(fn SYMBOL MAPS DOC MENU)
(defalias 'easy-menu-define '(macro . #[1028 "\300\205\n \301\302F\303\304D\257E\207" [progn defvar nil easy-menu-do-define quote] 11 (#$ . 328)]))
(byte-code "\300\301\302\303#\304\301\305\306#\210\300\301\307\310#\300\207" [function-put easy-menu-define lisp-indent-function defun put edebug-form-spec (symbolp body) doc-string-elt 3] 5)
#@130 Return a binding suitable to pass to `define-key'.
This is expected to be bound to a mouse event.
(fn MENU &optional ITEM-NAME)
(defalias 'easy-menu-binding #[513 "9\205\f \300NK\262\301@\302=\203 A@AA\262\2020 \2060 \303!\203/ \304!\2060 \305BBB\207" [menu-prop menu-item :label keymapp keymap-prompt ""] 7 (#$ . 4496)])
#@29
(fn SYMBOL MAPS DOC MENU)
(defalias 'easy-menu-do-define #[1028 "\300@A\"\203( L\210\301\302\303\304\305\306!\307\"\310 \311&\"\210\312\313\314#\210\315!\2033 C\2024 \211\205b \211@\316\306\317@9\203K @\202Q \320@\227!\"\321@\"#\210A\266\202\2024 \207" [easy-menu-create-menu defalias make-byte-code 257 "\301\3009\203 \302\300\303N\304\"\206 \305\300K!\206 \300\"\207" vconcat vector [x-popup-menu plist-get menu-prop :filter identity] 6 "@e" function-put completion-predicate ignore keymapp define-key menu-bar intern easy-menu-binding] 14 (#$ . 4839)])
#@446 Convert MENU to the right thing to return from a menu filter.
MENU is a menu as computed by `easy-menu-define' or `easy-menu-create-menu' or
a symbol whose value is such a menu.
In Emacs a menu filter must return a menu (a keymap), in XEmacs a filter must
return a menu items list (without menu name and keywords).
This function returns the right thing in the two cases.
If NAME is provided, it is used for the keymap.
(fn MENU &optional NAME)
(defalias 'easy-menu-filter-return #[513 "\300!\204 :\203 \301\206 \302\"\262\202$ \303!\203$ \304!A\262\207" [keymapp easy-menu-create-menu "" vectorp easy-menu-convert-item] 5 (#$ . 5434)])
#@210 Dynamically scoped var to register already used keys in a menu.
If it holds a list, this is expected to be a list of keys already seen in the
menu we're processing. Else it means we're not processing a menu.
(defvar easy-menu-avoid-duplicate-keys t (#$ . 6090))
#@242 Create a menu called MENU-NAME with items described in MENU-ITEMS.
MENU-NAME is a string, the name of the menu. MENU-ITEMS is a list of items
possibly preceded by keyword pairs as described in `easy-menu-define'.
(fn MENU-NAME MENU-ITEMS)
(defalias 'easy-menu-create-menu #[514 "\301!\302\211\211\211\211\211\211\211 \203f A\203f \303\n@\211\262!\203f A@\nAA\262\304\267\210\202 \305\306
#\262\210\202 \211\206G \307\262\210\202 \262\202 \262\202 \211\206\\ \310\262\210\202 \210\202 \311\232?\205\335 \203} \312!\204} \313CB\262\203\217 \312!\204\217 \314BB\262\203\233 \315BB\262\211\203\247 \316BB\262\203\263 \317BB\262\203\274 \202\305 \320 \321\322
\"\"\262 \203\333 \323 \324\"\262 \325 \326 #\210)\207" [easy-menu-avoid-duplicate-keys make-sparse-keymap nil keywordp #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:filter 54 :active 66 :enable 66 :label 77 :help 82 :visible 87 :included 87)) make-closure #[257 "\302\301!\300\"\207" [V0 V1 easy-menu-filter-return] 4 "\n\n(fn MENU)"] 'nil 'nil 'nil easy-menu-always-true-p :visible :enable :filter :help :label append mapcar easy-menu-convert-item easy-menu-make-symbol noexp put menu-prop] 16 (#$ . 6360)])
(defvar easy-menu-button-prefix '((radio . :radio) (toggle . :toggle)))
(defvar easy-menu-converted-items-table (make-hash-table :test 'equal))
#@375 Memoize the value returned by `easy-menu-convert-item-1' called on ITEM.
This makes key-shortcut-caching work a *lot* better when this
conversion is done from within a filter.
This also helps when the NAME of the entry is recreated each time:
since the menu is built and traversed separately, the lookup
would always fail because the key is `equal' but not `eq'.
(fn ITEM)
(defalias 'easy-menu-convert-item #[257 "\302\"\211\206 \303!\211\242 <\2036 \2119\2036 \211 >\2032 \304\305\306\307! G#!\262\211AB\262\202 \211 B\204@ \310#\210\207" [easy-menu-converted-items-table easy-menu-avoid-duplicate-keys gethash easy-menu-convert-item-1 intern format "%s-%d" symbol-name puthash] 9 (#$ . 7786)])
#@126 Parse an item description and convert it to a menu keymap element.
ITEM defines an item as in `easy-menu-define'.
(fn ITEM)
(defalias 'easy-menu-convert-item-1 #[257 "\301\211\211\211\211;\203 \262\202I:\203\\ @\211\262\262A\262\302!\204, \303\"\262\2046 \304\262\202I9\203I\305N\211\262\203I@\306=\203U A@\262AA\262K\262\202I\307!\203EG\211\310V\203v \310H\206w \311\202w \304\312H\211\2629?\301\211\n\313H\211\262\262\203\225 \314 !\262 \315!\203\310\301\211\211\211\211\211\211\211\262\f\fV\203H\262TH\262\310\\\262\316\267\202\246 \206\317 \317\262\202\246 \262\n\304\262 \202\246 \262\301\262\202\246 \262\202\246 \206\361 \320\262\f\202\246 \321BB\262\202\246 \262\202\246 \262\202\246 \206\322\262\202\246 \202\246 \203X;\203>;\2033\323Q\202V\324\323PE\202V;\203O\324\323PE\202V\324\323F\262\325=\203y;\203l\326\327Q\202t\324\326\330BBB\262\202\221\203\221\236\211\262\203\221\331ABBB\262\211;\203\355\332\333\"\203\336\313\224\312\224W\205\252\211\313\312\224O\312\225\313\225W\205\267\312\225\301O\334\335\310\"!\204\305\205\310B\262\204\326=?\205\331\211B\266\204\202\341\301\262 \211\203\355\336BB\262\203
\337!\204
\340\232\203\304\262\266\202\341BB\262\266\203!\337!\204!\342BB\262\204)\211\203@\2038;\2048\307!\203@\343BB\262\266\202I\344\345!\210\211;\203T\334!\262\211?\205h\346\205fBBBB\207" [easy-menu-button-prefix nil keymapp easy-menu-create-menu t menu-prop :label vectorp 2 'nil 1 0 easy-menu-make-symbol keywordp #s(hash-table size 11 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:visible 202 :included 202 :key-sequence 212 :keys 221 :label 230 :enable 236 :active 236 :help 246 :suffix 258 :style 264 :selected 270)) 'nil 'nil :help 'nil " " concat button "[" "]" ("]") :button string-match "^[^\\]*\\(\\\\\\[\\([^]]+\\)]\\)[^\\]*$" intern match-string :keys easy-menu-always-true-p 'nil :visible :enable :key-sequence error "Invalid menu item in easymenu" menu-item] 25 (#$ . 8505)])
#@621 Add binding in MENU for KEY => ITEM. Similar to `define-key-after'.
If KEY is not nil then delete any duplications.
If ITEM is nil, then delete the definition of KEY.
Optional argument BEFORE is nil or a key in MENU. If BEFORE is not nil,
put binding before the item in MENU named BEFORE; otherwise,
if a binding for KEY is already present in MENU, just change it;
otherwise put the new binding last in MENU.
BEFORE can be either a string (menu item name) or a symbol
(the fake function key for the menu item).
KEY does not have to be a symbol, and comparison is done with equal.
(fn MENU KEY ITEM &optional BEFORE)
(defalias 'easy-menu-define-key #[1027 "9\203\n \300!\262?\301\211\211?\205\256 A?\206 \302A!\211\262\2043 \203[ \303A@\"\203[ \204: \304\262\204S BAB\241\210\304\262A\262A\262\202 \203\246 A@\242\232\203\246 \204\212 \203\224 AA\211\262\203\224 \302!\204\224 \303@\"\204\224 \211AA\241\210\202 A@\241\210\304\262A\262\202 A\262\202 \207" [indirect-function nil keymapp easy-menu-name-match t] 10 (#$ . 10667)])
#@170 Return t if NAME is the name of menu item ITEM.
NAME can be either a string, or a symbol.
ITEM should be a keymap binding of the form (KEY . MENU-ITEM).
(fn NAME ITEM)
(defalias 'easy-menu-name-match #[514 "\211:\205- 9\203 \211\242=\207;\205- \3001 \301\"0\202$ \210\202'