Subject: bug#10113: 24.0.91; Isearch & `M-e'

From: Stefan Monnier <[email-masked]>
Date: Wed, 23 Nov 2011 09:30:15 -0500

> Because, removing the final "R" via minibuffer should be equivalent to
> do it directly by typing DEL (just after the "R").  After all, the
> final situation is the same in both cases:

I understand what you mean, but I don't think it's important to make the
two behave identically: after all, if you want to DEL behavior, you know
where to find it.

> IOW, after editing the search string in the minibuffer, the Isearch
> should be re-started from the beginning, using the new (edited) search
> string.

That wouldn't always result in the same behavior as what DEL does
(think of the case where you do C-s buffe C-s C-s r C-s M-e DEL RET).
Making it really reproduce the behavior of DEL would require a good bit
more care.
And if we do try to make it behave like you want when the result of M-e
is a prefix of the original string, that will make it behave
inconsistently with the other cases when the result is not a prefix.

Nah, not a good idea.

> In this second case, my reasoning is analogous: Changing the final "R"
> with a "r" via minibuffer should be equivalent to doing that directly
> (typing "DEL r" just after the "R").

> IOW, the case-sensitivity of the Isearch, when it's determined
> _automatically_ (not by typing `M-c'), should be revised after editing
> the search string in the minibuffer, to produce a result consistent
> with the principle I said before.

I could agree here, OTOH.  My reasoning is not "because this is similar
to some earlier state" but rather because I think that there's no reason
to decide that entering an upper case letter should change the state
from "auto" to "ignore-case".  Instead it should stay as "auto" (until
the user explicitly choose a case sensitivity via M-c) and hence the
decision on whether to ignore case should be re-evaluated at every step.
I.e. C-s TOTO M-e C-a C-k foo RET should search for "foo" while
ignoring case.

        Stefan