]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/imenu.el (imenu--truncate-items): Fix subalist checking.
authorLeo Liu <sdl.web@gmail.com>
Wed, 30 Jan 2013 17:57:54 +0000 (01:57 +0800)
committerLeo Liu <sdl.web@gmail.com>
Wed, 30 Jan 2013 17:57:54 +0000 (01:57 +0800)
Fixes: debbugs:13576
lisp/ChangeLog
lisp/imenu.el

index e46e66651ca8bce226bb799768604c2efac124e5..31580a50b021ff827bb5820430669fe510677376 100644 (file)
@@ -1,3 +1,8 @@
+2013-01-30  Leo Liu  <sdl.web@gmail.com>
+
+       * imenu.el (imenu--truncate-items): Fix subalist checking.
+       (Bug#13576)
+
 2013-01-30  Glenn Morris  <rgm@gnu.org>
 
        * mouse.el (mouse-drag-line): Avoid pushing same event onto
index 435d97fcdb4b5e486f9b85af1c47198745a58253..80fc441c896a97e9f9ce94ca540e8ce37d5711d2 100644 (file)
@@ -555,16 +555,14 @@ NOT share structure with ALIST."
 
 (defun imenu--truncate-items (menulist)
   "Truncate all strings in MENULIST to `imenu-max-item-length'."
-  (mapcar (lambda (item)
-            (cond
-             ((consp (cdr item))
-              (imenu--truncate-items (cdr item)))
-             ;; truncate if necessary
-             ((and (numberp imenu-max-item-length)
-                   (> (length (car item)) imenu-max-item-length))
-              (setcar item (substring (car item) 0 imenu-max-item-length)))))
-         menulist))
-
+  (mapc (lambda (item)
+         ;; truncate if necessary
+         (when (and (numberp imenu-max-item-length)
+                    (> (length (car item)) imenu-max-item-length))
+           (setcar item (substring (car item) 0 imenu-max-item-length)))
+         (when (imenu--subalist-p item)
+           (imenu--truncate-items (cdr item))))
+       menulist))
 
 (defun imenu--make-index-alist (&optional noerror)
   "Create an index alist for the definitions in the current buffer.