aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorStefan Monnier2025-03-11 17:10:30 -0400
committerStefan Monnier2025-03-11 17:16:21 -0400
commit40d8650d5177bd291747d225c7d2cf2b4ba55856 (patch)
tree7da9e14cca832b5471004aa030c054fb652e474d /test/src
parente1ceee716d7b0bb611317c455a2a49d4b0485469 (diff)
downloademacs-40d8650d5177bd291747d225c7d2cf2b4ba55856.tar.gz
emacs-40d8650d5177bd291747d225c7d2cf2b4ba55856.zip
(Freplace_buffer_contents): Preserve markers more carefully
Use `replace_range` rather than `delete+insert`. * src/insdel.c (replace_range): Allow NEW to specify a chunk of buffer text. * src/editfns.c (Freplace_buffer_contents): Use it. * test/src/editfns-tests.el (replace-buffer-contents-1): Remove incorrect check which happened to succeed because point was not preserved carefully enough. Make the replacement text share a bit more content to make the test a bit more strict. (editfns-tests--replace-region): Doesn't fail any more.
Diffstat (limited to 'test/src')
-rw-r--r--test/src/editfns-tests.el16
1 files changed, 9 insertions, 7 deletions
diff --git a/test/src/editfns-tests.el b/test/src/editfns-tests.el
index 09af179a180..c3f825c6149 100644
--- a/test/src/editfns-tests.el
+++ b/test/src/editfns-tests.el
@@ -280,23 +280,25 @@
280 280
281(ert-deftest replace-buffer-contents-1 () 281(ert-deftest replace-buffer-contents-1 ()
282 (with-temp-buffer 282 (with-temp-buffer
283 (insert #("source" 2 4 (prop 7))) 283 (insert #("source " 2 4 (prop 7)))
284 (let ((source (current-buffer))) 284 (let ((source (current-buffer)))
285 (with-temp-buffer 285 (with-temp-buffer
286 (insert "before dest after") 286 (insert "before dest after")
287 (let ((marker (set-marker (make-marker) 14))) 287 (let ((marker (set-marker (make-marker) 14)))
288 (save-restriction 288 (save-restriction
289 (narrow-to-region 8 12) 289 (narrow-to-region 8 13)
290 (replace-buffer-contents source)) 290 (goto-char 12)
291 (should (looking-at " \\'"))
292 (replace-buffer-contents source)
293 (should (looking-at " \\'")))
291 (should (equal (marker-buffer marker) (current-buffer))) 294 (should (equal (marker-buffer marker) (current-buffer)))
292 (should (equal (marker-position marker) 16))) 295 (should (equal (marker-position marker) 16)))
293 (should (equal-including-properties 296 (should (equal-including-properties
294 (buffer-string) 297 (buffer-string)
295 #("before source after" 9 11 (prop 7)))) 298 #("before source after" 9 11 (prop 7))))))
296 (should (equal (point) 9))))
297 (should (equal-including-properties 299 (should (equal-including-properties
298 (buffer-string) 300 (buffer-string)
299 #("source" 2 4 (prop 7)))))) 301 #("source " 2 4 (prop 7))))))
300 302
301(ert-deftest replace-buffer-contents-2 () 303(ert-deftest replace-buffer-contents-2 ()
302 (with-temp-buffer 304 (with-temp-buffer
@@ -332,7 +334,7 @@
332 (replace-buffer-contents str-buf)))))))) 334 (replace-buffer-contents str-buf))))))))
333 335
334(ert-deftest editfns-tests--replace-region () 336(ert-deftest editfns-tests--replace-region ()
335 :expected-result :failed 337 ;; :expected-result :failed
336 (with-temp-buffer 338 (with-temp-buffer
337 (insert "here is some text") 339 (insert "here is some text")
338 (let ((m5n (copy-marker (+ (point-min) 5))) 340 (let ((m5n (copy-marker (+ (point-min) 5)))