зеркало из https://github.com/mozilla/pjs.git
whitespace code cleanup no bug, r/sr=me
This commit is contained in:
Родитель
ed362771c0
Коммит
fdf11ae696
|
@ -47,53 +47,48 @@ nsImapSearchResultSequence::nsImapSearchResultSequence()
|
|||
|
||||
nsImapSearchResultSequence *nsImapSearchResultSequence::CreateSearchResultSequence()
|
||||
{
|
||||
nsImapSearchResultSequence *returnObject = new nsImapSearchResultSequence;
|
||||
if (!returnObject)
|
||||
{
|
||||
delete returnObject;
|
||||
returnObject = nsnull;
|
||||
}
|
||||
|
||||
return returnObject;
|
||||
return new nsImapSearchResultSequence;
|
||||
}
|
||||
|
||||
void nsImapSearchResultSequence::Clear(void)
|
||||
{
|
||||
if (mImpl) {
|
||||
PRInt32 i = mImpl->mCount;
|
||||
while (0 <= --i) {
|
||||
char* string = (char*)mImpl->mArray[i];
|
||||
delete string;
|
||||
}
|
||||
nsVoidArray::Clear();
|
||||
if (mImpl)
|
||||
{
|
||||
PRInt32 i = mImpl->mCount;
|
||||
while (0 <= --i)
|
||||
{
|
||||
char* string = (char*)mImpl->mArray[i];
|
||||
delete string;
|
||||
}
|
||||
nsVoidArray::Clear();
|
||||
}
|
||||
}
|
||||
|
||||
nsImapSearchResultSequence::~nsImapSearchResultSequence()
|
||||
{
|
||||
Clear();
|
||||
Clear();
|
||||
}
|
||||
|
||||
|
||||
void nsImapSearchResultSequence::ResetSequence()
|
||||
{
|
||||
Clear();
|
||||
Clear();
|
||||
}
|
||||
|
||||
void nsImapSearchResultSequence::AddSearchResultLine(const char *searchLine)
|
||||
{
|
||||
// The first add becomes node 2. Fix this.
|
||||
char *copiedSequence = PL_strdup(searchLine + 9); // 9 == "* SEARCH "
|
||||
|
||||
if (copiedSequence) // if we can't allocate this then the search won't hit
|
||||
AppendElement(copiedSequence);
|
||||
// The first add becomes node 2. Fix this.
|
||||
char *copiedSequence = PL_strdup(searchLine + 9); // 9 == "* SEARCH "
|
||||
|
||||
if (copiedSequence) // if we can't allocate this then the search won't hit
|
||||
AppendElement(copiedSequence);
|
||||
}
|
||||
|
||||
|
||||
nsImapSearchResultIterator::nsImapSearchResultIterator(nsImapSearchResultSequence &sequence) :
|
||||
fSequence(sequence)
|
||||
fSequence(sequence)
|
||||
{
|
||||
ResetIterator();
|
||||
ResetIterator();
|
||||
}
|
||||
|
||||
nsImapSearchResultIterator::~nsImapSearchResultIterator()
|
||||
|
@ -102,32 +97,32 @@ nsImapSearchResultIterator::~nsImapSearchResultIterator()
|
|||
|
||||
void nsImapSearchResultIterator::ResetIterator()
|
||||
{
|
||||
fSequenceIndex = 0;
|
||||
fCurrentLine = (char *) fSequence.SafeElementAt(fSequenceIndex);
|
||||
fPositionInCurrentLine = fCurrentLine;
|
||||
fSequenceIndex = 0;
|
||||
fCurrentLine = (char *) fSequence.SafeElementAt(fSequenceIndex);
|
||||
fPositionInCurrentLine = fCurrentLine;
|
||||
}
|
||||
|
||||
PRInt32 nsImapSearchResultIterator::GetNextMessageNumber()
|
||||
{
|
||||
int32 returnValue = 0;
|
||||
if (fPositionInCurrentLine)
|
||||
{
|
||||
returnValue = atoi(fPositionInCurrentLine);
|
||||
|
||||
// eat the current number
|
||||
while (isdigit(*++fPositionInCurrentLine))
|
||||
;
|
||||
|
||||
if (*fPositionInCurrentLine == 0xD) // found CR, no more digits on line
|
||||
{
|
||||
fCurrentLine = (char *) fSequence.SafeElementAt(++fSequenceIndex);
|
||||
fPositionInCurrentLine = fCurrentLine;
|
||||
}
|
||||
else // eat the space
|
||||
fPositionInCurrentLine++;
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
int32 returnValue = 0;
|
||||
if (fPositionInCurrentLine)
|
||||
{
|
||||
returnValue = atoi(fPositionInCurrentLine);
|
||||
|
||||
// eat the current number
|
||||
while (isdigit(*++fPositionInCurrentLine))
|
||||
;
|
||||
|
||||
if (*fPositionInCurrentLine == 0xD) // found CR, no more digits on line
|
||||
{
|
||||
fCurrentLine = (char *) fSequence.SafeElementAt(++fSequenceIndex);
|
||||
fPositionInCurrentLine = fCurrentLine;
|
||||
}
|
||||
else // eat the space
|
||||
fPositionInCurrentLine++;
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
|
||||
virtual void AddSearchResultLine(const char *searchLine);
|
||||
virtual void ResetSequence();
|
||||
void Clear();
|
||||
void Clear();
|
||||
|
||||
friend class nsImapSearchResultIterator;
|
||||
private:
|
||||
|
@ -63,9 +63,9 @@ public:
|
|||
PRInt32 GetNextMessageNumber(); // returns 0 at end of list
|
||||
private:
|
||||
nsImapSearchResultSequence &fSequence;
|
||||
PRInt32 fSequenceIndex;
|
||||
char *fCurrentLine;
|
||||
char *fPositionInCurrentLine;
|
||||
PRInt32 fSequenceIndex;
|
||||
char *fCurrentLine;
|
||||
char *fPositionInCurrentLine;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -2333,42 +2333,42 @@ void nsImapServerResponseParser::namespace_data()
|
|||
|
||||
void nsImapServerResponseParser::myrights_data()
|
||||
{
|
||||
fNextToken = GetNextToken();
|
||||
if (ContinueParse() && !at_end_of_line())
|
||||
{
|
||||
char *mailboxName = CreateAstring(); // PL_strdup(fNextToken);
|
||||
if (mailboxName)
|
||||
{
|
||||
fNextToken = GetNextToken();
|
||||
if (ContinueParse())
|
||||
{
|
||||
char *myrights = CreateAstring(); // PL_strdup(fNextToken);
|
||||
if (myrights)
|
||||
{
|
||||
nsImapProtocol *navCon = &fServerConnection;
|
||||
NS_ASSERTION(navCon, "null connection parsing my rights"); // we should always have this
|
||||
if (navCon)
|
||||
navCon->AddFolderRightsForUser(mailboxName, nsnull /* means "me" */, myrights);
|
||||
PR_Free(myrights);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMemoryFailure();
|
||||
}
|
||||
if (ContinueParse())
|
||||
fNextToken = GetNextToken();
|
||||
}
|
||||
PR_Free(mailboxName);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMemoryFailure();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetSyntaxError(PR_TRUE);
|
||||
}
|
||||
fNextToken = GetNextToken();
|
||||
if (ContinueParse() && !at_end_of_line())
|
||||
{
|
||||
char *mailboxName = CreateAstring(); // PL_strdup(fNextToken);
|
||||
if (mailboxName)
|
||||
{
|
||||
fNextToken = GetNextToken();
|
||||
if (ContinueParse())
|
||||
{
|
||||
char *myrights = CreateAstring(); // PL_strdup(fNextToken);
|
||||
if (myrights)
|
||||
{
|
||||
nsImapProtocol *navCon = &fServerConnection;
|
||||
NS_ASSERTION(navCon, "null connection parsing my rights"); // we should always have this
|
||||
if (navCon)
|
||||
navCon->AddFolderRightsForUser(mailboxName, nsnull /* means "me" */, myrights);
|
||||
PR_Free(myrights);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMemoryFailure();
|
||||
}
|
||||
if (ContinueParse())
|
||||
fNextToken = GetNextToken();
|
||||
}
|
||||
PR_Free(mailboxName);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleMemoryFailure();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetSyntaxError(PR_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
void nsImapServerResponseParser::acl_data()
|
||||
|
@ -2744,102 +2744,102 @@ PRUint32 nsImapServerResponseParser::CurrentResponseUID()
|
|||
|
||||
PRUint32 nsImapServerResponseParser::HighestRecordedUID()
|
||||
{
|
||||
return fHighestRecordedUID;
|
||||
return fHighestRecordedUID;
|
||||
}
|
||||
|
||||
PRBool nsImapServerResponseParser::IsNumericString(const char *string)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < (int) PL_strlen(string); i++)
|
||||
{
|
||||
if (! isdigit(string[i]))
|
||||
{
|
||||
return PR_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
int i;
|
||||
for(i = 0; i < (int) PL_strlen(string); i++)
|
||||
{
|
||||
if (! isdigit(string[i]))
|
||||
{
|
||||
return PR_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
nsImapMailboxSpec *nsImapServerResponseParser::CreateCurrentMailboxSpec(const char *mailboxName /* = nsnull */)
|
||||
{
|
||||
nsImapMailboxSpec *returnSpec = new nsImapMailboxSpec;
|
||||
NS_ADDREF(returnSpec);
|
||||
if (returnSpec)
|
||||
{
|
||||
const char *mailboxNameToConvert = (mailboxName) ? mailboxName : fSelectedMailboxName;
|
||||
if (mailboxNameToConvert)
|
||||
{
|
||||
const char *serverKey =
|
||||
fServerConnection.GetImapServerKey();
|
||||
nsIMAPNamespace *ns = nsnull;
|
||||
if (serverKey && fHostSessionList)
|
||||
{
|
||||
fHostSessionList->GetNamespaceForMailboxForHost(serverKey, mailboxNameToConvert, ns); // for
|
||||
// delimiter
|
||||
}
|
||||
|
||||
if (ns)
|
||||
returnSpec->hierarchySeparator = ns->GetDelimiter();
|
||||
else
|
||||
returnSpec->hierarchySeparator = '/'; // a guess?
|
||||
|
||||
}
|
||||
|
||||
returnSpec->folderSelected = PR_TRUE;
|
||||
returnSpec->folder_UIDVALIDITY = fFolderUIDValidity;
|
||||
returnSpec->number_of_messages = fNumberOfExistingMessages;
|
||||
returnSpec->number_of_unseen_messages = fNumberOfUnseenMessages;
|
||||
returnSpec->number_of_recent_messages = fNumberOfRecentMessages;
|
||||
|
||||
returnSpec->box_flags = kNoFlags; // stub
|
||||
returnSpec->onlineVerified = PR_FALSE; // we're fabricating this. The flags aren't verified.
|
||||
returnSpec->allocatedPathName = nsCRT::strdup(mailboxNameToConvert);
|
||||
returnSpec->connection = &fServerConnection;
|
||||
if (returnSpec->connection)
|
||||
{
|
||||
nsIURI * aUrl = nsnull;
|
||||
nsresult rv = NS_OK;
|
||||
returnSpec->connection->GetCurrentUrl()->QueryInterface(NS_GET_IID(nsIURI), (void **) &aUrl);
|
||||
if (NS_SUCCEEDED(rv) && aUrl) {
|
||||
nsCAutoString host;
|
||||
aUrl->GetHost(host);
|
||||
returnSpec->hostName = ToNewCString(host);
|
||||
}
|
||||
NS_IF_RELEASE(aUrl);
|
||||
|
||||
}
|
||||
else
|
||||
returnSpec->hostName = nsnull;
|
||||
if (fFlagState)
|
||||
returnSpec->flagState = fFlagState; //copies flag state
|
||||
else
|
||||
returnSpec->flagState = nsnull;
|
||||
}
|
||||
else
|
||||
HandleMemoryFailure();
|
||||
|
||||
return returnSpec;
|
||||
|
||||
nsImapMailboxSpec *returnSpec = new nsImapMailboxSpec;
|
||||
NS_ADDREF(returnSpec);
|
||||
if (returnSpec)
|
||||
{
|
||||
const char *mailboxNameToConvert = (mailboxName) ? mailboxName : fSelectedMailboxName;
|
||||
if (mailboxNameToConvert)
|
||||
{
|
||||
const char *serverKey =
|
||||
fServerConnection.GetImapServerKey();
|
||||
nsIMAPNamespace *ns = nsnull;
|
||||
if (serverKey && fHostSessionList)
|
||||
{
|
||||
fHostSessionList->GetNamespaceForMailboxForHost(serverKey, mailboxNameToConvert, ns); // for
|
||||
// delimiter
|
||||
}
|
||||
|
||||
if (ns)
|
||||
returnSpec->hierarchySeparator = ns->GetDelimiter();
|
||||
else
|
||||
returnSpec->hierarchySeparator = '/'; // a guess?
|
||||
|
||||
}
|
||||
|
||||
returnSpec->folderSelected = PR_TRUE;
|
||||
returnSpec->folder_UIDVALIDITY = fFolderUIDValidity;
|
||||
returnSpec->number_of_messages = fNumberOfExistingMessages;
|
||||
returnSpec->number_of_unseen_messages = fNumberOfUnseenMessages;
|
||||
returnSpec->number_of_recent_messages = fNumberOfRecentMessages;
|
||||
|
||||
returnSpec->box_flags = kNoFlags; // stub
|
||||
returnSpec->onlineVerified = PR_FALSE; // we're fabricating this. The flags aren't verified.
|
||||
returnSpec->allocatedPathName = nsCRT::strdup(mailboxNameToConvert);
|
||||
returnSpec->connection = &fServerConnection;
|
||||
if (returnSpec->connection)
|
||||
{
|
||||
nsIURI * aUrl = nsnull;
|
||||
nsresult rv = NS_OK;
|
||||
returnSpec->connection->GetCurrentUrl()->QueryInterface(NS_GET_IID(nsIURI), (void **) &aUrl);
|
||||
if (NS_SUCCEEDED(rv) && aUrl) {
|
||||
nsCAutoString host;
|
||||
aUrl->GetHost(host);
|
||||
returnSpec->hostName = ToNewCString(host);
|
||||
}
|
||||
NS_IF_RELEASE(aUrl);
|
||||
|
||||
}
|
||||
else
|
||||
returnSpec->hostName = nsnull;
|
||||
if (fFlagState)
|
||||
returnSpec->flagState = fFlagState; //copies flag state
|
||||
else
|
||||
returnSpec->flagState = nsnull;
|
||||
}
|
||||
else
|
||||
HandleMemoryFailure();
|
||||
|
||||
return returnSpec;
|
||||
|
||||
}
|
||||
// zero stops a list recording of flags and causes the flags for
|
||||
// each individual message to be sent back to libmsg
|
||||
void nsImapServerResponseParser::ResetFlagInfo(int numberOfInterestingMessages)
|
||||
{
|
||||
if (fFlagState)
|
||||
fFlagState->Reset(numberOfInterestingMessages);
|
||||
if (fFlagState)
|
||||
fFlagState->Reset(numberOfInterestingMessages);
|
||||
}
|
||||
|
||||
|
||||
PRBool nsImapServerResponseParser::GetLastFetchChunkReceived()
|
||||
{
|
||||
return fLastChunk;
|
||||
return fLastChunk;
|
||||
}
|
||||
|
||||
void nsImapServerResponseParser::ClearLastFetchChunkReceived()
|
||||
{
|
||||
fLastChunk = PR_FALSE;
|
||||
fLastChunk = PR_FALSE;
|
||||
}
|
||||
|
||||
void nsImapServerResponseParser::SetHostSessionList(nsIImapHostSessionList*
|
||||
|
|
|
@ -202,7 +202,7 @@ NS_IMETHODIMP
|
|||
nsImapService::SelectFolder(nsIEventQueue * aClientEventQueue,
|
||||
nsIMsgFolder * aImapMailFolder,
|
||||
nsIUrlListener * aUrlListener,
|
||||
nsIMsgWindow *aMsgWindow,
|
||||
nsIMsgWindow *aMsgWindow,
|
||||
nsIURI ** aURL)
|
||||
{
|
||||
NS_ASSERTION (aImapMailFolder && aClientEventQueue,
|
||||
|
@ -1596,8 +1596,8 @@ nsImapService::AddMessageFlags(nsIEventQueue * aClientEventQueue,
|
|||
imapMessageFlagsType flags,
|
||||
PRBool messageIdsAreUID)
|
||||
{
|
||||
return DiddleFlags(aClientEventQueue, aImapMailFolder, aUrlListener, aURL, messageIdentifierList,
|
||||
"addmsgflags", flags, messageIdsAreUID);
|
||||
return DiddleFlags(aClientEventQueue, aImapMailFolder, aUrlListener, aURL, messageIdentifierList,
|
||||
"addmsgflags", flags, messageIdsAreUID);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -1609,8 +1609,8 @@ nsImapService::SubtractMessageFlags(nsIEventQueue * aClientEventQueue,
|
|||
imapMessageFlagsType flags,
|
||||
PRBool messageIdsAreUID)
|
||||
{
|
||||
return DiddleFlags(aClientEventQueue, aImapMailFolder, aUrlListener, aURL, messageIdentifierList,
|
||||
"subtractmsgflags", flags, messageIdsAreUID);
|
||||
return DiddleFlags(aClientEventQueue, aImapMailFolder, aUrlListener, aURL, messageIdentifierList,
|
||||
"subtractmsgflags", flags, messageIdsAreUID);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
@ -1626,8 +1626,8 @@ nsImapService::SetMessageFlags(nsIEventQueue * aClientEventQueue,
|
|||
// NOTE: once we start working with multiple connections, this step will be much more complicated...but for now
|
||||
// just create a connection and process the request.
|
||||
|
||||
return DiddleFlags(aClientEventQueue, aImapMailFolder, aUrlListener, aURL, messageIdentifierList,
|
||||
"setmsgflags", flags, messageIdsAreUID);
|
||||
return DiddleFlags(aClientEventQueue, aImapMailFolder, aUrlListener, aURL, messageIdentifierList,
|
||||
"setmsgflags", flags, messageIdsAreUID);
|
||||
}
|
||||
|
||||
nsresult nsImapService::DiddleFlags(nsIEventQueue * aClientEventQueue,
|
||||
|
@ -1639,51 +1639,51 @@ nsresult nsImapService::DiddleFlags(nsIEventQueue * aClientEventQueue,
|
|||
imapMessageFlagsType flags,
|
||||
PRBool messageIdsAreUID)
|
||||
{
|
||||
// create a protocol instance to handle the request.
|
||||
// NOTE: once we start working with multiple connections, this step will be much more complicated...but for now
|
||||
// just create a connection and process the request.
|
||||
NS_ASSERTION (aImapMailFolder && aClientEventQueue,
|
||||
"Oops ... null pointer");
|
||||
if (!aImapMailFolder || !aClientEventQueue)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
nsCOMPtr<nsIImapUrl> imapUrl;
|
||||
nsCAutoString urlSpec;
|
||||
|
||||
PRUnichar hierarchySeparator = GetHierarchyDelimiter(aImapMailFolder);
|
||||
nsresult rv = CreateStartOfImapUrl(nsnull, getter_AddRefs(imapUrl),
|
||||
aImapMailFolder,
|
||||
aUrlListener, urlSpec, hierarchySeparator);
|
||||
if (NS_SUCCEEDED(rv) && imapUrl)
|
||||
{
|
||||
|
||||
rv = imapUrl->SetImapAction(nsIImapUrl::nsImapMsgFetch);
|
||||
rv = SetImapUrlSink(aImapMailFolder, imapUrl);
|
||||
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
nsCOMPtr<nsIURI> uri = do_QueryInterface(imapUrl);
|
||||
|
||||
urlSpec.Append('/');
|
||||
urlSpec.Append(howToDiddle);
|
||||
urlSpec.Append('>');
|
||||
urlSpec.Append(messageIdsAreUID ? uidString : sequenceString);
|
||||
urlSpec.Append(">");
|
||||
urlSpec.Append(char(hierarchySeparator));
|
||||
nsXPIDLCString folderName;
|
||||
GetFolderName(aImapMailFolder, getter_Copies(folderName));
|
||||
urlSpec.Append((const char *) folderName);
|
||||
urlSpec.Append(">");
|
||||
urlSpec.Append(messageIdentifierList);
|
||||
urlSpec.Append('>');
|
||||
urlSpec.AppendInt(flags);
|
||||
rv = uri->SetSpec(urlSpec);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
rv = GetImapConnectionAndLoadUrl(aClientEventQueue, imapUrl,
|
||||
nsnull, aURL);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
// create a protocol instance to handle the request.
|
||||
// NOTE: once we start working with multiple connections, this step will be much more complicated...but for now
|
||||
// just create a connection and process the request.
|
||||
NS_ASSERTION (aImapMailFolder && aClientEventQueue,
|
||||
"Oops ... null pointer");
|
||||
if (!aImapMailFolder || !aClientEventQueue)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
nsCOMPtr<nsIImapUrl> imapUrl;
|
||||
nsCAutoString urlSpec;
|
||||
|
||||
PRUnichar hierarchySeparator = GetHierarchyDelimiter(aImapMailFolder);
|
||||
nsresult rv = CreateStartOfImapUrl(nsnull, getter_AddRefs(imapUrl),
|
||||
aImapMailFolder,
|
||||
aUrlListener, urlSpec, hierarchySeparator);
|
||||
if (NS_SUCCEEDED(rv) && imapUrl)
|
||||
{
|
||||
|
||||
rv = imapUrl->SetImapAction(nsIImapUrl::nsImapMsgFetch);
|
||||
rv = SetImapUrlSink(aImapMailFolder, imapUrl);
|
||||
|
||||
if (NS_SUCCEEDED(rv))
|
||||
{
|
||||
nsCOMPtr<nsIURI> uri = do_QueryInterface(imapUrl);
|
||||
|
||||
urlSpec.Append('/');
|
||||
urlSpec.Append(howToDiddle);
|
||||
urlSpec.Append('>');
|
||||
urlSpec.Append(messageIdsAreUID ? uidString : sequenceString);
|
||||
urlSpec.Append(">");
|
||||
urlSpec.Append(char(hierarchySeparator));
|
||||
nsXPIDLCString folderName;
|
||||
GetFolderName(aImapMailFolder, getter_Copies(folderName));
|
||||
urlSpec.Append((const char *) folderName);
|
||||
urlSpec.Append(">");
|
||||
urlSpec.Append(messageIdentifierList);
|
||||
urlSpec.Append('>');
|
||||
urlSpec.AppendInt(flags);
|
||||
rv = uri->SetSpec(urlSpec);
|
||||
if (NS_SUCCEEDED(rv))
|
||||
rv = GetImapConnectionAndLoadUrl(aClientEventQueue, imapUrl,
|
||||
nsnull, aURL);
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -1695,9 +1695,9 @@ nsImapService::SetImapUrlSink(nsIMsgFolder* aMsgFolder,
|
|||
nsCOMPtr <nsIMsgIncomingServer> incomingServer;
|
||||
nsCOMPtr <nsIImapServerSink> imapServerSink;
|
||||
|
||||
NS_ASSERTION (aMsgFolder && aImapUrl, "Oops ... null pointers");
|
||||
if (!aMsgFolder || !aImapUrl)
|
||||
return rv;
|
||||
NS_ASSERTION (aMsgFolder && aImapUrl, "Oops ... null pointers");
|
||||
if (!aMsgFolder || !aImapUrl)
|
||||
return rv;
|
||||
|
||||
rv = aMsgFolder->GetServer(getter_AddRefs(incomingServer));
|
||||
if (NS_SUCCEEDED(rv) && incomingServer)
|
||||
|
@ -2218,18 +2218,14 @@ nsImapService::GetImapConnectionAndLoadUrl(nsIEventQueue* aClientEventQueue,
|
|||
rv = msgUrl->GetServer(getter_AddRefs(aMsgIncomingServer));
|
||||
|
||||
if (aURL)
|
||||
{
|
||||
*aURL = msgUrl;
|
||||
NS_IF_ADDREF(*aURL);
|
||||
}
|
||||
NS_IF_ADDREF(*aURL = msgUrl);
|
||||
|
||||
if (NS_SUCCEEDED(rv) && aMsgIncomingServer)
|
||||
{
|
||||
nsCOMPtr<nsIImapIncomingServer> aImapServer(do_QueryInterface(aMsgIncomingServer, &rv));
|
||||
if (NS_SUCCEEDED(rv) && aImapServer)
|
||||
rv = aImapServer->GetImapConnectionAndLoadUrl(aClientEventQueue,
|
||||
aImapUrl,
|
||||
aConsumer);
|
||||
aImapUrl, aConsumer);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
@ -2417,7 +2413,7 @@ nsImapService::EnsureFolderExists(nsIEventQueue* eventQueue, nsIMsgFolder* paren
|
|||
nsCAutoString urlSpec;
|
||||
nsresult rv;
|
||||
|
||||
PRUnichar hierarchySeparator = GetHierarchyDelimiter(parent);
|
||||
PRUnichar hierarchySeparator = GetHierarchyDelimiter(parent);
|
||||
rv = CreateStartOfImapUrl(nsnull, getter_AddRefs(imapUrl), parent, urlListener, urlSpec, hierarchySeparator);
|
||||
if (NS_SUCCEEDED(rv) && imapUrl)
|
||||
{
|
||||
|
|
|
@ -243,106 +243,104 @@ nsImapMoveCopyMsgTxn::UndoTransaction(void)
|
|||
NS_IMETHODIMP
|
||||
nsImapMoveCopyMsgTxn::RedoTransaction(void)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIImapService> imapService = do_GetService(NS_IMAPSERVICE_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv,rv);
|
||||
|
||||
|
||||
if (m_isMove || !m_dstFolder)
|
||||
{
|
||||
if (m_srcIsPop3)
|
||||
{
|
||||
if (m_srcIsPop3)
|
||||
{
|
||||
rv = RedoMailboxDelete();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
else
|
||||
{
|
||||
nsCOMPtr<nsIMsgFolder> srcFolder = do_QueryReferent(m_srcFolder, &rv);
|
||||
if (NS_FAILED(rv) || !srcFolder)
|
||||
return rv;
|
||||
nsCOMPtr<nsIUrlListener> srcListener =
|
||||
do_QueryInterface(srcFolder, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
PRBool deletedMsgs = PR_FALSE; //default will be false unless imapDeleteModel;
|
||||
nsMsgImapDeleteModel deleteModel;
|
||||
rv = GetImapDeleteModel(srcFolder, &deleteModel);
|
||||
|
||||
// protect against a bogus undo txn without any source keys
|
||||
// see bug #179856 for details
|
||||
NS_ASSERTION(m_srcKeyArray.GetSize(), "no source keys");
|
||||
if (!m_srcKeyArray.GetSize())
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
|
||||
if (NS_SUCCEEDED(rv) && deleteModel == nsMsgImapDeleteModels::IMAPDelete)
|
||||
rv = CheckForToggleDelete(srcFolder, m_srcKeyArray.GetAt(0), &deletedMsgs);
|
||||
|
||||
// ** make sire we are in the selected state; use lite select
|
||||
// folder so we won't hit preformace hard
|
||||
rv = imapService->LiteSelectFolder(m_eventQueue, srcFolder,
|
||||
srcListener, nsnull);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
if (deletedMsgs)
|
||||
rv = imapService->SubtractMessageFlags(
|
||||
m_eventQueue, srcFolder, srcListener, nsnull,
|
||||
m_srcMsgIdString.get(), kImapMsgDeletedFlag,
|
||||
m_idsAreUids);
|
||||
else
|
||||
rv = imapService->AddMessageFlags(m_eventQueue, srcFolder,
|
||||
rv = RedoMailboxDelete();
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
else
|
||||
{
|
||||
nsCOMPtr<nsIMsgFolder> srcFolder = do_QueryReferent(m_srcFolder, &rv);
|
||||
if (NS_FAILED(rv) || !srcFolder)
|
||||
return rv;
|
||||
nsCOMPtr<nsIUrlListener> srcListener =
|
||||
do_QueryInterface(srcFolder, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
||||
PRBool deletedMsgs = PR_FALSE; //default will be false unless imapDeleteModel;
|
||||
nsMsgImapDeleteModel deleteModel;
|
||||
rv = GetImapDeleteModel(srcFolder, &deleteModel);
|
||||
|
||||
// protect against a bogus undo txn without any source keys
|
||||
// see bug #179856 for details
|
||||
NS_ASSERTION(m_srcKeyArray.GetSize(), "no source keys");
|
||||
if (!m_srcKeyArray.GetSize())
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
|
||||
if (NS_SUCCEEDED(rv) && deleteModel == nsMsgImapDeleteModels::IMAPDelete)
|
||||
rv = CheckForToggleDelete(srcFolder, m_srcKeyArray.GetAt(0), &deletedMsgs);
|
||||
|
||||
// ** make sire we are in the selected state; use lite select
|
||||
// folder so we won't hit preformace hard
|
||||
rv = imapService->LiteSelectFolder(m_eventQueue, srcFolder,
|
||||
srcListener, nsnull);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
if (deletedMsgs)
|
||||
rv = imapService->SubtractMessageFlags(m_eventQueue, srcFolder,
|
||||
srcListener, nsnull,
|
||||
m_srcMsgIdString.get(),
|
||||
kImapMsgDeletedFlag,
|
||||
m_srcMsgIdString.get(), kImapMsgDeletedFlag,
|
||||
m_idsAreUids);
|
||||
}
|
||||
else
|
||||
rv = imapService->AddMessageFlags(m_eventQueue, srcFolder,
|
||||
srcListener, nsnull, m_srcMsgIdString.get(),
|
||||
kImapMsgDeletedFlag, m_idsAreUids);
|
||||
}
|
||||
if (m_dstKeyArray.GetSize() > 0)
|
||||
{
|
||||
nsCOMPtr<nsIMsgFolder> dstFolder = do_QueryReferent(m_dstFolder, &rv);
|
||||
if (NS_FAILED(rv) || !dstFolder) return rv;
|
||||
|
||||
nsCOMPtr<nsIUrlListener> dstListener;
|
||||
|
||||
dstListener = do_QueryInterface(dstFolder, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
// ** make sure we are in the selected state; use lite select
|
||||
// folder so we won't hit preformace hard
|
||||
rv = imapService->LiteSelectFolder(m_eventQueue, dstFolder,
|
||||
dstListener, nsnull);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
rv = imapService->SubtractMessageFlags(m_eventQueue, dstFolder,
|
||||
dstListener, nsnull,
|
||||
m_dstMsgIdString.get(),
|
||||
kImapMsgDeletedFlag,
|
||||
m_idsAreUids);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsMsgImapDeleteModel deleteModel;
|
||||
rv = GetImapDeleteModel(dstFolder, &deleteModel);
|
||||
if (NS_FAILED(rv) || deleteModel == nsMsgImapDeleteModels::MoveToTrash)
|
||||
rv = imapService->GetHeaders(m_eventQueue, dstFolder,
|
||||
dstListener, nsnull,
|
||||
m_dstMsgIdString.get(),
|
||||
PR_TRUE);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
if (m_dstKeyArray.GetSize() > 0)
|
||||
{
|
||||
nsCOMPtr<nsIMsgFolder> dstFolder = do_QueryReferent(m_dstFolder, &rv);
|
||||
if (NS_FAILED(rv) || !dstFolder) return rv;
|
||||
|
||||
nsCOMPtr<nsIUrlListener> dstListener;
|
||||
|
||||
dstListener = do_QueryInterface(dstFolder, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
// ** make sure we are in the selected state; use lite select
|
||||
// folder so we won't hit preformace hard
|
||||
rv = imapService->LiteSelectFolder(m_eventQueue, dstFolder,
|
||||
dstListener, nsnull);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
rv = imapService->SubtractMessageFlags(m_eventQueue, dstFolder,
|
||||
dstListener, nsnull,
|
||||
m_dstMsgIdString.get(),
|
||||
kImapMsgDeletedFlag,
|
||||
m_idsAreUids);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsMsgImapDeleteModel deleteModel;
|
||||
rv = GetImapDeleteModel(dstFolder, &deleteModel);
|
||||
if (NS_FAILED(rv) || deleteModel == nsMsgImapDeleteModels::MoveToTrash)
|
||||
rv = imapService->GetHeaders(m_eventQueue, dstFolder,
|
||||
dstListener, nsnull,
|
||||
m_dstMsgIdString.get(),
|
||||
PR_TRUE);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsImapMoveCopyMsgTxn::SetCopyResponseUid(nsMsgKeyArray* aKeyArray,
|
||||
const char* aMsgIdString)
|
||||
const char* aMsgIdString)
|
||||
{
|
||||
if (!aKeyArray || !aMsgIdString) return NS_ERROR_NULL_POINTER;
|
||||
m_dstKeyArray.CopyArray(aKeyArray);
|
||||
m_dstMsgIdString = aMsgIdString;
|
||||
if (m_dstMsgIdString.Last() == ']')
|
||||
{
|
||||
PRInt32 len = m_dstMsgIdString.Length();
|
||||
m_dstMsgIdString.SetLength(len - 1);
|
||||
}
|
||||
return NS_OK;
|
||||
if (!aKeyArray || !aMsgIdString) return NS_ERROR_NULL_POINTER;
|
||||
m_dstKeyArray.CopyArray(aKeyArray);
|
||||
m_dstMsgIdString = aMsgIdString;
|
||||
if (m_dstMsgIdString.Last() == ']')
|
||||
{
|
||||
PRInt32 len = m_dstMsgIdString.Length();
|
||||
m_dstMsgIdString.SetLength(len - 1);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
|
Загрузка…
Ссылка в новой задаче