From: Philip Kaludercic Date: Mon, 14 Feb 2022 10:51:06 +0000 (+0100) Subject: Improve stability of message-hide-headers X-Git-Tag: emacs-29.0.90~2319 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=35bb4c1c3c64d09d9dea0ed7ba0314893e8f5f3c;p=emacs.git 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). --- 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)