>> - (not (equal val p-val)))))) >> + (not (if (and (listp p-val) (not (listp val))) >> + (member val p-val) >> + (equal val p-val))))))) > > No, that's not an acceptable change, I think -- this function is a > search primitive, not a DWIM thing. There's an abundance of things that > can be stored in text properties, to be compared with any number of > predicates. You're trying to special-case it to search for faces, for > some reason, and that's not what it's for. Then it's possible to add lambda to `predicate' arg in interactive spec only like below. > If you want a function to search for faces, that's something you can > write (based on this function), but that's not what this function is for. Of course, I can write and add it to ~/.emacs. But the question is: do you think this is generally useful? For example, to search hi-lock properties, etc.