From: Lars Ingebrigtsen Date: Mon, 30 Jan 2012 22:40:56 +0000 (+0100) Subject: Don't fold filename="..." parameters when doing rfc2047 encoding X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=b51a31dcb469849c4d4f0e6c62adfca5d7da4e41 Don't fold filename="..." parameters when doing rfc2047 encoding See bug#10587 for details. * rfc2047.el (rfc2047-encode-region): Allow not folding the encoded words. (rfc2047-encode-string): Ditto. (rfc2047-encode-parameter): Don't fold parameters. Some MUAs do not understand folded filename="..." parameters, for instance. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9482eb3b5..9483e4fe8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2012-01-30 Lars Ingebrigtsen + * rfc2047.el (rfc2047-encode-region): Allow not folding the encoded + words. + (rfc2047-encode-string): Ditto. + (rfc2047-encode-parameter): Don't fold parameters. Some MUAs do not + understand folded filename="..." parameters, for instance. + * nnimap.el (nnimap-wait-for-response): Include the imap server name in the message for greater debuggability. diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index a275df770..e881256f3 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -362,7 +362,7 @@ The buffer may be narrowed." (modify-syntax-entry ?@ "." table) table)) -(defun rfc2047-encode-region (b e) +(defun rfc2047-encode-region (b e &optional dont-fold) "Encode words in region B to E that need encoding. By default, the region is treated as containing RFC2822 addresses. Dynamically bind `rfc2047-encoding-type' to change that." @@ -546,16 +546,17 @@ Dynamically bind `rfc2047-encoding-type' to change that." (signal (car err) (cdr err)) (error "Invalid data for rfc2047 encoding: %s" (mm-replace-in-string orig-text "[ \t\n]+" " ")))))))) - (rfc2047-fold-region b (point)) + (unless dont-fold + (rfc2047-fold-region b (point))) (goto-char (point-max)))) -(defun rfc2047-encode-string (string) +(defun rfc2047-encode-string (string &optional dont-fold) "Encode words in STRING. By default, the string is treated as containing addresses (see `rfc2047-encoding-type')." (mm-with-multibyte-buffer (insert string) - (rfc2047-encode-region (point-min) (point-max)) + (rfc2047-encode-region (point-min) (point-max) dont-fold) (buffer-string))) ;; From RFC 2047: @@ -850,7 +851,7 @@ This is a substitution for the `rfc2231-encode-string' function, that is the standard but many mailers don't support it." (let ((rfc2047-encoding-type 'mime) (rfc2047-encode-max-chars nil)) - (rfc2045-encode-string param (rfc2047-encode-string value)))) + (rfc2045-encode-string param (rfc2047-encode-string value t)))) ;;; ;;; Functions for decoding RFC2047 messages