From 850df227ce2c5fea3a3e770307f7fc535ac6f410 Mon Sep 17 00:00:00 2001 From: "bienvenu%nventure.com" Date: Fri, 18 Nov 2005 23:22:50 +0000 Subject: [PATCH] fix bug 85296, do the right thing when replying to a message from yourself, sr=mscott git-svn-id: svn://10.0.0.236/trunk@184948 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/compose/src/nsMsgCompose.cpp | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/mozilla/mailnews/compose/src/nsMsgCompose.cpp b/mozilla/mailnews/compose/src/nsMsgCompose.cpp index c3f7fb9dc37..88495ceeda7 100644 --- a/mozilla/mailnews/compose/src/nsMsgCompose.cpp +++ b/mozilla/mailnews/compose/src/nsMsgCompose.cpp @@ -1773,19 +1773,31 @@ nsresult nsMsgCompose::CreateMessage(const char * originalMsgURI, subject.Insert(NS_LITERAL_STRING("Re: "), 0); m_compFields->SetSubject(subject); + + nsXPIDLCString author, authorEmailAddress; + msgHdr->GetAuthor(getter_Copies(author)); + nsCOMPtr parser (do_GetService(NS_MAILNEWS_MIME_HEADER_PARSER_CONTRACTID)); + if (parser) { + // convert to UTF8 before passing to MakeFullAddress + rv = parser->ExtractHeaderAddressMailboxes(nsnull, author.get(), + getter_Copies(authorEmailAddress)); + } + nsXPIDLCString curIdentityEmail; + m_identity->GetEmail(getter_Copies(curIdentityEmail)); - nsXPIDLCString author; - rv = msgHdr->GetAuthor(getter_Copies(author)); - if (NS_FAILED(rv)) - return rv; + nsXPIDLCString toField; + if (curIdentityEmail.Equals(authorEmailAddress)) + msgHdr->GetRecipients(getter_Copies(toField)); + else + toField.Assign(author); - rv = mimeConverter->DecodeMimeHeader(author, + rv = mimeConverter->DecodeMimeHeader(toField, getter_Copies(decodedCString), originCharset.get(), charsetOverride); if (NS_SUCCEEDED(rv) && decodedCString) m_compFields->SetTo(decodedCString); else - m_compFields->SetTo(author); + m_compFields->SetTo(toField); // Setup quoting callbacks for later... mWhatHolder = 1;