emacs-diffs
[Top][All Lists]
Advanced

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

master 35bb4c1c3c: Improve stability of message-hide-headers


From: Lars Ingebrigtsen
Subject: master 35bb4c1c3c: Improve stability of message-hide-headers
Date: Mon, 14 Feb 2022 05:51:55 -0500 (EST)

branch: master
commit 35bb4c1c3c64d09d9dea0ed7ba0314893e8f5f3c
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Improve stability of message-hide-headers
    
    * message.el (message-hide-headers): Use a pointer instead of tracking
    the "end-of-headers" point manually (bug#53991).
---
 lisp/gnus/message.el | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 869ab3f82b..800c7dcea0 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -8625,26 +8625,23 @@ From headers in the original article."
                   message-hidden-headers))
        (inhibit-point-motion-hooks t)
        (inhibit-modification-hooks t)
-       (end-of-headers (point-min)))
+       end-of-headers)
     (when regexps
       (save-excursion
        (save-restriction
          (message-narrow-to-headers)
+          (setq end-of-headers (point-min-marker))
          (goto-char (point-min))
          (while (not (eobp))
            (if (not (message-hide-header-p regexps))
                (message-next-header)
-             (let ((begin (point))
-                   header header-len)
+             (let ((begin (point)))
                (message-next-header)
-               (setq header (buffer-substring begin (point))
-                     header-len (- (point) begin))
-               (delete-region begin (point))
-               (goto-char end-of-headers)
-               (insert header)
-               (setq end-of-headers
-                     (+ end-of-headers header-len))))))))
-    (narrow-to-region end-of-headers (point-max))))
+                (let ((header (delete-and-extract-region begin (point))))
+                  (save-excursion
+                    (goto-char end-of-headers)
+                    (insert-before-markers header))))))))
+      (narrow-to-region end-of-headers (point-max)))))
 
 (defun message-hide-header-p (regexps)
   (let ((result nil)



reply via email to

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