From 4902e7b8f14af0aea575ca16f407babf56b1fcad Mon Sep 17 00:00:00 2001 From: "rhp%netscape.com" Date: Tue, 15 Jun 1999 23:25:52 +0000 Subject: [PATCH] changes for quoting --- mailnews/compose/build/nsMsgCompFactory.cpp | 18 ++++- mailnews/mime/emitters/src/nsEmitterUtils.cpp | 81 ++++++++++--------- 2 files changed, 59 insertions(+), 40 deletions(-) diff --git a/mailnews/compose/build/nsMsgCompFactory.cpp b/mailnews/compose/build/nsMsgCompFactory.cpp index 887adcc9b058..1dcf12ba71d1 100644 --- a/mailnews/compose/build/nsMsgCompFactory.cpp +++ b/mailnews/compose/build/nsMsgCompFactory.cpp @@ -34,6 +34,7 @@ #include "nsMsgSendLaterFact.h" #include "nsIServiceManager.h" #include "nsCOMPtr.h" +#include "nsMsgQuote.h" static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); @@ -44,7 +45,7 @@ static NS_DEFINE_CID(kCMsgSendCID, NS_MSGSEND_CID); static NS_DEFINE_CID(kCMsgSendLaterCID, NS_MSGSENDLATER_CID); static NS_DEFINE_CID(kCSmtpServiceCID, NS_SMTPSERVICE_CID); static NS_DEFINE_CID(kCMsgComposeServiceCID, NS_MSGCOMPOSESERVICE_CID); - +static NS_DEFINE_CID(kCMsgQuoteCID, NS_MSGQUOTE_CID); //////////////////////////////////////////////////////////// @@ -183,6 +184,12 @@ nsresult nsMsgComposeFactory::CreateInstance(nsISupports *aOuter, const nsIID &a return aMsgCompService->QueryInterface(kISupportsIID, aResult); } + // Quoting anyone? + else if (mClassID.Equals(kCMsgQuoteCID)) + { + return NS_NewMsgQuote(aIID, aResult); + } + return NS_NOINTERFACE; } @@ -272,6 +279,12 @@ extern "C" NS_EXPORT nsresult NSRegisterSelf(nsISupports* aServMgr, const char* path, PR_TRUE, PR_TRUE); if (NS_FAILED(rv)) finalResult = rv; + + rv = compMgr->RegisterComponent(kCMsgQuoteCID, + "Message Quoting", + "Xcomponent://netscape/messengercompose/smtp", + path, PR_TRUE, PR_TRUE); + if (NS_FAILED(rv)) finalResult = rv; #ifdef NS_DEBUG printf("composer registering from %s\n",path); @@ -307,5 +320,8 @@ NSUnregisterSelf(nsISupports* aServMgr, const char* path) rv = compMgr->UnregisterComponent(kCSmtpServiceCID, path); if (NS_FAILED(rv)) finalResult = rv; + rv = compMgr->UnregisterComponent(kCMsgQuoteCID, path); + if (NS_FAILED(rv)) finalResult = rv; + return finalResult; } diff --git a/mailnews/mime/emitters/src/nsEmitterUtils.cpp b/mailnews/mime/emitters/src/nsEmitterUtils.cpp index 8b8fe6d8b63d..21fdd9e7ecb1 100644 --- a/mailnews/mime/emitters/src/nsEmitterUtils.cpp +++ b/mailnews/mime/emitters/src/nsEmitterUtils.cpp @@ -17,50 +17,53 @@ */ #include "prmem.h" #include "plstr.h" +#include "nsMailHeaders.h" +#include "nsIMimeEmitter.h" -extern "C" char * -nsEscapeHTML(const char * string) +extern "C" PRBool +EmitThisHeaderForPrefSetting(PRInt32 dispType, const char *header) { - if (!string) - return NULL; + if (AllHeaders == dispType) + return PR_TRUE; - char *rv = (char *) PR_MALLOC(PL_strlen(string)*4 + 1); - /* The +1 is for the trailing null! */ - char *ptr = rv; + if ((!header) || (!*header)) + return PR_FALSE; - if(rv) + if (MicroHeaders == dispType) { - for(; *string != '\0'; string++) - { - if(*string == '<') - { - *ptr++ = '&'; - *ptr++ = 'l'; - *ptr++ = 't'; - *ptr++ = ';'; - } - else if(*string == '>') - { - *ptr++ = '&'; - *ptr++ = 'g'; - *ptr++ = 't'; - *ptr++ = ';'; - } - else if(*string == '&') - { - *ptr++ = '&'; - *ptr++ = 'a'; - *ptr++ = 'm'; - *ptr++ = 'p'; - *ptr++ = ';'; - } - else - { - *ptr++ = *string; - } - } - *ptr = '\0'; + if ( + (!PL_strcmp(header, HEADER_SUBJECT)) || + (!PL_strcmp(header, HEADER_FROM)) || + (!PL_strcmp(header, HEADER_DATE)) + ) + return PR_TRUE; + else + return PR_FALSE; } - return(rv); + if (NormalHeaders == dispType) + { + if ( + (!PL_strcmp(header, HEADER_TO)) || + (!PL_strcmp(header, HEADER_SUBJECT)) || + (!PL_strcmp(header, HEADER_SENDER)) || + (!PL_strcmp(header, HEADER_RESENT_TO)) || + (!PL_strcmp(header, HEADER_RESENT_SENDER)) || + (!PL_strcmp(header, HEADER_RESENT_FROM)) || + (!PL_strcmp(header, HEADER_RESENT_CC)) || + (!PL_strcmp(header, HEADER_REPLY_TO)) || + (!PL_strcmp(header, HEADER_REFERENCES)) || + (!PL_strcmp(header, HEADER_NEWSGROUPS)) || + (!PL_strcmp(header, HEADER_MESSAGE_ID)) || + (!PL_strcmp(header, HEADER_FROM)) || + (!PL_strcmp(header, HEADER_FOLLOWUP_TO)) || + (!PL_strcmp(header, HEADER_CC)) || + (!PL_strcmp(header, HEADER_BCC)) + ) + return PR_TRUE; + else + return PR_FALSE; + } + + return PR_TRUE; }