changes for quoting

This commit is contained in:
rhp%netscape.com 1999-06-15 23:25:52 +00:00
parent dd66ebf9ae
commit 4902e7b8f1
2 changed files with 59 additions and 40 deletions

View File

@ -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;
}

View File

@ -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;
}