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.
This commit is contained in:
Lars Ingebrigtsen 2020-09-21 00:26:54 +02:00
parent f4d186b3b8
commit ec6254e552
2 changed files with 8 additions and 6 deletions

View file

@ -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)

View file

@ -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."