emacs-diffs
[Top][All Lists]
Advanced

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

master 2e2a8e5: Man highlighting: Don't occasionally bold entire section


From: Lars Ingebrigtsen
Subject: master 2e2a8e5: Man highlighting: Don't occasionally bold entire sections.
Date: Tue, 20 Oct 2020 07:13:28 -0400 (EDT)

branch: master
commit 2e2a8e5491bc6259a9ebe8c703c1c501307953e2
Author: Jim Blandy <jimb@red-bean.com>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Man highlighting: Don't occasionally bold entire sections.
    
    * lisp/ansi-color.el (ansi-color-apply-on-region): Always save a
    restart position in ansi-color-context-region if the region ends with
    highlighting active.
---
 lisp/ansi-color.el | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/ansi-color.el b/lisp/ansi-color.el
index 141ad23..c3b2d98 100644
--- a/lisp/ansi-color.el
+++ b/lisp/ansi-color.el
@@ -414,11 +414,17 @@ this."
        ;; if the rest of the region should have a face, put it there
        (funcall ansi-color-apply-face-function
                 start-marker end-marker (ansi-color--find-face codes))
-       (setq ansi-color-context-region (if codes (list codes)))))
+        ;; Save a restart position when there are codes active. It's
+        ;; convenient for man.el's process filter to pass `begin'
+        ;; positions that overlap regions previously colored; these
+        ;; `codes' should not be applied to that overlap, so we need
+        ;; to know where they should really start.
+       (setq ansi-color-context-region (if codes (list codes end-marker)))))
     ;; Clean up our temporary markers.
     (unless (eq start-marker (cadr ansi-color-context-region))
       (set-marker start-marker nil))
-    (set-marker end-marker nil)))
+    (unless (eq end-marker (cadr ansi-color-context-region))
+      (set-marker end-marker nil))))
 
 (defun ansi-color-apply-overlay-face (beg end face)
   "Make an overlay from BEG to END, and apply face FACE.



reply via email to

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