;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Tue Jul 21 22:29:16 1998
;;; from file /gd/gnu/emacs/lisp/imenu.el
;;; in Emacs version 20.2.97.5
;;; with bytecomp version 2.48
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`imenu.el' was compiled for Emacs 19.29 or later"))

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


(custom-declare-group 'imenu nil "Mode-specific buffer indexes." :group 'matching :group 'frames :group 'convenience :link '(custom-manual "(elisp)Imenu"))
#@264 *Non-nil means use markers instead of integers for Imenu buffer positions.

Setting this to nil makes Imenu work a little faster but editing the
buffer will make the generated index positions wrong.

This might not yet be honored by all index-building functions.
(custom-declare-variable 'imenu-use-markers 't '(#$ . -755) :type 'boolean :group 'imenu)
#@54 *If a number, truncate Imenu entries to that length.
(custom-declare-variable 'imenu-max-item-length '60 '(#$ . -1114) :type '(choice integer (const :tag "Unlimited")) :group 'imenu)
#@56 *Non-nil means Imenu should always rescan the buffers.
(custom-declare-variable 'imenu-auto-rescan 'nil '(#$ . -1303) :type 'boolean :group 'imenu)
#@108 *Imenu auto-rescan is disabled in buffers larger than this size (in bytes).
This variable is buffer-local.
(custom-declare-variable 'imenu-auto-rescan-maxout '60000 '(#$ . -1458) :type 'integer :group 'imenu)
#@324 *Set this to non-nil for displaying the index in a completion buffer.

`never' means never automatically display a listing of any kind.
A value of nil (the default) means display the index as a mouse menu
if the mouse was used to invoke `imenu'.
Another non-nil value means always display the index in a completion buffer.
(custom-declare-variable 'imenu-always-use-completion-buffer-p 'nil '(#$ . -1674) :type '(choice (const :tag "On Mouse" nil) (const :tag "Never" never) (other :tag "Always" t)) :group 'imenu)
#@501 *The function to use for sorting the index mouse-menu.

Affects only the mouse index menu.

Set this to nil if you don't want any sorting (faster).
The items in the menu are then presented in the order they were found
in the buffer.

Set it to `imenu--sort-by-name' if you want alphabetic sorting.

