From 35bb4c1c3c64d09d9dea0ed7ba0314893e8f5f3c Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Mon, 14 Feb 2022 11:51:06 +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 (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 869ab3f82b7..800c7dcea03 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) -- 2.39.5