]> git.eshelyaron.com Git - emacs.git/commitdiff
(The Mark): Document use-region-p.
authorEli Zaretskii <eliz@gnu.org>
Thu, 16 Oct 2008 20:06:38 +0000 (20:06 +0000)
committerEli Zaretskii <eliz@gnu.org>
Thu, 16 Oct 2008 20:06:38 +0000 (20:06 +0000)
doc/lispref/ChangeLog
doc/lispref/markers.texi
etc/NEWS

index e8139afdb2adbb4421dfffb37b127e92f585e2f0..26da4b8e781c799757987d954e010ac4db2d8b69 100644 (file)
@@ -1,3 +1,7 @@
+2008-10-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * markers.texi (The Mark): Document use-region-p.
+
 2008-10-15  Eli Zaretskii  <eliz@gnu.org>
 
        * internals.texi (Writing Emacs Primitives): The interactive spec
index 54bf0bf2a3d4b2dd1d35e435b021b073200ad343..2793346c52196ba94bd22bc52738762e3cc2c4c9 100644 (file)
@@ -423,7 +423,11 @@ to the editor command loop by setting @code{deactivate-mark} to a
 non-@code{nil} value (but this causes deactivation only if Transient
 Mark mode is enabled).
 
-  The main motivation for using Transient Mark mode is that this mode
+  Certain editing commands that normally apply to text near point,
+work on the region when Transient Mode is enabled and the mark is
+active.  This is the main motivation for using Transient Mark mode.
+
+  Another motivation for using Transient Mark mode is that this mode
 also enables highlighting of the region when the mark is active.
 @xref{Display}.
 
@@ -555,6 +559,11 @@ every buffer-modifying primitive sets @code{deactivate-mark}.  The
 consequence of this is that commands that modify the buffer normally
 make the mark inactive.
 
+Certain commands normally apply to text near point, but in Transient
+Mark mode when the mark is active, they apply to the region instead.
+These commands should call @code{use-region-p} to test whether they
+should operate on the region.
+
 Lisp programs can set @code{transient-mark-mode} to non-@code{nil},
 non-@code{t} values to enable Transient Mark mode temporarily.  If the
 value is @code{lambda}, Transient Mark mode is automatically turned
@@ -566,6 +575,14 @@ any subsequent command that moves point and is not shift-translated
 action that would normally deactivate the mark.
 @end defopt
 
+@deffn Subroutine use-region-p
+This function returns @code{t} if Transient Mark mode is enabled, the
+mark is active, and there's a valid region in the buffer.  Commands
+that operate on the region (instead of on text near point) when
+there's an active mark should use this subroutine to test whether to
+do that.
+@end deffn
+
 @defopt mark-even-if-inactive
 If this is non-@code{nil}, Lisp programs and the Emacs user can use the
 mark even when it is inactive.  This option affects the behavior of
@@ -598,8 +615,11 @@ Otherwise it does nothing.
 @end defun
 
 @defvar mark-active
-The mark is active when this variable is non-@code{nil}.  This variable
-is always buffer-local in each buffer.
+The mark is active when this variable is non-@code{nil}.  This
+variable is always buffer-local in each buffer.  Do @emph{not} use the
+value of this variable to decide whether a command that normally
+operates on text near point should operate on the region instead.  Use
+the @code{use-region-p} subroutine (see above) for that.
 @end defvar
 
 @defvar activate-mark-hook
index 22ff4f8496db0f367b6fe51b5d27dd904053a528..727beb346cd0ebc50b3cd51cc3c806cc9fe7ccc4 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1177,6 +1177,7 @@ interactive forms to subroutines.
 
 ** Region changes
 
++++
 *** Commands should use `use-region-p' to test whether there is
 an active region that they should operate on.