Subject: Re: bug#25591: 25.1; M-% offers to repeat last search, but forgets that it was a "symbol" search

From: Eric Hanchrow <[email-masked]>
Date: Tue, 14 Feb 2017 00:32:22 +0000

Hm, I wasn't aware that M-% interprets the prefix arg to mean "word
replace".  My instinct says it should honor the explicit C-u.

On Tue, Feb 14, 2017 at 12:09 AM Juri Linkov <[email-masked]> wrote:

> I don't know if this is a bug, but it's disappointing and inconvenient.
>
> Start emacs with -Q, and type into the *scratch* buffer these 10
characters:
>
>     I ate this
>
> Now do C-a to move point to the beginning of the line.
>
> Now replace the symbol "i" with "u":
>
>    M-s _ i M-% u RET !
>
> So far, so good: we are looking at
>
>    U at this
>
> which is correct.
>
> Now try to repeat the replacement:
>
>    C-a M-% RET !
>
> This changes the "i" in "this" to a u, even though that "i" isn't an
> independent symbol.  I was hoping that it would do nothing.

But what if you mistakenly invoked the replacement in wrong mode,
and want to repeat the same replacement in the right one?  E.g.
first entered replacement strings in regexp replacement mode:

C-M-% i RET u RET

and then realized you want apply the same replacement strings
in word mode:

C-u M-% RET

Should it perform word replacement as explicitly stated
by the prefix arg C-u, or use a previous replacement type
(in this case, regexp replacement) remembered in the
replacement history?