>From c64dae033a5ef48beb1895790d678b016f03e017 Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Mon, 14 Feb 2022 09:29:04 +0100 Subject: [PATCH] Improve stability of message-hide-headers * message.el (message-hide-headers): Use a pointer instead of tracking the "end-of-headers" point manually. --- 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 a6c6a16653..9327259c60 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -8621,26 +8621,23 @@ message-hide-headers 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) -- 2.30.2