Subject: bug#21192: 25.0.50; search-replace of spaces erroneously touches newlines

From: Eli Zaretskii <[email-masked]>
Date: Wed, 05 Aug 2015 18:15:18 +0300

> From: Dima Kogan <[email-masked]>
> Date: Wed, 05 Aug 2015 03:10:27 -0700
> Cc: [email-masked]
> 
> Artur Malabarba <[email-masked]> writes:
> 
> > Is your replace-regexp-lax-whitespace variable non-nil, by any chance?
> 
> It is nil. This issue is reproducible from 'emacs -Q'

Artur, this happens because we are "folding" newline with whitespace:

      ;; Add some manual entries.
      (dolist (it '((?\" "＂" "“" "”" "”" "„" "⹂" "〞" "‟" "‟" "❞" "❝" "❠" "“" "„" "〝" "〟" "🙷" "🙶" "🙸" "«" "»")
                    (?' "❟" "❛" "❜" "‘" "’" "‚" "‛" "‚" "󠀢" "❮" "❯" "‹" "›")
                    (?` "❛" "‘" "‛" "󠀢" "❮" "‹")
                    (?\s "\t" "\r" "\n")))  <<<<<<<<<<<<<<<<<<<<<<<<<

I think we should remove this, since replace-regexp-lax-whitespace
already provides the same feature, and it's confusing to have that
variable set to nil and still see such "lax" matches.

Regardless, I think replace commands should start with character
folding off, as I don't think most users will want that by default,
especially since we don't perform the reverse transformation when
replacing, and so, say, ² is replaced with 3, not with ³.