changeset 32780:92d4e6584238

(imenu--create-keymap-2): Build menu with menu-item using :key-sequence, making it much more usable. Use nconc, not append. (imenu--create-keymap-1): Avoid append.
author Dave Love <fx@gnu.org>
date Mon, 23 Oct 2000 17:22:58 +0000
parents eeb8d2b22eaa
children 26c064375184
files lisp/imenu.el
diffstat 1 files changed, 14 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/imenu.el	Mon Oct 23 15:50:51 2000 +0000
+++ b/lisp/imenu.el	Mon Oct 23 17:22:58 2000 +0000
@@ -631,26 +631,26 @@
 (defun imenu--create-keymap-2 (alist counter &optional commands)
   (let ((map nil))
     (mapcar
-     (function
-      (lambda (item)
-	(cond
-	 ((imenu--subalist-p item)
-	  (append (list (setq counter (1+ counter))
-			(car item) 'keymap (car item))
-		  (imenu--create-keymap-2 (cdr item) (+ counter 10) commands)))
-	 (t
-	  (let ((end (if commands `(lambda () (interactive)
-				     (imenu--menubar-select ',item))
-		       (cons '(nil) item))))
-	    (cons (car item)
-		  (cons (car item) end)))))))
+     (lambda (item)
+       (cond
+	((imenu--subalist-p item)
+	 (nconc (list (setq counter (1+ counter))
+		      (car item) 'keymap (car item))
+		(imenu--create-keymap-2 (cdr item) (+ counter 10) commands)))
+	(t
+	 (let ((end (if commands `(lambda ()
+				    (interactive)
+				    (imenu--menubar-select ',item))
+		      (cons '(nil) item))))
+	   (cons (car item)
+		 (list 'menu-item (car item) end :key-sequence nil))))))
      alist)))
 
 ;; If COMMANDS is non-nil, make a real keymap
 ;; with a real command used as the definition.
 ;; If it is nil, make something suitable for x-popup-menu.
 (defun imenu--create-keymap-1 (title alist &optional commands)
-  (append (list 'keymap title) (imenu--create-keymap-2 alist 0 commands)))
+  (cons 'keymap (cons title (imenu--create-keymap-2 alist 0 commands))))
 
 (defun imenu--in-alist (str alist)
   "Check whether the string STR is contained in multi-level ALIST."