From: Eli Zaretskii Date: Thu, 21 Jul 2022 09:40:28 +0000 (+0300) Subject: Update buffer's chars-modified tick when inserting from gap X-Git-Tag: emacs-29.0.90~1447^2~822 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=51f8e86374a57efe5b8e5c31d96078e63c023da4;p=emacs.git Update buffer's chars-modified tick when inserting from gap * src/insdel.c (insert_from_gap): Update buffer's chars-modified tick. (Bug#56393) * test/src/buffer-tests.el (test-buffer-chars-modified-ticks): New test. --- diff --git a/src/insdel.c b/src/insdel.c index 6f180ac5800..9b292398537 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1123,6 +1123,7 @@ insert_from_gap (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail) invalidate_buffer_caches (current_buffer, GPT, GPT); record_insert (GPT, nchars); modiff_incr (&MODIFF); + CHARS_MODIFF = MODIFF; insert_from_gap_1 (nchars, nbytes, text_at_gap_tail); diff --git a/test/src/buffer-tests.el b/test/src/buffer-tests.el index cba10a05025..3c6a9208ffa 100644 --- a/test/src/buffer-tests.el +++ b/test/src/buffer-tests.el @@ -1535,4 +1535,24 @@ with parameters from the *Messages* buffer modification." (restore-buffer-modified-p 'autosaved) (should (eq (buffer-modified-p) 'autosaved))))) +(ert-deftest test-buffer-chars-modified-ticks () + "Test `buffer-chars-modified-tick'." + (setq temporary-file-directory (file-truename temporary-file-directory)) + (let ((text "foobar") + f1 f2) + (unwind-protect + (progn + (setq f1 (make-temp-file "buf-modiff-tests") + f2 (make-temp-file "buf-modiff-tests")) + (with-current-buffer (find-file f1) + (should (= (buffer-chars-modified-tick) 1)) + (should (= (buffer-chars-modified-tick) (buffer-modified-tick))) + (write-region text nil f2 nil 'silent) + (insert-file-contents f2) + (should (= (buffer-chars-modified-tick) (buffer-modified-tick))) + (should (> (buffer-chars-modified-tick) 1)))) + (if f1 (delete-file f1)) + (if f2 (delete-file f2)) + ))) + ;;; buffer-tests.el ends here