зеркало из https://github.com/mozilla/pjs.git
add option to make sure there are imap deleted messages before doing an expunge, off by default, patch by mikael@parknet.se, r=neil, sr=bienvenu 235004
This commit is contained in:
Родитель
bb5de69a15
Коммит
9bdfe72d87
|
@ -321,6 +321,7 @@ static PRBool gHideUnusedNamespaces = PR_TRUE;
|
|||
static PRBool gHideOtherUsersFromList = PR_FALSE;
|
||||
static PRBool gUseEnvelopeCmd = PR_FALSE;
|
||||
static PRBool gUseLiteralPlus = PR_TRUE;
|
||||
static PRBool gCheckDeletedBeforeExpunge = PR_FALSE; //bug 235004
|
||||
|
||||
nsresult nsImapProtocol::GlobalInitialization()
|
||||
{
|
||||
|
@ -343,6 +344,7 @@ nsresult nsImapProtocol::GlobalInitialization()
|
|||
prefBranch->GetBoolPref("mail.imap.use_envelope_cmd",
|
||||
&gUseEnvelopeCmd);
|
||||
prefBranch->GetBoolPref("mail.imap.use_literal_plus", &gUseLiteralPlus);
|
||||
prefBranch->GetBoolPref("mail.imap.check_deleted_before_expunge", &gCheckDeletedBeforeExpunge);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -4772,9 +4774,23 @@ void
|
|||
nsImapProtocol::Expunge()
|
||||
{
|
||||
ProgressEventFunctionUsingId (IMAP_STATUS_EXPUNGING_MAILBOX);
|
||||
|
||||
if(gCheckDeletedBeforeExpunge)
|
||||
{
|
||||
GetServerStateParser().ResetSearchResultSequence();
|
||||
Search("SEARCH DELETED", PR_FALSE, PR_FALSE);
|
||||
if (GetServerStateParser().LastCommandSuccessful())
|
||||
{
|
||||
nsImapSearchResultIterator *search = GetServerStateParser().CreateSearchResultIterator();
|
||||
nsMsgKey key = search->GetNextMessageNumber();
|
||||
delete search;
|
||||
if (key == 0)
|
||||
return; //no deleted messages to expunge (bug 235004)
|
||||
}
|
||||
}
|
||||
|
||||
IncrementCommandTagNumber();
|
||||
|
||||
nsCString command(GetServerCommandTag());
|
||||
nsCAutoString command(GetServerCommandTag());
|
||||
command.Append(" expunge"CRLF);
|
||||
|
||||
nsresult rv = SendData(command.get());
|
||||
|
|
|
@ -101,6 +101,7 @@ pref("mail.imap.mime_parts_on_demand", true);
|
|||
pref("mail.imap.mime_parts_on_demand_max_depth", 15);
|
||||
pref("mail.imap.mime_parts_on_demand_threshold", 30000);
|
||||
pref("mail.imap.use_literal_plus", true);
|
||||
pref("mail.imap.check_deleted_before_expunge", false);
|
||||
pref("mail.thread_without_re", true);
|
||||
pref("mail.leave_on_server", false);
|
||||
pref("mail.default_cc", "");
|
||||
|
@ -316,8 +317,10 @@ pref("mail.identity.default.compose_html", true);
|
|||
pref("mail.identity.default.valid", true);
|
||||
pref("mail.identity.default.fcc",true);
|
||||
pref("mail.identity.default.fcc_folder","mailbox://nobody@Local%20Folders/Sent");
|
||||
|
||||
// keep these defaults for backwards compatibility and migration
|
||||
|
||||
|
||||
// keep these defaults for backwards compatibility and migration
|
||||
|
||||
// but .doBcc and .doBccList are the right ones from now on.
|
||||
pref("mail.identity.default.bcc_self",false);
|
||||
pref("mail.identity.default.bcc_others",false);
|
||||
|
|
Загрузка…
Ссылка в новой задаче