Don't copy the sequence since we're already modifying it elsewhere.
(imenu--create-keymap): Rename from imenu--create-keymap-1.
Add optional `cmd' argument. Remove unused var `counter'.
(imenu-update-menubar): Use the new arg to get the old behavior.
(imenu--mouse-menu): Don't use the new arg to recover the lost behavior.
(imenu-use-popup-menu, imenu-eager-completion-buffer): New vars.
(imenu-space-replacement): Allow nil value.
(imenu--completion-buffer): Use new vars and simplify.
Fix handling of minibuffer-setup-hook.
Use minibuffer-completion-help instead of rolling our own.
(imenu-choose-buffer-index): Use the new var.
(imenu--create-keymap-2): Remove.
(imenu--create-keymap-1): Simplify, remove third argument.
(imenu--generic-function): Use dolist.
(imenu-find-default): New function.
(imenu--completion-buffer): Use it.
(imenu--mouse-menu): Use popup-menu.
(imenu--menubar-select): Return t rather than calling imenu.
(imenu--generic-function): Avoid mapcar.
(imenu--replace-spaces): Function removed.
(imenu--completion-buffer): Use subst-char-in-string.
(imenu-add-to-menubar): Use keymap inheritance.
(defgroup imenu): Add :link.
(imenu-use-markers, imenu-auto-rescan-maxout, imenu-generic-expression)
(imenu--make-index-alist, imenu-default-goto-function): Doc fixes.
(imenu-max-item-length, imenu-sort-function)
(imenu-scanning-message): Custom tweak.
(imenu-progress-message): Use real backquote syntax.
(imenu--in-alist): Unused function deleted.
(imenu--flatten-index-alist): Likewise.
(imenu-case-fold-search): Add autoload cookie.
(imenu--completion-buffer): Offer function at point as default.
(imenu--subalist-p): Don't use caadr.
(imenu): Don't use caddr.
(imenu-add-menubar-index): New function.
Truncate imenu items.
Make use of markers or integers an option.
(imenu-use-markers, imenu-max-item-length): New variables.
(imenu-max-items): Doc fix.
(imenu-example--name-and-position): Handle imenu-use-markers.
(imenu-default-create-index-function): Likewise.
(imenu--generic-function): Likewise.
(imenu--truncate-items): New function.
(imenu--make-index-alist): Call imenu--truncate-items.
(imenu--generic-function): Fixed probably a typo: named appeared
twice in an item. Put function after name and beg in a special
item because a normal item has name and beg (for orthogonality).
(imenu-add-to-menubar): First test to see if the mode supports imenu.
(imenu--menubar-select): Use the defined variable imenu-rescan-item.
(imenu-default-goto-function): New subroutine, broken out of `imenu'.
(imenu-default-goto-function): New variable.
(imenu): Made it use the above function, via that variable.