+(defun rfc2047-fold-region (b e)
+ "Fold the long lines in the region."
+ (save-restriction
+ (narrow-to-region b e)
+ (goto-char (point-min))
+ (let ((break nil))
+ (while (not (eobp))
+ (cond
+ ((memq (char-after) '(? ?\t))
+ (setq break (point)))
+ ((and (not break)
+ (looking-at "=\\?"))
+ (setq break (point)))
+ ((and (looking-at "\\?=")
+ (> (- (point) (save-excursion (beginning-of-line) (point))) 76))
+ (goto-char break)
+ (insert "\n ")
+ (forward-line 1)))
+ (unless (eobp)
+ (forward-char 1))))))
+