Subject: 24.3.50; Error in post-command-hook (icomplete-post-command-hook): (invalid-function ("..." ...))
From: Drew Adams <[email-masked]>
To: [email-masked]
Date: Fri, 27 Dec 2013 21:52:13 -0800 (PST)
List-Id: <debbugs-submit.debbugs.gnu.org>

I believe I reported long ago (in the Emacs 24 cycle, IIRC) that I
occasionally get this error.  This is still the case.  The value it
complains about not being a function is a list of completions (strings),
which each have text property `face' with values
`completions-common-part' and `(completions-first-difference)' (a list).

I haven't been able to see where in the code this error could occur.  I
have noticed it being raised with my setup (icomplete+.el).  Dunno
whether it occurs also in emacs -Q.

FWIW, my code does not even reference `icomplete-post-command-hook'
explicitly, and it does not use those particular faces explicitly.

I also have not been able to find the code that issues that error
message.  Perhaps it is in some C code - the latest C code I have is for
Emacs 24.3.

A wild guess about this is that the list of completions is the cached
value in variable `completion-all-sorted-completions'.  And perhaps in
code like this:

(completion-try-completion name comps nil (length name) md)

Maybe COMPS here (which is the value of
`completion-all-sorted-completions') is somehow expected to be a
function?  Does this ring a bell for anyone?  Just poking in the dark.
Dunno how to debug this better.  The error message does not stop
execution, being on `post-command-hook'.  It just flashes ephemerally
and then I can find it in `*Messages*'.

And, again, it seems that this happens just once in a while.

If this info does not help at all, feel free to close the bug.  Or leave
it open, for future reference.  It has been there for a while now.

In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-12-27 on ODIEONE
Bzr revision: 115778 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3' LDFLAGS=-Lc:/Devel/emacs/lib
 CPPFLAGS=-Ic:/Devel/emacs/include'