The function should take two arguments and return T if the first
element should come before the second.  The arguments are cons cells;
(NAME . POSITION).  Look at `imenu--sort-by-name' for an example.
(custom-declare-variable 'imenu-sort-function 'nil '(#$ . -2196) :type '(choice (const :tag "No sorting" nil) (const :tag "Sort by name" 'imenu--sort-by-name) (function :tag "Another function")) :group 'imenu)
#@56 *Maximum number of elements in a mouse menu for Imenu.
(custom-declare-variable 'imenu-max-items '25 '(#$ . -2912) :type 'integer :group 'imenu)
#@313 *Progress message during the index scanning of the buffer.
If non-nil, user gets a message during the scanning of the buffer.

Relevant only if the mode-specific function that creates the buffer
index use `imenu-progress-message', and not useful if that is fast, in
which case you might as well set this to nil.
(custom-declare-variable 'imenu-scanning-message '"Scanning buffer for index (%3d%%)" '(#$ . -3064) :type '(choice string (const :tag "None" nil)) :group 'imenu)
#@140 *The replacement string for spaces in index names.
Used when presenting the index in a completion buffer to make the
names work as tokens.
(custom-declare-variable 'imenu-space-replacement '"." '(#$ . -3545) :type 'string :group 'imenu)
#@150 *The separator between index names of different levels.
Used for making mouse-menu titles and for flattening nested indexes
with name concatenation.
(custom-declare-variable 'imenu-level-separator '":" '(#$ . -3789) :type 'string :group 'imenu)
#@1525 The regex pattern to use for creating a buffer index.

If non-nil this pattern is passed to `imenu--generic-function'
to create a buffer index.

The value should be an alist with elements that look like this:
 (MENU-TITLE REGEXP INDEX)
or like this:
 (MENU-TITLE REGEXP INDEX FUNCTION ARGUMENTS...)
with zero or more ARGUMENTS.  The former format creates a simple element in
the index alist when it matches; the latter creates a special element
of the form  (NAME FUNCTION POSITION-MARKER ARGUMENTS...)
with FUNCTION and ARGUMENTS beiong copied from `imenu-generic-expression'.

MENU-TITLE is a string used as the title for the submenu or nil if the
entries are not nested.

REGEXP is a regexp that should match a construct in the buffer that is
to be displayed in the menu; i.e., function or variable definitions,
etc.  It contains a substring which is the name to appear in the
menu.  See the info section on Regexps for more information.

INDEX points to the substring in REGEXP that contains the name (of the
function, variable or type) that is to appear in the menu.

The variable is buffer-local.

The variable `imenu-case-fold-search' determines whether or not the
regexp matches are case sensitive. and `imenu-syntax-alist' can be
used to alter the syntax table for the search.

For example, see the value of `lisp-imenu-generic-expression' used by
`lisp-mode' and `emacs-lisp-mode' with `imenu-syntax-alist' set
locally to give the characters which normally have "punctuation"
syntax "word" syntax during matching.
(defvar imenu-generic-expression nil (#$ . 4042))
(make-variable-buffer-local 'imenu-generic-expression)
#@535 The function to use for creating a buffer index.

It should be a function that takes no arguments and returns an index
of the current buffer as an alist.

Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
Special elements look like (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...).
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).
The function `imenu--subalist-p' tests an element and returns t
if it is a sub-alist.

This function is called within a `save-excursion'.

The variable is buffer-local.
(defvar imenu-create-index-function 'imenu-default-create-index-function (#$ . 5678))
(make-variable-buffer-local 'imenu-create-index-function)
#@414 Function for finding the next index position.

If `imenu-create-index-function' is set to
`imenu-default-create-index-function', then you must set this variable
to a function that will find the next index, looking backwards in the
file.

The function should leave point at the place to be connected to the
index and it should return nil when it doesn't find another index.

This variable is local in all buffers.
(defvar imenu-prev-index-position-function 'beginning-of-defun (#$ . 6363))
(make-variable-buffer-local 'imenu-prev-index-position-function)
#@284 Function for extracting the index item name, given a position.

This function is called after `imenu-prev-index-position-function'
finds a position for an index item, with point at that position.
It should return the name for that index item.

This variable is local in all buffers.
(defvar imenu-extract-index-name-function nil (#$ . 6924))
(make-variable-buffer-local 'imenu-extract-index-name-function)
#@135 The default function called when selecting an Imenu item.
The function in this variable is called when selecting a normal index-item.
(defvar imenu-default-goto-function 'imenu-default-goto-function (#$ . 7337))
(make-variable-buffer-local 'imenu-default-goto-function)
(defalias 'imenu--subalist-p #[(item) "A:\205 A@<\205 A@@\301=?\207" [item lambda] 2])
(defalias 'imenu-progress-message '(macro . #[(prevpos &optional relpos reverse) "\303\304\305\306\203\f \202 \307	DDC\310\203 \311\202! \312\306\313\314\nEE\315\316\317\n\320BBEEEE\207" [relpos reverse prevpos and imenu-scanning-message let pos imenu--relative-position if t > + 5 progn (message imenu-scanning-message pos) setq (pos)] 11]))
(defalias 'imenu-example--name-and-position #[nil "\212\303\304!\210\203 \305 \202 `\303 \210`\211	{\n+B\207" [imenu-use-markers end beg forward-sexp -1 point-marker] 3])
(defalias 'imenu-example--lisp-extract-index-name #[nil "\301 \302\216\303\304!\205 \305\306\307\217*\207" [save-match-data-internal match-data ((set-match-data save-match-data-internal)) looking-at "(def" nil (byte-code "\302\303!\210\304\305!\210`\304\306!\210`\211{*\207" [end beg down-list 1 forward-sexp 2 -1] 4) ((error))] 3])
(defalias 'imenu-example--create-lisp-index #[nil "\306\211\211\211\211db\210\203 \307\310\"\210)\311 \203\247 \203> \312\313!\211\314\\V\203= \310\"\210)\315  \316\216\317\320!\203\243 \212\321\322!\210\317\323!\203a \324\325!\210\326 B\202\242 \317\327!\203s \324\325!\210\326 \fB\202\242 \317\330!\203\231 \324\325!\210`Sf\331U\203\221 \324\332!\210\321\322!\210\324\322!\210\326 \nB\202\242 \324\325!\210\326 	B)*\202 \203\270 \333\310\"\210)\203\302 \334B\fB\n\203\314 \335\nB\fB	\203\326 \336	B\fB\f-\207" [prev-pos index-unknown-alist index-type-alist index-var-alist index-alist imenu-scanning-message nil 0 message beginning-of-defun imenu--relative-position t 5 match-data ((set-match-data save-match-data-internal)) looking-at "(def" down-list 1 "def\\(var\\|const\\)" forward-sexp 2 imenu-example--name-and-position "def\\(un\\|subst\\|macro\\|advice\\)" "def\\(type\\|struct\\|class\\|ine-condition\\)" 41 -1 100 "Variables" "Types" "Syntax-unknown" pos save-match-data-internal] 6])
(byte-code "\302\300!\204 \303\300	B\302\207" [imenu-example--function-name-regexp-c current-load-list boundp "^[a-zA-Z0-9]+[ 	]?\\([a-zA-Z0-9_*]+[ 	]+\\)?\\([a-zA-Z0-9_*]+[ 	]+\\)?\\([*&]+[ 	]*\\)?\\([a-zA-Z0-9_*]+\\)[ 	]*("] 2)
(defalias 'imenu-example--create-c-index #[(&optional regexp) "\306\211\211eb\210\203 \307\310\f\"\210\f)\311 \312\216\313\206$ \306\314#\203^ \203B \315\306!\211	\316\\V\203A \310\f\"\210\f)\317\320!\210\212\321`\320\"b\210g)\322=\204 \323 \nB\202 *\203m \324\310\f\"\210\f)\n\237+\207" [char prev-pos index-alist imenu-scanning-message pos save-match-data-internal nil 0 message match-data ((set-match-data save-match-data-internal)) re-search-forward t imenu--relative-position 5 backward-up-list 1 scan-sexps 59 imenu-example--name-and-position 100 regexp imenu-example--function-name-regexp-c] 5])
(byte-code "\302\300	B\300\207" [imenu--rescan-item current-load-list ("*Rescan*" . -99)] 2)
#@313 The buffer index computed for this buffer in Imenu.
Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
Special elements look like (INDEX-NAME INDEX-POSITION FUNCTION ARGUMENTS...).
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).

This variable is local in all buffers, once set.
(defvar imenu--index-alist nil (#$ . 10568))
(byte-code "\303\304!\210\305\300!\204\f \306\300	B\303\300!\210\305\302!\204 \306\302	B\306\207" [imenu--last-menubar-index-alist current-load-list imenu--history-list make-variable-buffer-local imenu--index-alist boundp nil] 2)
(defalias 'imenu--sort-by-name #[(item1 item2) "@	@\231\207" [item1 item2] 2])
(defalias 'imenu--relative-position #[(&optional reverse) "`\303 \n\203 	Z\304V\203 	S\305\245\306]\245\202& 	S\305_\306]\245*\207" [total pos reverse buffer-size 50000 100 1] 3])
(defalias 'imenu--split #[(list n) "\306\211\307\f\203) \f\211A@\nB	T\211U\203 \n\237B\307\306\202 \n\2032 \n\237B\237,\207" [list i sublist result remain n nil 0] 5])
(defalias 'imenu--split-menu #[(menulist title) "\306\211\n>\203 \n\306B\307\n\"\211\2032 \310@!\203+ @	B\307@\"A\211\204 \f\203_ \311\306:\203N \211A@B\202< \205[ \237\241\210*\f\"GV\203t \312\313\314\315\"\")	\237\244*B\207" [tail keep-at-top imenu--rescan-item menulist imenu-sort-function oldlist nil delq imenu--subalist-p sort 0 mapcar #[(menu) "\301\302@@\"B\207" [menu format "From: %s"] 3] imenu--split res imenu-max-items count title] 6])
(defalias 'imenu--split-submenus #[(alist) "\301\302\"\207" [alist mapcar #[(elt) ":\203 @;\203 A<\203 \301A@\"\207\207" [elt imenu--split-menu] 3]] 3])
(defalias 'imenu--truncate-items #[(menulist) "\301\302\"\207" [menulist mapcar #[(item) "A:\203 \302A!\207	\247\205 @G	V\205 \211@\303	O\240\207" [item imenu-max-item-length imenu--truncate-items 0] 4]] 3])
#@565 Create an index-alist for the definitions in the current buffer.

Report an error if the list is empty unless NOERROR is supplied and
non-nil.

Simple elements in the alist look like (INDEX-NAME . INDEX-POSITION).
Special elements look like (INDEX-NAME FUNCTION ARGUMENTS...).
A nested sub-alist element looks like (INDEX-NAME SUB-ALIST).
The function `imenu--subalist-p' tests an element and returns t
if it is a sub-alist.

There is one simple element with negative POSITION; that's intended
as a way for the user to ask to recalculate the buffer's index alist.
(defalias 'imenu--make-index-alist #[(&optional noerror) "\203 	\203 	\203 \306 \nV\204 \212\214~\210 *\307!\210\204+ \f\204+ \310\311!\210\2042 \312CB\207" [imenu--index-alist imenu-auto-rescan imenu-auto-rescan-maxout imenu-create-index-function noerror imenu--rescan-item buffer-size imenu--truncate-items error "No items suitable for an index found in this buffer" nil] 2 (#$ . 12501)])
(byte-code "\301B\301\207" [current-load-list imenu--cleanup-seen] 2)
(defalias 'imenu--cleanup #[(&optional alist) "\203 	B\202 \n\211C\205 \303\304\"\205 \305\207" [alist imenu--cleanup-seen imenu--index-alist mapcar #[(item) "\302A!\203 A\303\211\223\207A	>\206 \304!\205 \305A!\207" [item imenu--cleanup-seen markerp nil imenu--subalist-p imenu--cleanup] 3] t] 4])
(defalias 'imenu--create-keymap-2 #[(alist counter &optional commands) "\302\303\304	\")\207" [map alist nil mapcar #[(item) "\304!\203 \305	T\211@\306@F\307A	\310\\\n#\"\207\n\203+ \311\312\313\314\315DDF\202. \316B@@)BB\207" [item counter commands end imenu--subalist-p append keymap imenu--create-keymap-2 10 lambda nil (interactive) imenu--menubar-select quote (nil)] 6]] 3])
(defalias 'imenu--create-keymap-1 #[(title alist &optional commands) "\303\304D\305	\306\n#\"\207" [title alist commands append keymap imenu--create-keymap-2 0] 6])
#@65 Check whether the string STR is contained in multi-level ALIST.
(defalias 'imenu--in-alist #[(str alist) "\306\211\211\211\306\f\203; \f@\211A\fA@	<\203. \307	\"\211\203\n \306\211\202 \n\230\203\n \306\202\n ,\207" [res tail head elt alist str nil imenu--in-alist] 5 (#$ . 14424)])
#@438 Alist of syntax table modifiers to use while executing `imenu--generic-function'.

The car of the assocs may be either a character or a string and the
cdr is a syntax description appropriate fo `modify-syntax-entry'.  For
a string, all the characters in the string get the specified syntax.

This is typically used to give word syntax to characters which
normally have symbol syntax to simplify `imenu-expression'
and speed-up matching.
(defvar imenu-syntax-alist nil (#$ . 14733))
(make-variable-buffer-local 'imenu-syntax-alist)
#@223 *Wrapper for index searching functions.

Moves point to end of buffer and then repeatedly calls
`imenu-prev-index-position-function' and `imenu-extract-index-name-function'.
Their results are gathered into an index alist.
(defalias 'imenu-default-create-index-function #[nil "\203s 	\203s \306\211\211db\210\203\" \307\310\"\210) \203_ \203B \311\312!\211\313\\V\203A \310\"\210)\212	 )\n;\203\" \n\203W \314 \202X `B\fB\202\" \203p \315\310\"\210)\f+\207\203} \316!\207\317\320!\207" [imenu-prev-index-position-function imenu-extract-index-name-function name prev-pos index-alist imenu-scanning-message nil 0 message imenu--relative-position t 5 point-marker 100 imenu--generic-function error "This buffer cannot use `imenu-default-create-index-function'" pos imenu-use-markers imenu-generic-expression] 4 (#$ . -15271)])
(defalias 'imenu--replace-spaces #[(name replacement) "\301\302\303#\207" [name mapconcat #[(ch) "\302\303\"\203	 	\207\304!\207" [ch replacement char-equal 32 char-to-string] 3] ""] 4])
#@295 Defines whether `imenu--generic-function' should fold case when matching.

This buffer-local variable should be set (only) by initialization code
for modes which use `imenu--generic-function'.  If it is not set, that
function will use the current value of `case-fold-search' to match
patterns.
(defvar imenu-case-fold-search t (#$ . 16332))
(make-variable-buffer-local 'imenu-case-fold-search)
#@910 Return an index of the current buffer as an alist.

PATTERNS is an alist with elements that look like this:
 (MENU-TITLE REGEXP INDEX).

MENU-TITLE is a string used as the title for the submenu or nil if the
entries are not nested.

REGEXP is a regexp that should match a construct in the buffer that is
to be displayed in the menu; i.e., function or variable definitions,
etc.  It contains a substring which is the name to appear in the
menu.  See the info section on Regexps for more information.

INDEX points to the substring in REGEXP that contains the name (of the
function, variable or type) that is to appear in the menu.

See `lisp-imenu-generic-expression' for an example of PATTERNS.

Returns an index of the current buffer as an alist.  The elements in
the alist look like: (INDEX-NAME . INDEX-POSITION).  They may also be
nested index lists like (INDEX-NAME . INDEX-ALIST) depending on
PATTERNS.
(defalias 'imenu--generic-function #[(patterns) "\306C\307\211\310 \311\310 !	\n\203< \n@@\247\203. \312\n@@\n@A#\210\2025 \313\314\n@@\"\210\nA\211\204 db\210\203S \315\316\"\210)\307\216\317 \320\216\321!\210\313\322\"\210\321\f!\210+\203~ \323\316\"\210)\307\236\324\324\306\"\"A\244.\207" [imenu-case-fold-search imenu-syntax-alist slist table old-table case-fold-search dummy nil syntax-table copy-syntax-table modify-syntax-entry mapcar #[(c) "\303	@A\n#\207" [c slist table modify-syntax-entry] 4] 0 message match-data ((set-match-data save-match-data-internal)) set-syntax-table #[(pat) "@A@\3068\3078\310\233db\210\311\f\312\313#\205\224 \203= \314\313!\211\315\\V\203< \316\"\210)\224\317\"\204P CB\203] \320 \312\223\n\203m \321!\nE	\244\202s \321!B\317\"A\211\235\204\220 \317\"B\241\210*\202 -\207" [pat rest function index regexp menu-title 2 3 4 re-search-backward nil t imenu--relative-position 5 message assoc make-marker match-string-no-properties imenu-scanning-message pos prev-pos beg index-alist imenu-use-markers menu item] 7] 100 delq beg prev-pos index-alist imenu-scanning-message pos save-match-data-internal patterns main-element] 8 (#$ . 16733)])
#@129 Let the user select from INDEX-ALIST in a completion buffer with PROMPT.

Returns t for rescan and otherwise a position number.
(defalias 'imenu--completion-buffer #[(index-alist &optional prompt) "\306\307!\310\311\312\"\f\204$ \203\" \313	\"\203\" \314\315\"\202$ \316\317=\2038 \320\f	\310\321\310\322&\202; \323\213\210;\204D \310\202d @\230\203P \321\202d \324	\"\325\n!\203c \326\nA\f\"\202d \n+\207" [index-alist prepared-index-alist choice name prompt imenu-always-use-completion-buffer-p thing-at-point symbol nil mapcar #[(item) "\302@	\"AB\207" [item imenu-space-replacement imenu--replace-spaces] 3] imenu--in-alist format "Index item (default %s): " "Index item: " never completing-read t imenu--history-list ((byte-code "\304\220\305\306\307\"!\221\210\310\311\n\312\313\312\314&)\312\207" [prepared-index-alist minibuffer-setup-hook prompt name "*Completions*" display-completion-list all-completions "" #[nil "p\212\302q\210\211*\207" [buffer completion-reference-buffer "*Completions*"] 2] completing-read nil t imenu--history-list] 8)) assoc imenu--subalist-p imenu--completion-buffer imenu--rescan-item] 8 (#$ . 18944)])
#@198 Let the user select from a buffer index from a mouse menu.

INDEX-ALIST is the buffer index and EVENT is a mouse event.

Returns t for rescan and otherwise an element or subelement of INDEX-ALIST.
(defalias 'imenu--mouse-menu #[(index-alist event &optional title) "\306!\307	\206\f \310 \"\311\312\n@\313\nAGW\203  \nA\202$ \nA@A\"\314\f\n\"\211\311=\2035 \202\252 <\203l @\247\203l GS8;\203l \n\203\\ \315@\"A\211\204O @@\230\206h \316\233)\202\252 :\203\214 @;\203\214 A\204\214 @@\230\206\252 @\236\202\252 <\205\252 \317\f	\203\244 	\320\"@Q\202\251 \320\"@#*\207" [index-alist title menu position event final imenu--split-submenus imenu--split-menu buffer-name nil imenu--create-keymap-1 1 x-popup-menu assoc 3 imenu--mouse-menu rassq imenu--rescan-item imenu-level-separator] 9 (#$ . 20121)])
#@619 Let the user select from a buffer index and return the chosen index.

If the user originally activated this function with the mouse, a mouse
menu is used.  Otherwise a completion buffer is used and the user is
prompted with PROMPT.

If you call this function with index alist ALIST, then it lets the user
select from ALIST.

With no index alist ALIST, it calls `imenu--make-index-alist' to
create the index alist.

If `imenu-always-use-completion-buffer-p' is non-nil, then the
completion buffer is always used, no matter if the mouse was used or
not.

The returned value is of the form (INDEX-NAME . INDEX-POSITION).
(defalias 'imenu-choose-buffer-index #[(&optional prompt alist) "\306<\307\n\203/ \310\232\204/ \211A@)\211@)\311!\204. \203. \312!\210)	\307=\203i \203? \202A \313 \n\203R \204R \314\"\202W \315\"\211\307=\203/ \316 \203/ \306\202/ 	+\207" [last-nonmenu-event result mouse-triggered index-alist event position nil t (menu-bar) framep select-window imenu--make-index-alist imenu--mouse-menu imenu--completion-buffer imenu--cleanup window alist imenu-always-use-completion-buffer-p prompt imenu--index-alist] 4 (#$ . 20966)])
#@157 Add an `imenu' entry to the menu bar for the current buffer.
NAME is a string used to name the menu bar item.
See the command `imenu' for more information.
(defalias 'imenu-add-to-menubar #[(name) "\203 	\204 \n\204 \306=\204A \307 \310\311 \312\"\313\314\315\307 \f\"#\210\313\316\307\317!\307 \244B#\210\320\315\311 \"!\210\321\322\323\"*\207\324\325\"\207" [imenu-prev-index-position-function imenu-extract-index-name-function imenu-generic-expression imenu-create-index-function menu-bar newmap imenu-default-create-index-function make-sparse-keymap lookup-key current-local-map [menu-bar] define-key [menu-bar] append [menu-bar index] "Imenu" use-local-map add-hook menu-bar-update-hook imenu-update-menubar error "The mode `%s' does not support Imenu" name mode-name] 6 (#$ . 22147) "sImenu menu item name: "])
#@143 Add an Imenu "Index" entry on the menu bar for the current buffer.

A trivial interface to `imenu-add-to-menubar' suitable for use in a hook.
(defalias 'imenu-add-menubar-index #[nil "\300\301!\207" [imenu-add-to-menubar "Index"] 2 (#$ . 22985) nil])
(byte-code "\302\300!\204 \303\300	B\303\207" [imenu-buffer-menubar current-load-list boundp nil] 2)
(defalias 'imenu-update-menubar #[nil "\305 \205N \306\307\305 \310\"!\205N \311\312!\211	\232\206M \313\211\211\314!\315\316 \"\317\f@\320\fAGW\203; \fA\202? \fA@A\312#\307\305 \321\"\211A\241+)\207" [index-alist imenu--last-menubar-index-alist old menu1 menu current-local-map keymapp lookup-key [menu-bar index] imenu--make-index-alist t nil imenu--split-submenus imenu--split-menu buffer-name imenu--create-keymap-1 1 [menu-bar index]] 5])
#@71 Use Imenu to select the function or variable named in this menu item.
(defalias 'imenu--menubar-select #[(item) "	\232\203 \303 \210\304\305 \207\306!\207" [item imenu--rescan-item imenu--index-alist imenu--cleanup nil imenu-update-menubar imenu] 2 (#$ . 23803)])
#@219 Move the point to the given position.

NAME is ignored.  POSITION is where to move.  REST is also ignored.
The ignored args just make this function have the same interface as a
function placed in a special index-item.
(defalias 'imenu-default-goto-function #[(name position &optional rest) "eW\204\f dV\203 ~\210b\207" [position] 2 (#$ . 24078)])
#@163 Jump to a place in the buffer chosen using a buffer menu or mouse menu.
INDEX-ITEM specifies the position.  See `imenu-choose-buffer-index'
for more information.
(defalias 'imenu #[(index-item) ";\203 \306\307 \"\205? \310 \210A<\211\203  \3118\202! \n	\203, A@\202. A	\2056 AA\312@\f$,\207" [index-item is-special-item imenu-default-goto-function function position rest assoc imenu--make-index-alist push-mark 2 apply] 6 (#$ . 24436) (list (imenu-choose-buffer-index))])
(provide 'imenu)
