emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: "Warning: `save-excursion' defeated by `set-buffer'" madness


From: Drew Adams
Subject: RE: "Warning: `save-excursion' defeated by `set-buffer'" madness
Date: Mon, 15 Feb 2010 09:53:42 -0800

> So it's BBDB-related again, but really Icicles-initiated in 
> this case. I didn't suspect Icicles originally, as I had it off when invoking
> `ibuffer', but now that I tried not even requiring Icicles in my init file,
> the problem goes away. Also, even with Icicles loaded, it only happens
> the first time `ibuffer' is invoked; so it's probably related to all
> those re-initializations Icicles is doing; I'm cc-ing Drew in case he
> was interested (icicles.el is Update #: 22624).

Thanks. Feel free to follow up with me off list. Sorry for the inconvenience.

Yes, Icicles toggles Icicle mode twice after you load ibuffer, in order to bind
`M-s i' in `ibuffer-mode-map' to command `icicle-search-ibuffer-marked' (only
when Icicle mode is on).

Your backtrace indicates that `choose-completion-string' is advised. Icicles
does not advise it (instead, it uses `defalias' to redefine it when in Icicle
mode). BBDB advises it, in file `bbdb-com.el'. That explains why the backtrace
for byte-compiling function `choose-completion-string' shows `(if
bbdb-complete-name-callback-data (save-excursion ... ...))'.

In the latest version of Icicles, advice is automatically deactivated (when in
Icicle mode) for any of the standard functions that Icicles redefines (see
variable `icicle-redefined-functions'). (The advice is re-activated when you
quit Icicle mode.) So this problem should not arise in the latest Icicles
version. 

But using BBDB in Icicle mode will no longer use the BBDB advice, which might
pose a problem (the advice deletes the completed BBDB name before replacing it).
You can modify the value of `icicle-redefined-functions' to allow the BBDB
advice (hence to also get back the byte-compiler warning).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]