Subject: bug#40940: 27.0.91; project-query-replace-regexp stops too early

From: Dmitry Gutov <[email-masked]>
Date: Fri, 1 May 2020 18:27:45 +0300

On 01.05.2020 09:57, Eli Zaretskii wrote:
> I see no reference to either case-fold-search or
> case-fold in isearch-no-upper-case-p.  So why would we need to update
> its doc string?

Sorry if that was unclear: I think we'd need to update the docstring of 
fileloop-initialize-replace. Which doesn't offer any hints that the 
logic of isearch-no-upper-case-p will be employed.

Also see the part about obeying the value of search-upper-case.

> Does that really work in the case in point?  Unless I'm missing
> something, if case-fold-search is t by default, this patch would cause
> the search to be case-insensitive even if the FROM regexp includes
> upper-case characters.  But in that case, perform-replace will
> internally decide to be case-sensitive, and we have the same failure
> on our hands.  This is why the patch I proposed explicitly examined
> the FROM regexp for upper-case characters.  Whereas yours doesn't.

Since we bind search-upper-case to nil in this patch, perform-replace 
won't try to alter the value of case-fold-search internally.