Subject: bug#15292: 24.3.50; Isearch: handle commands properly when called at top level

From: Drew Adams <[email-masked]>
Date: Fri, 6 Sep 2013 16:19:44 -0700 (PDT)

> > Some such commands, such as `isearch-help-for-help' should be callable
> > outside of Isearch.
> 
> You mean via something like M-x isearch-help-for-help, right?

Yes.

> (I doubt anyone would bind such a command to a key).

They might.  Or they might read the command name in the minibuffer from
some other command that then invokes it.  Or whatever.

After all, that command does give you a general entry to help of various
kinds on Isearch.  And for the most part it does work OK at top level.
There is just a minor hiccup because it calls `isearch-update'.  It
wouldn't cost much to make it useful pretty much anywhere, just as
`isearch-describe-bindings' already is.

> > Others, such as `isearch-repeat-forward', should not.  For those that
> > should not, an error should be raised, saying that the command is for
> > use only in Isearch.
> 
> Actually, it's not important to signal an error saying "don't use it
> outside Isearch mode", *unless* running that command outside Isearch
> mode results in nasty behavior.

I don't disagree that it's not important in such cases.  Just thought
it might be better.  It's not important to me, in any case.  Nothing
in this bug report is.

Particularly the toggle commands, I think, might be commands that
someone might mistakenly think could be used at top level.  It's not
obvious, when you do something like `apropos-command' etc., whether such
a command like `isearch-toggle-lax-whitespace' is relevant only in some
particular context.  The doc is mute about it; you find out what it does
in the wrong context only by trying it there.