X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/d29edb21c8fb2abc77cd119e5dbb0fe34a82120f..bcd983312cd9a5f9f5aec48821110aa7688b29b5:/lispref/markers.texi diff --git a/lispref/markers.texi b/lispref/markers.texi index 7f4ab1d2b7..60b2aae6a9 100644 --- a/lispref/markers.texi +++ b/lispref/markers.texi @@ -337,9 +337,10 @@ text is inserted at its position. If @var{type} is @code{nil}, 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 @@ -393,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 -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 @@ -443,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. @@ -553,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