unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items
@ 2013-01-28 15:09 Leo Liu
  2013-01-28 16:30 ` Drew Adams
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Leo Liu @ 2013-01-28 15:09 UTC (permalink / raw)
  To: 13576

According to documentation on imenu--index-alist, a special item looks
like:

        (INDEX-NAME POSITION FUNCTION ARGUMENTS...)

which fails imenu--truncate-items.

diff --git a/lisp/imenu.el b/lisp/imenu.el
index 80dacf93..649fc0a7 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -557,7 +557,7 @@ (defun imenu--truncate-items (menulist)
   "Truncate all strings in MENULIST to `imenu-max-item-length'."
   (mapcar (lambda (item)
             (cond
-             ((consp (cdr item))
+             ((imenu--subalist-p item)
               (imenu--truncate-items (cdr item)))
              ;; truncate if necessary
              ((and (numberp imenu-max-item-length)





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items
  2013-01-28 15:09 bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items Leo Liu
@ 2013-01-28 16:30 ` Drew Adams
  2013-01-29  2:25 ` Stefan Monnier
  2013-01-30 18:01 ` Leo Liu
  2 siblings, 0 replies; 5+ messages in thread
From: Drew Adams @ 2013-01-28 16:30 UTC (permalink / raw)
  To: 'Leo Liu', 13576

Perhaps related to bug #12717?

> According to documentation on imenu--index-alist, a special item looks
> like: (INDEX-NAME POSITION FUNCTION ARGUMENTS...)
> which fails imenu--truncate-items.
>
> -             ((consp (cdr item))
> +             ((imenu--subalist-p item)






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items
  2013-01-28 15:09 bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items Leo Liu
  2013-01-28 16:30 ` Drew Adams
@ 2013-01-29  2:25 ` Stefan Monnier
  2013-01-29  7:22   ` Leo Liu
  2013-01-30 18:01 ` Leo Liu
  2 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2013-01-29  2:25 UTC (permalink / raw)
  To: Leo Liu; +Cc: 13576

> diff --git a/lisp/imenu.el b/lisp/imenu.el
> index 80dacf93..649fc0a7 100644
> --- a/lisp/imenu.el
> +++ b/lisp/imenu.el
> @@ -557,7 +557,7 @@ (defun imenu--truncate-items (menulist)
>    "Truncate all strings in MENULIST to `imenu-max-item-length'."
>    (mapcar (lambda (item)
>              (cond
> -             ((consp (cdr item))
> +             ((imenu--subalist-p item)
>                (imenu--truncate-items (cdr item)))
>               ;; truncate if necessary
>               ((and (numberp imenu-max-item-length)

Looks right, please install it in trunk,


        Stefan





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items
  2013-01-29  2:25 ` Stefan Monnier
@ 2013-01-29  7:22   ` Leo Liu
  0 siblings, 0 replies; 5+ messages in thread
From: Leo Liu @ 2013-01-29  7:22 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 13576

On 2013-01-29 10:25 +0800, Stefan Monnier wrote:
> Looks right, please install it in trunk,

I'll install something along these lines which also truncate the
car of a sub-alist.

diff --git a/lisp/imenu.el b/lisp/imenu.el
index 80dacf93..1d721659 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -555,16 +555,14 @@ (defun imenu--split-submenus (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.





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items
  2013-01-28 15:09 bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items Leo Liu
  2013-01-28 16:30 ` Drew Adams
  2013-01-29  2:25 ` Stefan Monnier
@ 2013-01-30 18:01 ` Leo Liu
  2 siblings, 0 replies; 5+ messages in thread
From: Leo Liu @ 2013-01-30 18:01 UTC (permalink / raw)
  To: 13576-done

Fixed in trunk





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-01-30 18:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-28 15:09 bug#13576: 24.2.92; [PATCH] a bug in imenu--truncate-items Leo Liu
2013-01-28 16:30 ` Drew Adams
2013-01-29  2:25 ` Stefan Monnier
2013-01-29  7:22   ` Leo Liu
2013-01-30 18:01 ` Leo Liu

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).