Bug 351920 Remove uses of nsSpecialSystemDirectory from mailnews. r=bienvenu,sr=mscott

This commit is contained in:
bugzilla%standard8.demon.co.uk 2006-09-16 08:04:20 +00:00
Родитель 8488224bfa
Коммит 54d90ef466
19 изменённых файлов: 215 добавлений и 104 удалений

Просмотреть файл

@ -43,7 +43,7 @@
#include "nsMsgFilterService.h"
#include "nsFileStream.h"
#include "nsMsgFilterList.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIPrompt.h"
#include "nsIDocShell.h"
#include "nsIMsgWindow.h"
@ -63,6 +63,7 @@
#include "nsIOutputStream.h"
#include "nsIMsgComposeService.h"
#include "nsMsgCompCID.h"
#include "nsMsgUtils.h"
NS_IMPL_ISUPPORTS1(nsMsgFilterService, nsIMsgFilterService)
@ -147,11 +148,9 @@ NS_IMETHODIMP nsMsgFilterService::SaveFilterList(nsIMsgFilterList *filterList, n
nsCOMPtr <nsIFileSpec> realFiltersFile;
nsCOMPtr <nsIFileSpec> parentDir;
nsSpecialSystemDirectory tmpFile(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpFile += "tmprules.dat";
ret = NS_NewFileSpecWithSpec(tmpFile, getter_AddRefs(tmpFiltersFile));
ret = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"tmprules.dat",
getter_AddRefs(tmpFiltersFile));
NS_ASSERTION(NS_SUCCEEDED(ret),"writing filters file: failed to append filename");
if (NS_FAILED(ret))

Просмотреть файл

@ -52,8 +52,8 @@
#include "nsReadableUtils.h"
#include "nsIFileSpec.h"
#include "nsILocalFile.h"
#include "nsDirectoryServiceDefs.h"
#include "nsISupportsObsolete.h"
#include "nsSpecialSystemDirectory.h"
#include "nsQuickSort.h"
#if defined(XP_MAC) || defined(XP_MACOSX)
#include "nsIAppleFileDecoder.h"
@ -2992,17 +2992,14 @@ nsDelAttachListener::StartProcessing(nsMessenger * aMessenger, nsIMsgWindow * aM
// create an output stream on a temporary file. This stream will save the modified
// message data to a file which we will later use to replace the existing message.
// The file is removed in the destructor.
nsFileSpec * msgFileSpec = new nsFileSpec(
nsSpecialSystemDirectory(nsSpecialSystemDirectory::OS_TemporaryDirectory) );
if (!msgFileSpec) return NS_ERROR_OUT_OF_MEMORY;
*msgFileSpec += "nsmail.tmp";
msgFileSpec->MakeUnique();
rv = NS_NewFileSpecWithSpec(*msgFileSpec, getter_AddRefs(mMsgFileSpec));
nsCOMPtr<nsILocalFile> msgFile;
if (NS_SUCCEEDED(rv))
rv = NS_FileSpecToIFile(msgFileSpec, getter_AddRefs(msgFile));
delete msgFileSpec;
nsCOMPtr<nsIFile> msgFile;
rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR, "nsmail.tmp",
getter_AddRefs(msgFile));
NS_ENSURE_SUCCESS(rv,rv);
rv = msgFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600);
NS_ENSURE_SUCCESS(rv,rv);
nsCOMPtr<nsIOutputStream> fileOutputStream;
rv = NS_NewLocalFileOutputStream(getter_AddRefs(fileOutputStream), msgFile, -1, 00600);
NS_ENSURE_SUCCESS(rv,rv);

Просмотреть файл

@ -43,7 +43,6 @@
#include "nsISocketTransportService.h"
#include "nsISocketTransport.h"
#include "nsXPIDLString.h"
#include "nsSpecialSystemDirectory.h"
#include "nsILoadGroup.h"
#include "nsIIOService.h"
#include "nsNetUtil.h"
@ -62,6 +61,8 @@
#include "nsThreadUtils.h"
#include "nsIPrefBranch.h"
#include "nsIPrefService.h"
#include "nsDirectoryServiceDefs.h"
#include "nsMsgUtils.h"
NS_IMPL_THREADSAFE_ADDREF(nsMsgProtocol)
NS_IMPL_THREADSAFE_RELEASE(nsMsgProtocol)
@ -84,9 +85,10 @@ nsMsgProtocol::nsMsgProtocol(nsIURI * aURL)
m_readCount = 0;
mLoadFlags = 0;
m_socketIsOpen = PR_FALSE;
m_tempMsgFileSpec = nsSpecialSystemDirectory(nsSpecialSystemDirectory::OS_TemporaryDirectory);
m_tempMsgFileSpec += "tempMessage.eml";
GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR, "tempMessage.eml",
getter_AddRefs(m_tempMsgFile));
mSuppressListenerNotifications = PR_FALSE;
InitFromURI(aURL);
}

