Subject: bug#32024: 27.0; [PATCH] `imenu--generic-function'

From: Drew Adams <[email-masked]>
Date: Sat, 7 Jul 2018 07:27:52 -0700 (PDT)

> > Attached is a patch for two bugs in `imenu--generic-function'.  I ran
> > into them when using a function value for argument REGEXP, though
> > neither has to do particularly with that use case.  Instead, they both
> > have to do with the case where items are within comments or strings,
> > which might be skipped.
> >
> > 1. When checking whether the current item is inside a comment or
> string,
> >    it's necessary to first move point to position START.  Otherwise,
> the
> >    test is made at bol (which might not be within a comment or string,
> >    even though the START position is).
> >
> > 2. At the end, it's necessary to remove any empty menus that could have
> >    been added.  That can happen because of skipping things inside
> >    comments or strings.
> 
> Thanks.
> 
> Applying this produces the following warning from the byte compiler:
> 
>   In end of data:
>   imenu.el:1056:1:Warning: the function `imenup-delete-if-not' is not
>   known to be defined.
> 
> And indeed, I cannot find that function anywhere in Emacs.

Sorry about that.  Can you please substitute the equivalent
function from Emacs, `cl-delete-if-not' (in `cl-seq.el')?

(I took this from my `imenu+.el' code, and that library
does not want to load `cl-seq.el' just for this, so it
defines the function separately.)