(The Mark): Document the lambda' and (only . OLD)' values of

transient-mark-mode.  Document handle-shift-selection.
This commit is contained in:
Eli Zaretskii 2008-10-15 16:48:06 +00:00
parent ee6e73b8d9
commit 16624be863

View file

@ -555,11 +555,15 @@ 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}.
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
off after any action, such as buffer modification, that would normally
deactivate the mark. If the value is @w{@code{(only . @var{oldval})}},
then @code{transient-mark-mode} is set to the value @var{oldval} after
any subsequent command that moves point and is not shift-translated
(@pxref{Key Sequence Input, shift-translation}), or after any other
action that would normally deactivate the mark.
@end defopt
@defopt mark-even-if-inactive
@ -626,6 +630,20 @@ more marks than this are pushed onto the @code{mark-ring},
@code{push-mark} discards an old mark when it adds a new one.
@end defopt
@defun handle-shift-selection &optional deactivate
This function checks whether the current command was invoked via shift
translation (@pxref{Key Sequence Input, shift-translation}), and if
so, sets the mark and temporarily activates the region, unless the
region is already temporarily activated in this way. If the command
was invoked without shift translation, or if the optional argument
@var{deactivate} is non-nil, the function deactivates the mark. This
function is called whenever a command with a @samp{^} character in its
@code{interactive} spec (@pxref{Interactive Codes, ^}) is invoked
while @code{shift-select-mode} (@pxref{Shift Selection,,, emacs, The
GNU Emacs Manual}) is non-@code{nil}.
@end defun
@node The Region
@section The Region
@cindex region (between point and mark)