Subject: RE: bug#3984: 23.0.96; defadvice of call-interactively defeats interactive-p

From: "Drew Adams" <[email-masked]>
Date: Fri, 31 Jul 2009 13:04:04 -0700

> > Is there no way the Emacs implementation could be fixed to 
> > handle this better?  Couldn't it take into consideration
> > the `ad-*' stuff that results from advising
> > `call-interactively'?  IOW, couldn't it look for
> > `call-interactively' in its advised form also?
> 
> There's probably some way to make it work, of course.  Note that the
> same problem is likely to appear with other redefinitions of
> call-interactively (e.g. profiling, tracing, ...).

Yes.

> Of course, another way to break these things is also to advise (and/or
> profile/trace/...) interactive-p.

Yes.

Seems like there could be a list of such functions to check wrt advised (and
profiled, etc.) forms. The particular advice wouldn't matter, I believe; I
imagine that all that happens is that the function is currently checked.
Couldn't the check simply be membership in a list that includes the advised
names? Perhaps even have that as the value of a variable, which could be
configured (at least by Emacs dev, if not users).

Realistically, what do you think is the chance of at least the bug as reported
being fixed, that is, at least for advised `call-interactively'? I added a
feature to Icicles that I will likely need to remove if `interactive-p' is not
made to behave normally. Thx.