This function reports the current insertion type of @var{marker}.
@end defun
-Most functions that create markers, without explicitly specifying an
-insertion type, create them with insertion type @code{nil}. Also, the
-mark has, by default, insertion type @code{nil}.
+Most functions that create markers, without an argument allowing to
+specify the insertion type, create them with insertion type
+@code{nil}. Also, the mark has, by default, insertion type
+@code{nil}.
@node Moving Markers
@section Moving Marker Positions
@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
-a 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
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 transient-mark-mode is
+@code{identity}. If it is still @code{identity} at the end of the
+command, it changes to nil.
@end defopt
@defopt mark-even-if-inactive