Subject: bug#222: isearch-repeat-forward: wrong overlay after failure

From: Stefan Monnier <[email-masked]>
Date: Mon, 12 May 2008 10:41:05 -0400

>>> `isearch-repeat-forward' is not an entry point to the incremental
>>> search:
>>> it doesn't activate isearch mode neither deactivates it.  IIUC, it was
>>> never intended for non-incremental search, so it doesn't guarantee to
>>> work when isearch mode is not active.
>>> 
>>> If you want to find the next occurrence without highlighting it
>>> and without activating isearch mode, you can use the command
>>> `search-forward'.
>> 
>> isearch-repeat-forward is interactive, which is why I thought it would
>> be a decent entry point.

> Which I would call a reasonable expectation.  However, keybindings even
> in specialized keymaps need to be bound to interactive functions.  So if
> we have functions that are only intended for use in specialized keymaps,
> there is no way to keep people from binding them to normal keymaps.

> So it is sort of a combined documentation/expectation problem.  I have
> no good idea how to approach this.

It's a very general problem: many keybindings used in major-mode or
minor modes only work properly if the corresponding mode is
currently active.

Of course, many work perfectly in other contexts too, and yet many more
work 98% OK as well.

I don't think it makes sense to document each and every function
describing whether it's expected to work in other modes or not.

        Stefan