NS_IMETHODIMP nsNoneService::GetDefaultLocalPath(nsILocalFile ** aResult) { NS_ENSURE_ARG_POINTER(aResult); *aResult = nsnull; PRBool havePref; nsCOMPtr<nsILocalFile> localFile; nsresult rv = NS_GetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, NS_APP_MAIL_50_DIR, havePref, getter_AddRefs(localFile)); if (NS_FAILED(rv)) return rv; PRBool exists; rv = localFile->Exists(&exists); if (NS_SUCCEEDED(rv) && !exists) rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775); if (NS_FAILED(rv)) return rv; if (!havePref || !exists) { rv = NS_SetPersistentFile(PREF_MAIL_ROOT_NONE_REL, PREF_MAIL_ROOT_NONE, localFile); NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref."); } NS_IF_ADDREF(*aResult = localFile); return NS_OK; }
NS_IMETHODIMP nsMsgIdentity::GetSignature(nsIFile **sig) { bool gotRelPref; nsresult rv = NS_GetPersistentFile("sig_file" REL_FILE_PREF_SUFFIX, "sig_file", nsnull, gotRelPref, sig, mPrefBranch); if (NS_SUCCEEDED(rv) && !gotRelPref) { rv = NS_SetPersistentFile("sig_file" REL_FILE_PREF_SUFFIX, "sig_file", *sig, mPrefBranch); NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to write signature file pref."); } return NS_OK; }
NS_IMETHODIMP nsPop3Service::GetDefaultLocalPath(nsIFileSpec ** aResult) { NS_ENSURE_ARG_POINTER(aResult); *aResult = nsnull; nsresult rv; PRBool havePref; nsCOMPtr<nsILocalFile> localFile; rv = NS_GetPersistentFile(PREF_MAIL_ROOT_POP3_REL, PREF_MAIL_ROOT_POP3, NS_APP_MAIL_50_DIR, havePref, getter_AddRefs(localFile)); if (NS_FAILED(rv)) return rv; PRBool exists; rv = localFile->Exists(&exists); if (NS_SUCCEEDED(rv) && !exists) rv = localFile->Create(nsIFile::DIRECTORY_TYPE, 0775); if (NS_FAILED(rv)) return rv; // Make the resulting nsIFileSpec // TODO: Convert arg to nsILocalFile and avoid this nsCOMPtr<nsIFileSpec> outSpec; rv = NS_NewFileSpecFromIFile(localFile, getter_AddRefs(outSpec)); if (NS_FAILED(rv)) return rv; if (!havePref || !exists) { rv = NS_SetPersistentFile(PREF_MAIL_ROOT_POP3_REL, PREF_MAIL_ROOT_POP3, localFile); NS_ASSERTION(NS_SUCCEEDED(rv), "Failed to set root dir pref."); } *aResult = outSpec; NS_IF_ADDREF(*aResult); return NS_OK; }