aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2021-12-05 16:38:49 +0200
committerEli Zaretskii2021-12-05 16:38:49 +0200
commit34f56561372d83b71dcaff1cdf5d9264ba38fa0e (patch)
tree90e178feb29dde584c023673e85302bb9f8917ec
parentc086358574e3671787394c7b9f6069760e7c6b3c (diff)
downloademacs-34f56561372d83b71dcaff1cdf5d9264ba38fa0e.tar.gz
emacs-34f56561372d83b71dcaff1cdf5d9264ba38fa0e.zip
Document the subtleties of the 'cursor' text property
* doc/lispref/text.texi (Special Properties): Update the documentation of the 'cursor' property per bug#8627.
-rw-r--r--doc/lispref/text.texi41
1 files changed, 25 insertions, 16 deletions
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 41b3138a0dd..f66cdfdbd19 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -3647,14 +3647,14 @@ Consecutive characters with the same @code{field} property constitute a
3647@kindex cursor @r{(text property)} 3647@kindex cursor @r{(text property)}
3648Normally, the cursor is displayed at the beginning or the end of any 3648Normally, the cursor is displayed at the beginning or the end of any
3649overlay and text property strings present at the current buffer 3649overlay and text property strings present at the current buffer
3650position. You can place the cursor on any desired character of these 3650position. You can instead tell Emacs to place the cursor on any
3651strings by giving that character a non-@code{nil} @code{cursor} text 3651desired character of these strings by giving that character a
3652property. In addition, if the value of the @code{cursor} property is 3652non-@code{nil} @code{cursor} text property. In addition, if the value
3653an integer, it specifies the number of buffer's character 3653of the @code{cursor} property is an integer, it specifies the number
3654positions, starting with the position where the overlay or the 3654of buffer's character positions, starting with the position where the
3655@code{display} property begins, for which the cursor should be 3655overlay or the @code{display} property begins, for which the cursor
3656displayed on that character. Specifically, if the value of the 3656should be displayed on that character. Specifically, if the value of
3657@code{cursor} property of a character is the number @var{n}, the 3657the @code{cursor} property of a character is the number @var{n}, the
3658cursor will be displayed on this character for any buffer position in 3658cursor will be displayed on this character for any buffer position in
3659the range @code{[@var{ovpos}..@var{ovpos}+@var{n})}, where @var{ovpos} 3659the range @code{[@var{ovpos}..@var{ovpos}+@var{n})}, where @var{ovpos}
3660is the overlay's starting position given by @code{overlay-start} 3660is the overlay's starting position given by @code{overlay-start}
@@ -3663,14 +3663,23 @@ text property begins in the buffer.
3663 3663
3664In other words, the string character with the @code{cursor} property 3664In other words, the string character with the @code{cursor} property
3665of any non-@code{nil} value is the character where to display the 3665of any non-@code{nil} value is the character where to display the
3666cursor. The value of the property says for which buffer positions to 3666cursor when the overlay or display string make point not visible on
3667display the cursor there. If the value is an integer @var{n}, 3667display. The value of the property says for which buffer positions to
3668the cursor is displayed there when point is anywhere between the 3668display the cursor there. If the value is an integer @var{n}, the
3669beginning of the overlay or @code{display} property and @var{n} 3669cursor is displayed there when point is anywhere between the beginning
3670positions after that. If the value is anything else and 3670of the overlay or @code{display} property and @var{n} positions after
3671non-@code{nil}, the cursor is displayed there only when point is at 3671that. If the value is anything else and non-@code{nil}, the cursor is
3672the beginning of the @code{display} property or at 3672displayed there only when point is at the buffer position that is the
3673@code{overlay-start}. 3673beginning of the @code{display} property, or at @code{overlay-start}
3674if that position is not visible on display. Note that an integer
3675value of the @code{cursor} property could mean that the cursor is
3676displayed on that character even when point is visible on display.
3677
3678One subtlety of this property is that it doesn't work to put this
3679property on a newline character that is part of a display or overlay
3680string. That's because the newline doesn't have a graphic
3681representation on the screen for Emacs to find when it looks for a
3682character on display with that @code{cursor} property.
3674 3683
3675@cindex cursor position for @code{display} properties and overlays 3684@cindex cursor position for @code{display} properties and overlays
3676When the buffer has many overlay strings (e.g., @pxref{Overlay 3685When the buffer has many overlay strings (e.g., @pxref{Overlay