]> code.delx.au - gnu-emacs/blobdiff - lispref/markers.texi
(Searching and Matching): Move node.
[gnu-emacs] / lispref / markers.texi
index 859edb0b6b83062bdd685e284c80df3b647a3a56..d9f6d19a4b02d87751471c599382eef9c280a87c 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
+@c   2004, 2005 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/markers
 @node Markers, Text, Positions, Top
@@ -394,17 +394,17 @@ This is another name for @code{set-marker}.
 @cindex mark ring
 
   One special marker in each buffer is designated @dfn{the mark}.  It
-records a position for the user for the sake of commands such as
-@code{kill-region} and @code{indent-rigidly}.  Lisp programs should set
-the mark only to values that have a potential use to the user, and never
-for their own internal purposes.  For example, the @code{replace-regexp}
-command sets the mark to the value of point before doing any
-replacements, because this enables the user to move back there
-conveniently after the replace is finished.
-
-  Many commands are designed so that when called interactively they
-operate on the text between point and the mark.  If you are writing such
-command, don't examine the mark directly; instead, use
+specifies a position to bound a range of text for commands such as
+@code{kill-region} and @code{indent-rigidly}.  Lisp programs should
+set the mark only to values that have a potential use to the user, and
+never for their own internal purposes.  For example, the
+@code{replace-regexp} command sets the mark to the value of point
+before doing any replacements, because this enables the user to move
+back there conveniently after the replace is finished.
+
+  Many commands are designed to operate on the text between point and
+the mark when called interactively.  If you are writing such a
+command, don't examine the mark directly; instead, use
 @code{interactive} with the @samp{r} specification.  This provides the
 values of point and the mark as arguments to the command in an
 interactive call, but permits other Lisp programs to specify arguments
@@ -444,7 +444,7 @@ programming.  So we do not describe it here.
 This function returns the current buffer's mark position as an integer.
 
 If Transient Mark mode is enabled, @code{mark-even-if-inactive} is
-@code{nil} and and the mark is inactive, @code{mark} normally signals
+@code{nil} and the mark is inactive, @code{mark} normally signals
 an error.  However, if @var{force} is non-@code{nil}, then @code{mark}
 returns the mark position anyway---or @code{nil}, if the mark is not
 yet set for this buffer.
@@ -554,6 +554,12 @@ This variable if non-@code{nil} enables Transient Mark mode, in which
 every buffer-modifying primitive sets @code{deactivate-mark}.  The
 consequence of this is that commands that modify the buffer normally
 make the mark inactive.
+
+Lisp programs can set @code{transient-mark-mode} to @code{only} to
+enable Transient Mark mode for the following command only.  During
+that following command, the value of @code{transient-mark-mode} is
+@code{identity}.  If it is still @code{identity} at the end of the
+command, it changes to @code{nil}.
 @end defopt
 
 @defopt mark-even-if-inactive