Subject: [PATCH] whitespace: Clear bob and eob markers in `whitespace-color-off'

From: Richard Hansen <[email-masked]>
Date: Mon, 19 Dec 2022 00:03:39 -0500

See attached.
From 225dc1f32c865a3b36eb9c6d3881b298c871e3a3 Mon Sep 17 00:00:00 2001
From: Richard Hansen <[email-masked]>
Date: Wed, 14 Dec 2022 01:57:17 -0500
Subject: [PATCH] whitespace: Clear bob and eob markers in
 `whitespace-color-off'

* lisp/whitespace.el (whitespace-color-off): Clear markers when
turning off `whitespace-mode'.
* test/lisp/whitespace-tests.el (whitespace-tests--clear-markers): Add
a test.
---
 lisp/whitespace.el            | 4 +++-
 test/lisp/whitespace-tests.el | 6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 558be1841a..b747293eb4 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -2220,7 +2220,9 @@ whitespace-color-off
     (remove-hook 'clone-buffer-hook #'whitespace--clone t)
     (remove-hook 'clone-indirect-buffer-hook #'whitespace--clone t)
     (font-lock-remove-keywords nil whitespace-font-lock-keywords)
-    (font-lock-flush)))
+    (font-lock-flush)
+    (set-marker whitespace-bob-marker nil)
+    (set-marker whitespace-eob-marker nil)))
 
 (defun whitespace-point--used (start end)
   (let ((ostart (overlay-start whitespace-point--used)))
diff --git a/test/lisp/whitespace-tests.el b/test/lisp/whitespace-tests.el
index 7079c1ea5e..1780d6246d 100644
--- a/test/lisp/whitespace-tests.el
+++ b/test/lisp/whitespace-tests.el
@@ -64,6 +64,12 @@ whitespace-tests--cleanup-string
     (whitespace-cleanup)
     (buffer-string)))
 
+(ert-deftest whitespace-tests--clear-markers ()
+  (whitespace-tests--with-test-buffer '(face empty)
+    (whitespace-mode -1)
+    (should (null (marker-buffer whitespace-bob-marker)))
+    (should (null (marker-buffer whitespace-eob-marker)))))
+
 (ert-deftest whitespace-cleanup-eob ()
   (let ((whitespace-style '(empty)))
     (should (equal (whitespace-tests--cleanup-string "a\n")
-- 
2.39.0