]> granicus.if.org Git - mutt/commitdiff
Don't assume messages in MMDF mailboxes have From separators when copying them.
authorBrendan Cully <brendan@kublai.com>
Sun, 24 Jul 2005 08:59:44 +0000 (08:59 +0000)
committerBrendan Cully <brendan@kublai.com>
Sun, 24 Jul 2005 08:59:44 +0000 (08:59 +0000)
Spotted by William Lovas. Initial patch by TAKAHASHI Tamotsu.

copy.c

diff --git a/copy.c b/copy.c
index 669de9adb86e1d3049037db47aa2282960b63468..d1b3f7c2d925eb1722ba9ec2e34c4e5718298ece 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -701,10 +701,15 @@ int
 _mutt_append_message (CONTEXT *dest, FILE *fpin, CONTEXT *src, HEADER *hdr,
                      BODY *body, int flags, int chflags)
 {
+  char buf[STRING];
   MESSAGE *msg;
   int r;
 
-  if ((msg = mx_open_new_message (dest, hdr, (src->magic == M_MBOX || src->magic == M_MMDF) ? 0 : M_ADD_FROM)) == NULL)
+  fseek(fpin, hdr->offset, 0);
+  if (fgets (buf, sizeof (buf), fpin) == NULL)
+    return -1;
+  
+  if ((msg = mx_open_new_message (dest, hdr, is_from (buf, NULL, 0, NULL) ? 0 : M_ADD_FROM)) == NULL)
     return -1;
   if (dest->magic == M_MBOX || dest->magic == M_MMDF)
     chflags |= CH_FROM | CH_FORCE_FROM;