From: Lars Ingebrigtsen Date: Sun, 20 Sep 2020 22:26:54 +0000 (+0200) Subject: Fix infloop when folding difficult headers in Message X-Git-Tag: emacs-28.0.90~5975 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ec6254e5527b2b0aa6d93d6c83873aa400c20db3;p=emacs.git Fix infloop when folding difficult headers in Message * lisp/mail/rfc2047.el (rfc2047-fold-field): Return the end point. * lisp/gnus/message.el (message--fold-long-headers): Use that to reliably achieve progress. --- diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 3e7e18906c6..16f47c8d4c1 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -4843,10 +4843,10 @@ If you always want Gnus to send messages in one piece, set Each line should be no more than 79 characters long." (goto-char (point-min)) (while (not (eobp)) - (when (and (looking-at "[^:]+:") - (> (- (line-end-position) (point)) 79)) - (mail-header-fold-field)) - (forward-line 1))) + (if (and (looking-at "[^:]+:") + (> (- (line-end-position) (point)) 79)) + (goto-char (mail-header-fold-field)) + (forward-line 1)))) (defvar sendmail-program) (defvar smtpmail-smtp-server) diff --git a/lisp/mail/rfc2047.el b/lisp/mail/rfc2047.el index 234f319669f..4aa0c2809b2 100644 --- a/lisp/mail/rfc2047.el +++ b/lisp/mail/rfc2047.el @@ -716,11 +716,13 @@ Point moves to the end of the region." (goto-char e))))) (defun rfc2047-fold-field () - "Fold the current header field." + "Fold the current header field. +Return the new end point." (save-excursion (save-restriction (rfc2047-narrow-to-field) - (rfc2047-fold-region (point-min) (point-max))))) + (rfc2047-fold-region (point-min) (point-max)) + (point-max)))) (defun rfc2047-fold-region (b e) "Fold long lines in region B to E."