Subject: bug#27926: 25.2; Let arg REGION-NONCONTIGUOUS-P do more

From: Drew Adams <[email-masked]>
Date: Wed, 2 Aug 2017 15:41:01 -0700 (PDT)

In `replace.el', some replacment commands now accept optional arg
REGION-NONCONTIGUOUS-P, to allow replacement over the rectangular region
(really, over any list of dotted position pairs (START . END)).

Currently the arg is just a Boolean.  Please consider changing
the behavior of the commands in this way:

Let non-nil continue to mean the same thing: respect limits such as
those that are returned by the value of `region-extract-function'.
But allow two particular non-nil values to control that behavior in
different ways, instead of requiring that code use
`region-extract-function':

  * A function as arg value would mean use what that function returns
    instead of applying the function that is the value of
    `region-extract-function' to `bounds' and using what that returns.
    This can be handy in some contexts, just as binding
    `region-extract-function' can be handy in other contexts.

  * A non-function (i.e., non-lambda) list as arg value would be
    expected to have the form of a value that `region-extract-function'
    applied to `bounds' returns, and it would be used directly, instead
    of invoking `region-extract-function' to get the list of zone limits.
    This can be handy in still other contexts, where the limits might
    already be available - no need to bind `region-extract-function' to
    a function like (lambda (_ignore) THE-KNOWN-LIMITS).

In GNU Emacs 25.2.1 (x86_64-w64-mingw32)
 of 2017-04-24 built on LAPHROAIG
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Configured using:
 'configure --without-dbus --without-compress-install 'CFLAGS=-O2
 -static -g3''