From: Eli Zaretskii Date: Sat, 22 Feb 2025 16:04:04 +0000 (+0200) Subject: Make 'text-property-default-nonsticky' buffer-local when set X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=33fc4a4c93e8b419bf4f8510efbeb8887fff04c2;p=emacs.git Make 'text-property-default-nonsticky' buffer-local when set * src/textprop.c (syms_of_textprop) : Make buffer-local when set. (Bug#76445) * etc/symbol-releases.eld: Add text-property-default-nonsticky. * etc/NEWS: * doc/lispref/text.texi (Sticky Properties): Document the change. (cherry picked from commit 827a91dbf3a45d6c3c620545b5e620ce76e44bb2) --- diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index ec04085b76a..de09cb01d60 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -4137,10 +4137,10 @@ list, properties are rear-sticky @emph{unless} their names are in the list. @defvar text-property-default-nonsticky -This variable holds an alist which defines the default rear-stickiness -of various text properties. Each element has the form -@code{(@var{property} . @var{nonstickiness})}, and it defines the -stickiness of a particular text property, @var{property}. +This buffer-local variable holds an alist which defines the default +rear-stickiness of various text properties in the buffer. Each element +has the form @code{(@var{property} . @var{nonstickiness})}, and it +defines the stickiness of a particular text property, @var{property}. If @var{nonstickiness} is non-@code{nil}, this means that the property @var{property} is rear-nonsticky by default. Since all properties are diff --git a/etc/symbol-releases.eld b/etc/symbol-releases.eld index 645ab77972d..41200581be5 100644 --- a/etc/symbol-releases.eld +++ b/etc/symbol-releases.eld @@ -44,6 +44,7 @@ ("22.1" fun version<) ("22.1" fun version<=) ("22.1" fun read-number) + ("21.1" var text-property-default-nonsticky) ;; Since much of early Emacs source history is lost, these versions are ;; conservative estimates: the actual version of first appearance may very diff --git a/src/textprop.c b/src/textprop.c index 30c26ce4809..8fdaafccede 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -2427,6 +2427,7 @@ inherits it if NONSTICKINESS is nil. The `front-sticky' and by default. */ Vtext_property_default_nonsticky = list2 (Fcons (Qsyntax_table, Qt), Fcons (Qdisplay, Qt)); + Fmake_variable_buffer_local (Qtext_property_default_nonsticky); interval_insert_behind_hooks = Qnil; interval_insert_in_front_hooks = Qnil; @@ -2444,6 +2445,7 @@ inherits it if NONSTICKINESS is nil. The `front-sticky' and DEFSYM (Qlocal_map, "local-map"); DEFSYM (Qfront_sticky, "front-sticky"); DEFSYM (Qrear_nonsticky, "rear-nonsticky"); + DEFSYM (Qtext_property_default_nonsticky, "text-property-default-nonsticky"); DEFSYM (Qmouse_face, "mouse-face"); DEFSYM (Qminibuffer_prompt, "minibuffer-prompt");