emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 0065621d0d3: (report_overlay_modification): Fix bug#65929


From: Stefan Monnier
Subject: emacs-29 0065621d0d3: (report_overlay_modification): Fix bug#65929
Date: Wed, 13 Sep 2023 18:51:14 -0400 (EDT)

branch: emacs-29
commit 0065621d0d36112922792d7c46085230e999cba3
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    (report_overlay_modification): Fix bug#65929
    
    Somehow the new overlay code in Emacs-29 changed slightly
    the test to decide when to run the `modification-hooks` of overlays,
    with the consequence that these hook functions end up being executed
    also when text is deleted right after an empty overlay, which is
    contrary to Emacs-28 behavior as well as contrary to the Texinfo doc.
    
    * src/buffer.c (report_overlay_modification): Better reproduce the
    Emacs-28 code.
    
    * test/src/buffer-tests.el (overlay-modification-hooks):
    Add corresponding test.
---
 src/buffer.c             | 2 +-
 test/src/buffer-tests.el | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/buffer.c b/src/buffer.c
index 252231357bc..db362ffe7b0 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4091,7 +4091,7 @@ report_overlay_modification (Lisp_Object start, 
Lisp_Object end, bool after,
            }
          /* Test for intersecting intervals.  This does the right thing
             for both insertion and deletion.  */
-         if (! insertion || (end_arg > obegin && begin_arg < oend))
+         if (end_arg > obegin && begin_arg < oend)
            {
              Lisp_Object prop = Foverlay_get (overlay, Qmodification_hooks);
              if (!NILP (prop))
diff --git a/test/src/buffer-tests.el b/test/src/buffer-tests.el
index 45914b2b6b0..aa30533c6a0 100644
--- a/test/src/buffer-tests.el
+++ b/test/src/buffer-tests.el
@@ -142,6 +142,7 @@ properties."
                 (expected-calls . ((modification-hooks (nil 3 4))
                                    (modification-hooks (t 3 4 1)))))
                ((replace . "4"))
+               ((replace . "4") (overlay-beg . 4)) ;bug#65929
                ((replace . "12")
                 (expected-calls . ((modification-hooks (nil 1 3))
                                    (modification-hooks (t 1 2 2)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]