From: Simon Josefsson <jas@extundo.com>
Subject: Re: iso-8859-2 characters are broken in forwarded messages.
Date: Sat, 18 Oct 2003 03:39:19 +0200 [thread overview]
Message-ID: <iluad7znx2w.fsf@extundo.com> (raw)
In-Reply-To: <m37k331hb8.fsf@quimbies.gnus.org> (Lars Magne Ingebrigtsen's message of "Sat, 18 Oct 2003 03:10:51 +0200")
Lars Magne Ingebrigtsen <larsi@gnus.org> writes:
>> The function look somewhat convoluted, I can't think of a minimal
>> patch that solves the problem. I think the best would be to split up
>> the code into message-forward-make-body-digest,
>> message-forward-make-body-mime, message-forward-make-body-mml and
>> message-forward-make-body-plain and make the top-level
>> message-forward-make-body contain some logic and then call one of the
>> real functions.
>
> I think that sounds like a much cleaner solution; yes.
How about this? It doesn't contain anything regarding
multipart/{signed,encrypted}, but that could be added once this has
been added.
2003-10-18 Simon Josefsson <jas@extundo.com>
* message.el (message-forward-make-body-plain)
(message-forward-make-body-mime, message-forward-make-body-mml)
(message-forward-make-body-digest-plain)
(message-forward-make-body-digest-mime)
(message-forward-make-body-digest): New, derived from
message-forward-make-body.
(message-forward-make-body): Use them.
Index: message.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/message.el,v
retrieving revision 6.366
diff -u -p -u -w -r6.366 message.el
--- message.el 16 Oct 2003 18:36:52 -0000 6.366
+++ message.el 18 Oct 2003 01:38:07 -0000
@@ -5977,27 +5977,38 @@ Optional DIGEST will use digest to forwa
(message-mail nil subject))
(message-forward-make-body cur digest)))
-;;;###autoload
-(defun message-forward-make-body (forward-buffer &optional digest)
- ;; Put point where we want it before inserting the forwarded
- ;; message.
- (if message-forward-before-signature
- (message-goto-body)
+(defun message-forward-make-body-plain (forward-buffer)
+ (insert
+ "\n-------------------- Start of forwarded message --------------------\n")
+ (let ((b (point)) e)
+ (save-restriction
+ (narrow-to-region (point) (point))
+ (mml-insert-buffer forward-buffer)
+ (goto-char (point-min))
+ (when (looking-at "From ")
+ (replace-match "X-From-Line: "))
(goto-char (point-max)))
- (if message-forward-as-mime
- (if digest
- (insert "\n<#multipart type=digest>\n")
- (if message-forward-show-mml
+ (setq e (point))
+ (insert
+ "\n-------------------- End of forwarded message --------------------\n")))
+
+(defun message-forward-make-body-mime (forward-buffer)
+ (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n")
+ (let ((b (point)) e)
+ (save-restriction
+ (narrow-to-region (point) (point))
+ (mml-insert-buffer forward-buffer)
+ (goto-char (point-min))
+ (when (looking-at "From ")
+ (replace-match "X-From-Line: "))
+ (goto-char (point-max)))
+ (setq e (point))
+ (insert "<#/part>\n")))
+
+(defun message-forward-make-body-mml (forward-buffer)
(insert "\n\n<#mml type=message/rfc822 disposition=inline>\n")
- (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n")))
- (insert "\n-------------------- Start of forwarded message --------------------\n"))
(let ((b (point)) e)
- (if digest
- (if message-forward-as-mime
- (insert-buffer-substring forward-buffer)
- (mml-insert-buffer forward-buffer))
- (if (and message-forward-show-mml
- (not message-forward-decoded-p))
+ (if (not message-forward-decoded-p)
(insert
(with-temp-buffer
(mm-disable-multibyte)
@@ -6016,32 +6027,59 @@ Optional DIGEST will use digest to forwa
(goto-char (point-min))
(when (looking-at "From ")
(replace-match "X-From-Line: "))
- (goto-char (point-max)))))
+ (goto-char (point-max))))
(setq e (point))
- (if message-forward-as-mime
- (if digest
- (insert "<#/multipart>\n")
- (if message-forward-show-mml
(insert "<#/mml>\n")
- (insert "<#/part>\n")))
- (insert "\n-------------------- End of forwarded message --------------------\n"))
- (if (and digest message-forward-as-mime)
+ (when (and (not current-prefix-arg)
+ message-forward-ignored-headers)
(save-restriction
(narrow-to-region b e)
(goto-char b)
(narrow-to-region (point)
(or (search-forward "\n\n" nil t) (point)))
- (delete-region (point-min) (point-max)))
- (when (and (not current-prefix-arg)
- message-forward-ignored-headers
- ;; don't remove CTE, X-Gnus etc when doing "raw" forward:
- message-forward-show-mml)
+ (message-remove-header message-forward-ignored-headers t)))))
+
+(defun message-forward-make-body-digest-plain (forward-buffer)
+ (insert
+ "\n-------------------- Start of forwarded message --------------------\n")
+ (let ((b (point)) e)
+ (mml-insert-buffer forward-buffer)
+ (setq e (point))
+ (insert
+ "\n-------------------- End of forwarded message --------------------\n")))
+
+(defun message-forward-make-body-digest-mime (forward-buffer)
+ (insert "\n<#multipart type=digest>\n")
+ (let ((b (point)) e)
+ (insert-buffer-substring forward-buffer)
+ (setq e (point))
+ (insert "<#/multipart>\n")
(save-restriction
(narrow-to-region b e)
(goto-char b)
(narrow-to-region (point)
(or (search-forward "\n\n" nil t) (point)))
- (message-remove-header message-forward-ignored-headers t)))))
+ (delete-region (point-min) (point-max)))))
+
+(defun message-forward-make-body-digest (forward-buffer)
+ (if message-forward-as-mime
+ (message-forward-make-body-digest-mime forward-buffer)
+ (message-forward-make-body-digest-plain forward-buffer)))
+
+;;;###autoload
+(defun message-forward-make-body (forward-buffer &optional digest)
+ ;; Put point where we want it before inserting the forwarded
+ ;; message.
+ (if message-forward-before-signature
+ (message-goto-body)
+ (goto-char (point-max)))
+ (if message-forward-as-mime
+ (if digest
+ (message-forward-make-body-digest forward-buffer)
+ (if message-forward-show-mml
+ (message-forward-make-body-mml forward-buffer)
+ (message-forward-make-body-mime forward-buffer)))
+ (message-forward-make-body-plain forward-buffer))
(message-position-point))
;;;###autoload
next prev parent reply other threads:[~2003-10-18 1:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <hhsmluupo1.fsf@blah.pl>
2003-10-15 22:26 ` Reiner Steib
[not found] ` <hhy8vm13yn.fsf@blah.pl>
2003-10-16 1:21 ` Simon Josefsson
[not found] ` <hhekxeym1t.fsf@blah.pl>
2003-10-16 4:34 ` Simon Josefsson
2003-10-17 16:59 ` Lars Magne Ingebrigtsen
2003-10-17 21:40 ` Simon Josefsson
2003-10-17 21:53 ` Lars Magne Ingebrigtsen
2003-10-17 22:05 ` Simon Josefsson
2003-10-17 22:42 ` Lars Magne Ingebrigtsen
2003-10-18 0:06 ` Simon Josefsson
2003-10-18 0:43 ` Lars Magne Ingebrigtsen
2003-10-18 1:00 ` Simon Josefsson
2003-10-18 1:10 ` Lars Magne Ingebrigtsen
2003-10-18 1:39 ` Simon Josefsson [this message]
2003-10-18 1:45 ` Lars Magne Ingebrigtsen
2003-10-18 1:52 ` Simon Josefsson
2003-10-18 2:00 ` Simon Josefsson
2003-10-18 13:55 ` Lars Magne Ingebrigtsen
2003-10-18 15:17 ` Simon Josefsson
2003-10-18 15:24 ` Lars Magne Ingebrigtsen
2003-10-18 23:14 ` Simon Josefsson
2003-10-19 11:22 ` Lars Magne Ingebrigtsen
2003-10-18 9:58 ` Romain FRANCOISE
2003-10-18 2:31 ` Simon Josefsson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=iluad7znx2w.fsf@extundo.com \
--to=jas@extundo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).