Просмотреть файл

@ -165,7 +165,7 @@ protected:
//PRUint32 m_startPosition;
PRInt32 m_readCount;
nsFileSpec m_tempMsgFileSpec; // we currently have a hack where displaying a msg involves writing it to a temp file first
nsCOMPtr<nsIFile> m_tempMsgFile; // we currently have a hack where displaying a msg involves writing it to a temp file first
// auth module for access to NTLM functions
nsCOMPtr<nsIAuthModule> m_authModule;

Просмотреть файл

@ -1221,6 +1221,47 @@ void GetSummaryFileLocation(nsFileSpec& fileLocation, nsFileSpec* summaryLocatio
summaryLocation->SetLeafName(fileName);
}
// Gets a special directory and appends the supplied file name onto it.
nsresult GetSpecialDirectoryWithFileName(const char* specialDirName,
const char* fileName,
nsIFile** result)
{
nsresult rv = NS_GetSpecialDirectory(specialDirName, result);
NS_ENSURE_SUCCESS(rv, rv);
return (*result)->AppendNative(nsDependentCString(fileName));
}
// XXX This function is provided temporarily whilst we are still working
// on bug 33451 to remove nsIFileSpec from mailnews.
nsresult GetSpecialDirectoryWithFileName(const char* specialDirName,
const char* fileName,
nsIFileSpec** result)
{
nsCOMPtr<nsIFile> tmpFile;
nsresult rv = GetSpecialDirectoryWithFileName(specialDirName, fileName,
getter_AddRefs(tmpFile));
NS_ENSURE_SUCCESS(rv, rv);
return NS_NewFileSpecFromIFile(tmpFile, result);
}
// XXX This function is provided temporarily whilst we are still working
// on bug 33451 to remove nsIFileSpec from mailnews.
nsresult GetSpecialDirectoryWithFileName(const char* specialDirName,
const char* fileName,
nsFileSpec* result)
{
nsCOMPtr<nsIFileSpec> tmpFile;
nsresult rv = GetSpecialDirectoryWithFileName(specialDirName, fileName,
getter_AddRefs(tmpFile));
NS_ENSURE_SUCCESS(rv, rv);
return tmpFile->GetFileSpec(result);
}
PRBool MsgFindKeyword(const nsACString &keyword, nsACString &keywords, nsACString::const_iterator &start, nsACString::const_iterator &end)
{
keywords.BeginReading(start);

Просмотреть файл

@ -158,6 +158,24 @@ NS_MSG_BASE nsresult GetSummaryFileLocation(nsIFileSpec* fileLocation,
// on bug 33451 to remove nsIFileSpec from mailnews.
NS_MSG_BASE void GetSummaryFileLocation(nsFileSpec& fileLocation,
nsFileSpec* summaryLocation);
// Gets a special directory and appends the supplied file name onto it.
NS_MSG_BASE nsresult GetSpecialDirectoryWithFileName(const char* specialDirName,
const char* fileName,
nsIFile** result);
// XXX This function is provided temporarily whilst we are still working
// on bug 33451 to remove nsIFileSpec from mailnews.
NS_MSG_BASE nsresult GetSpecialDirectoryWithFileName(const char* specialDirName,
const char* fileName,
nsIFileSpec** result);
// XXX This function is provided temporarily whilst we are still working
// on bug 33451 to remove nsIFileSpec from mailnews.
NS_MSG_BASE nsresult GetSpecialDirectoryWithFileName(const char* specialDirName,
const char* fileName,
nsFileSpec* result);
// fills in the position of the passed in keyword in the passed in keyword list
// and returns false if the keyword isn't present
NS_MSG_BASE PRBool MsgFindKeyword(const nsACString &keyword, nsACString &keywords,

Просмотреть файл

@ -53,7 +53,7 @@
#include "nsMsgComposeStringBundle.h"
#include "nsXPIDLString.h"
#include "nsReadableUtils.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIDocumentEncoder.h" // for editor output flags
#include "nsIURI.h"
#include "nsNetCID.h"
@ -119,12 +119,16 @@ nsMsgCreateTempFileSpec(const char *tFileName)
if ((!tFileName) || (!*tFileName))
tFileName = "nsmail.tmp";
nsFileSpec *tmpSpec = new nsFileSpec(nsSpecialSystemDirectory(nsSpecialSystemDirectory::OS_TemporaryDirectory));
if (!tmpSpec)
nsFileSpec *tmpSpec = new nsFileSpec;
if (NS_FAILED(GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
tFileName,
tmpSpec)))
{
delete tmpSpec;
return nsnull;
}
*tmpSpec += tFileName;
tmpSpec->MakeUnique();
return tmpSpec;
@ -141,15 +145,28 @@ nsMsgCreateTempFileName(const char *tFileName)
if ((!tFileName) || (!*tFileName))
tFileName = "nsmail.tmp";
nsFileSpec tmpSpec = nsSpecialSystemDirectory(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpSpec += tFileName;
tmpSpec.MakeUnique();
nsCOMPtr<nsIFile> tmpFile;
char *tString = (char *)PL_strdup(tmpSpec.GetNativePathCString());
nsresult rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
tFileName,
getter_AddRefs(tmpFile));
if (NS_FAILED(rv))
return nsnull;
rv = tmpFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600);
if (NS_FAILED(rv))
return nsnull;
nsXPIDLCString tempString;
rv = tmpFile->GetNativePath(tempString);
if (NS_FAILED(rv))
return nsnull;
char *tString = (char *)PL_strdup(tempString.get());
if (!tString)
return PL_strdup("mozmail.tmp"); // No need to I18N
else
return tString;
return tString;
}
static PRBool mime_headers_use_quoted_printable_p = PR_FALSE;
@ -1674,8 +1691,6 @@ msg_pick_real_name (nsMsgAttachmentHandler *attachment, const PRUnichar *propose
nsUnescape (attachment->m_real_name);
}
PRInt32 parmFolding = 0;
/* Now a special case for attaching uuencoded files...
If we attach a file "foo.txt.uu", we will send it out with

Просмотреть файл

@ -66,7 +66,6 @@
#include "nsMsgCompUtils.h"
#include "nsIMsgStringService.h"
#include "nsMsgComposeStringBundle.h"
#include "nsSpecialSystemDirectory.h"
#include "nsMsgSend.h"
#include "nsMsgCreate.h"
#include "nsMailHeaders.h"

Просмотреть файл

@ -43,7 +43,6 @@
#include "nsMsgMimeCID.h"
#include "nsIMsgAccountManager.h"
#include "nsMsgBaseCID.h"
#include "nsSpecialSystemDirectory.h"
#include "nsCRT.h"
#include "nsMimeTypes.h"
#include "prmem.h"
@ -62,6 +61,8 @@
#include "nsIPrefService.h"
#include "nsIPrefBranch.h"
#include "nsIStringBundle.h"
#include "nsDirectoryServiceDefs.h"
#include "nsMsgUtils.h"
#define MDN_NOT_IN_TO_CC ((int) 0x0001)
#define MDN_OUTSIDE_DOMAIN ((int) 0x0002)
@ -408,12 +409,18 @@ nsresult nsMsgMdnGenerator::CreateMdnMsg()
if (!m_reallySendMdn)
return NS_OK;
nsSpecialSystemDirectory
tmpFile(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpFile += "mdnmsg";
tmpFile.MakeUnique();
rv = NS_NewFileSpecWithSpec(tmpFile, getter_AddRefs(m_fileSpec));
nsCOMPtr<nsIFile> tmpFile;
rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"mdnmsg",
getter_AddRefs(tmpFile));
NS_ENSURE_SUCCESS(rv, rv);
rv = tmpFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600);
NS_ENSURE_SUCCESS(rv, rv);
rv = NS_NewFileSpecFromIFile(tmpFile, getter_AddRefs(m_fileSpec));
NS_ASSERTION(NS_SUCCEEDED(rv),"creating mdn: failed to create");
if (NS_FAILED(rv))

Просмотреть файл

@ -81,7 +81,6 @@
#include "nsIDocShell.h"
#include "nsIInterfaceRequestor.h"
#include "nsIInterfaceRequestorUtils.h"
#include "nsSpecialSystemDirectory.h"
#include "nsXPIDLString.h"
#include "nsReadableUtils.h"
#include "nsUnicharUtils.h"
@ -114,6 +113,7 @@
#include "nsIMsgComposeService.h"
#include "nsMsgCompCID.h"
#include "nsICacheEntryDescriptor.h"
#include "nsDirectoryServiceDefs.h"
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
@ -3108,16 +3108,15 @@ NS_IMETHODIMP nsImapMailFolder::BeginCopy(nsIMsgDBHdr *message)
if (message)
m_copyState->m_message = do_QueryInterface(message, &rv);
nsSpecialSystemDirectory tmpFileSpec(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpFileSpec += "nscpmsg.txt";
tmpFileSpec.MakeUnique();
rv = NS_NewFileSpecWithSpec(tmpFileSpec,
getter_AddRefs(m_copyState->m_tmpFileSpec));
nsCOMPtr<nsILocalFile> msgFile;
if (NS_SUCCEEDED(rv))
rv = NS_FileSpecToIFile(&tmpFileSpec, getter_AddRefs(msgFile));
NS_ENSURE_SUCCESS(rv,rv);
nsCOMPtr<nsIFile> msgFile;
rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"nscpmsg.txt",
getter_AddRefs(msgFile));
NS_ENSURE_SUCCESS(rv, rv);
rv = msgFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIOutputStream> fileOutputStream;
rv = NS_NewLocalFileOutputStream(getter_AddRefs(fileOutputStream), msgFile, -1, 00600);
NS_ENSURE_SUCCESS(rv,rv);

Просмотреть файл

@ -47,10 +47,11 @@
#include "nsIMsgAccountManager.h"
#include "nsINntpIncomingServer.h"
#include "nsIRequestObserver.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIFileStream.h"
#include "nsIMsgCopyService.h"
#include "nsImapProtocol.h"
#include "nsMsgUtils.h"
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
@ -379,12 +380,17 @@ nsImapOfflineSync::ProcessAppendMsgOperation(nsIMsgOfflineImapOperation *current
mailHdr->GetMessageOffset(&messageOffset);
mailHdr->GetOfflineMessageSize(&messageSize);
nsCOMPtr <nsIFileSpec> tempFileSpec;
nsSpecialSystemDirectory tmpFileSpec(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpFileSpec += "nscpmsg.txt";
tmpFileSpec.MakeUnique();
rv = NS_NewFileSpecWithSpec(tmpFileSpec,
getter_AddRefs(tempFileSpec));
nsCOMPtr<nsIFile> tmpFile;
if (NS_FAILED(GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"nscpmsg.txt",
getter_AddRefs(tmpFile))))
return;
if (NS_FAILED(tmpFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600)))
return;
NS_NewFileSpecFromIFile(tmpFile, getter_AddRefs(tempFileSpec));
if (tempFileSpec)
{
nsCOMPtr <nsIOutputStream> outputStream;

Просмотреть файл

@ -50,7 +50,7 @@
#include "nsIImportService.h"
#include "nsIImportMailboxDescriptor.h"
#include "nsIImportABDescriptor.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsEudoraStringBundle.h"
#include "nsEudoraImport.h"
#include "nsIPop3IncomingServer.h"
@ -112,11 +112,20 @@ PRBool nsEudoraMac::FindEudoraLocation( nsIFileSpec *pFolder, PRBool findIni, ns
// "Eudora Folder" (not sure if this is true for intl versions of Eudora)
if (!pLookIn) {
nsSpecialSystemDirectory sysDir( nsSpecialSystemDirectory::Mac_SystemDirectory);
pFolder->SetFromFileSpec( sysDir);
nsCOMPtr<nsIFile> sysDir;
nsresult rv = NS_GetSpecialDirectory(NS_OS_SYSTEM_DIR, getter_AddRefs(sysDir));
if (NS_FAILED(rv))
return (PR_FALSE);
nsCOMPtr<nsIFileSpec> sysDirSpec;
rv = NS_NewFileSpecFromIFile(sysDir, getter_AddRefs(sysDirSpec));
if (NS_FAILED(rv))
return (PR_FALSE);
pFolder->FromFileSpec(sysDirSpec);
pFolder->AppendRelativeUnixPath( "Eudora Folder");
PRBool link = PR_FALSE;
nsresult rv = pFolder->IsSymlink( &link);
rv = pFolder->IsSymlink( &link);
if (NS_SUCCEEDED( rv) && link) {
rv = pFolder->ResolveSymlink();
if (NS_FAILED( rv))
@ -478,9 +487,18 @@ PRBool nsEudoraMac::CreateTocFromResource( nsIFileSpec *pMail, nsIFileSpec *pToc
if (resH) {
PRInt32 sz = (PRInt32) GetHandleSize( resH);
if (sz) {
// Create the new TOC file
nsSpecialSystemDirectory dir( nsSpecialSystemDirectory::OS_TemporaryDirectory);
rv = pToc->SetFromFileSpec( dir);
// Create the new TOC file
nsCOMPtr<nsIFile> tempDir;
nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(tempDir));
if (NS_FAILED(rv))
return (PR_FALSE);
nsCOMPtr<nsIFileSpec> dir;
rv = NS_NewFileSpecFromIFile(tempDir, getter_AddRefs(dir));
if (NS_FAILED(rv))
return (PR_FALSE);
rv = pToc->FromFileSpec( dir);
if (NS_SUCCEEDED( rv))
rv = pToc->AppendRelativeUnixPath( "temp.toc");
if (NS_SUCCEEDED( rv))

Просмотреть файл

@ -40,9 +40,10 @@
#include "nsCOMPtr.h"
#include "nsReadableUtils.h"
#include "nsEudoraMailbox.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsEudoraCompose.h"
#include "nspr.h"
#include "nsMsgUtils.h"
#include "EudoraDebugLog.h"
@ -118,23 +119,18 @@ nsEudoraMailbox::~nsEudoraMailbox()
nsresult nsEudoraMailbox::CreateTempFile( nsIFileSpec **ppSpec)
{
*ppSpec = nsnull;
nsSpecialSystemDirectory temp(nsSpecialSystemDirectory::OS_TemporaryDirectory);
// nsSpecialSystemDirectory temp(nsSpecialSystemDirectory::Mac_DesktopDirectory);
temp += "impmail.txt";
temp.MakeUnique();
nsresult rv = NS_NewFileSpecWithSpec( temp, ppSpec);
if (NS_SUCCEEDED(rv)) {
if (*ppSpec)
return( NS_OK);
else
return( NS_ERROR_FAILURE);
}
*ppSpec = nsnull;
return( rv);
nsCOMPtr<nsIFile> tmpFile;
nsresult rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"impmail.txt",
getter_AddRefs(tmpFile));
NS_ENSURE_SUCCESS(rv, rv);
rv = tmpFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600);
NS_ENSURE_SUCCESS(rv, rv);
return NS_NewFileSpecFromIFile(tmpFile, ppSpec);
}
nsresult nsEudoraMailbox::DeleteFile( nsIFileSpec *pSpec)

Просмотреть файл

@ -39,7 +39,8 @@
#include <time.h>
#include "nsString.h"
#include "nsFileSpec.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsMsgUtils.h"
#include "MapiDbgLog.h"
#include "MapiApi.h"
@ -605,14 +606,19 @@ BOOL CMapiMessage::CopyBinAttachToFile( LPATTACH lpAttach)
m_ownsAttachFile = FALSE;
m_attachPath.Truncate();
const char *tFileName = "mapiattach.tmp";
nsCOMPtr<nsIFile> tmpFile;
nsresult rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"mapiattach.tmp",
getter_AddRefs(tmpFile));
NS_ENSURE_SUCCESS(rv, rv);
nsFileSpec tmpSpec = nsSpecialSystemDirectory(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpSpec += tFileName;
tmpSpec.MakeUnique();
rv = tmpFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 00600);
NS_ENSURE_SUCCESS(rv, rv);
nsXPIDLCString tmpPath;
tmpFile->GetNativePath(tmpPath);
HRESULT hr = CMapiApi::OpenStreamOnFile( gpMapiAllocateBuffer, gpMapiFreeBuffer, STGM_READWRITE | STGM_CREATE,
(char *) tmpSpec.GetNativePathCString(), NULL, &lpStreamFile);
(char *) tmpPath.get(), NULL, &lpStreamFile);
if (HR_FAILED(hr)) {
MAPI_TRACE1( "~~ERROR~~ OpenStreamOnFile failed - temp path: %s\r\n", tPath);
return( FALSE);
@ -644,7 +650,7 @@ BOOL CMapiMessage::CopyBinAttachToFile( LPATTACH lpAttach)
}
}
m_attachPath = tmpSpec.GetNativePathCString();
m_attachPath = tmpPath;
if (lpAttachStream)
lpAttachStream->Release();
lpStreamFile->Release();

Просмотреть файл

@ -222,7 +222,7 @@ nsresult nsMailboxProtocol::Initialize(nsIURI * aURL)
m_initialState = MAILBOX_READ_FOLDER;
mCurrentProgress = 0;
NS_NewFileSpecWithSpec(m_tempMsgFileSpec, getter_AddRefs(m_tempMessageFile));
NS_NewFileSpecFromIFile(m_tempMsgFile, getter_AddRefs(m_tempMessageFile));
return rv;
}

Просмотреть файл

@ -59,7 +59,7 @@
#include "nsLocalMailFolder.h"
#include "nsIPrefBranch.h"
#include "nsIPrefService.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIMsgStringService.h"
#include "nsIPrompt.h"
#include "nsIPromptService.h"
@ -68,6 +68,7 @@
#include "nsIDocShell.h"
#include "nsIDOMWindowInternal.h"
#include "nsEmbedCID.h"
#include "nsMsgUtils.h"
NS_IMPL_THREADSAFE_ISUPPORTS1(nsPop3Sink, nsIPop3Sink)
@ -309,11 +310,10 @@ nsPop3Sink::BeginMailDelivery(PRBool uidlDownload, nsIMsgWindow *aMsgWindow, PRB
if (m_downloadingToTempFile)
{
// need to create an nsIOFileStream from a temp file...
nsCOMPtr <nsIFileSpec> tmpDownloadFile;
nsSpecialSystemDirectory tmpFile(nsSpecialSystemDirectory::OS_TemporaryDirectory);
tmpFile += "newmsg";
rv = NS_NewFileSpecWithSpec(tmpFile, getter_AddRefs(tmpDownloadFile));
nsCOMPtr<nsIFileSpec> tmpDownloadFile;
rv = GetSpecialDirectoryWithFileName(NS_OS_TEMP_DIR,
"newmsg",
getter_AddRefs(tmpDownloadFile));
NS_ASSERTION(NS_SUCCEEDED(rv),"writing tmp pop3 download file: failed to append filename");
if (NS_FAILED(rv))

Просмотреть файл

@ -72,7 +72,7 @@
#include "nsIMsgComposeService.h"
#include "nsMsgI18N.h"
#include "nsNativeCharsetUtils.h"
#include "nsSpecialSystemDirectory.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIMsgMessageService.h"
#include "nsMsgUtils.h"
#include "nsXPIDLString.h"
@ -121,12 +121,22 @@ nsFileSpec *
nsMsgCreateTempFileSpec(const char *tFileName)
{
//Calling NS_MsgHashIfNecessary so that when Replies are forwarded - the ':' in the subject line doesn't cause problems
nsFileSpec *tmpSpec = new nsFileSpec(nsSpecialSystemDirectory(nsSpecialSystemDirectory::OS_TemporaryDirectory));
NS_ASSERTION(tmpSpec, "out of memory");
nsCOMPtr<nsIFile> tmpFile;
nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(tmpFile));
if (NS_FAILED(rv))
return nsnull;
nsCOMPtr<nsIFileSpec> tmpFileSpec;
rv = NS_NewFileSpecFromIFile(tmpFile, getter_AddRefs(tmpFileSpec));
if (NS_FAILED(rv))
return nsnull;
nsFileSpec *tmpSpec = new nsFileSpec;
tmpFileSpec->GetFileSpec(tmpSpec);
if (!tmpSpec)
return nsnull;
nsresult rv = NS_OK;
nsCAutoString tempName;
if ((!tFileName) || (!*tFileName)) {
tempName = SAFE_TMP_FILENAME;

Просмотреть файл

@ -67,7 +67,6 @@
#include "nsStreamConverter.h"
#include "nsIMsgSend.h"
#include "nsIMsgMailNewsUrl.h"
#include "nsSpecialSystemDirectory.h"
#include "mozITXTToHTMLConv.h"
#include "nsCExternalHandlerService.h"
#include "nsIMIMEService.h"

Просмотреть файл

@ -55,7 +55,6 @@
#include "nsIMsgWindow.h"
#include "nsMsgLineBuffer.h"
#include "nsSpecialSystemDirectory.h"
#include "nsXPIDLString.h"
#include "nsIStringBundle.h"
#include "nsITimer.h"