oops, forgot this extra fix for #5681 to take .sbd files into account
git-svn-id: svn://10.0.0.236/trunk@29894 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -208,7 +208,7 @@ nsresult nsMsgLocalMailFolder::AddSubfolder(nsAutoString name, nsIMsgFolder **ch
|
||||
return rv;
|
||||
nsCOMPtr<nsIMsgFolder> folder(do_QueryInterface(res, &rv));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
return rv;
|
||||
delete[] uriStr;
|
||||
folder->SetFlag(MSG_FOLDER_FLAG_MAIL);
|
||||
|
||||
@@ -264,15 +264,13 @@ nsMsgLocalMailFolder::Enumerate(nsIEnumerator* *result)
|
||||
nsresult
|
||||
nsMsgLocalMailFolder::AddDirectorySeparator(nsFileSpec &path)
|
||||
{
|
||||
nsresult rv;
|
||||
nsFileSpec rootPath;
|
||||
rv = GetPath(rootPath);
|
||||
if (NS_SUCCEEDED(rv) && rootPath == path) {
|
||||
// don't concat the full separator with .sbd
|
||||
}
|
||||
else {
|
||||
|
||||
#ifdef DEBUG_alecf
|
||||
printf("AddDirectorySep(%s) -> ", (const char*)path);
|
||||
#endif
|
||||
|
||||
nsAutoString sep;
|
||||
rv = nsGetMailFolderSeparator(sep);
|
||||
nsresult rv = nsGetMailFolderSeparator(sep);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
// see if there's a dir with the same name ending with .sbd
|
||||
@@ -282,8 +280,10 @@ nsMsgLocalMailFolder::AddDirectorySeparator(nsFileSpec &path)
|
||||
nsAutoString str((nsFilePath)path);
|
||||
str += sep;
|
||||
path = nsFilePath(str);
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG_alecf
|
||||
printf("%s\n", (const char*)path);
|
||||
#endif
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -295,9 +295,19 @@ nsMsgLocalMailFolder::GetSubFolders(nsIEnumerator* *result)
|
||||
nsresult rv = GetPath(path);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = AddDirectorySeparator(path);
|
||||
#ifdef DEBUG_alecf
|
||||
printf("1) checking if %s is a directory..it is%s\n",
|
||||
(const char*)path, path.IsDirectory() ? "":"n't");
|
||||
#endif
|
||||
if (!path.IsDirectory())
|
||||
AddDirectorySeparator(path);
|
||||
|
||||
if(NS_FAILED(rv)) return rv;
|
||||
|
||||
#ifdef DEBUG_alecf
|
||||
printf("2) checking if %s is a directory..it is%s\n",
|
||||
(const char*)path, path.IsDirectory() ? "":"n't");
|
||||
#endif
|
||||
// we have to treat the root folder specially, because it's name
|
||||
// doesn't end with .sbd
|
||||
PRInt32 newFlags = MSG_FOLDER_FLAG_MAIL;
|
||||
@@ -743,7 +753,7 @@ NS_IMETHODIMP nsMsgLocalMailFolder::Adopt(nsIMsgFolder *srcFolder, PRUint32 *out
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsMsgLocalMailFolder::GetChildNamed(nsString& name, nsISupports ** aChild)
|
||||
nsMsgLocalMailFolder::GetChildNamed(const char *name, nsISupports ** aChild)
|
||||
{
|
||||
NS_ASSERTION(aChild, "NULL child");
|
||||
|
||||
@@ -765,7 +775,7 @@ nsMsgLocalMailFolder::GetChildNamed(nsString& name, nsISupports ** aChild)
|
||||
|
||||
folder->GetName(&folderName);
|
||||
// case-insensitive compare is probably LCD across OS filesystems
|
||||
if (folderName && !name.EqualsIgnoreCase(folderName)) {
|
||||
if (folderName && PL_strcasecmp(name, folderName)!=0) {
|
||||
*aChild = folder;
|
||||
PR_FREEIF(folderName);
|
||||
return NS_OK;
|
||||
@@ -803,21 +813,15 @@ NS_IMETHODIMP nsMsgLocalMailFolder::GetName(char **name)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::GetPrettyName(nsString& prettyName)
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::GetPrettyName(char ** prettyName)
|
||||
{
|
||||
if (mDepth == 1) {
|
||||
// Depth == 1 means we are on the mail server level
|
||||
// override the name here to say "Local Mail"
|
||||
prettyName = PL_strdup("Local Mail");
|
||||
}
|
||||
else {
|
||||
nsresult rv = NS_ERROR_NULL_POINTER;
|
||||
char *pName = prettyName.ToNewCString();
|
||||
if (pName)
|
||||
rv = nsMsgFolder::GetPrettyName(&pName);
|
||||
delete[] pName;
|
||||
return rv;
|
||||
*prettyName = PL_strdup("Local Mail");
|
||||
}
|
||||
else
|
||||
return nsMsgFolder::GetPrettyName(prettyName);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -846,8 +850,8 @@ nsresult nsMsgLocalMailFolder::GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInf
|
||||
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::UpdateSummaryTotals()
|
||||
{
|
||||
PRUint32 oldUnreadMessages = mNumUnreadMessages;
|
||||
PRUint32 oldTotalMessages = mNumTotalMessages;
|
||||
PRInt32 oldUnreadMessages = mNumUnreadMessages;
|
||||
PRInt32 oldTotalMessages = mNumTotalMessages;
|
||||
//We need to read this info from the database
|
||||
ReadDBFolderInfo(PR_TRUE);
|
||||
|
||||
@@ -960,7 +964,7 @@ NS_IMETHODIMP nsMsgLocalMailFolder::GetRequiresCleanup(PRBool *requiresCleanup)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::GetSizeOnDisk(PRUint32 size)
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::GetSizeOnDisk(PRUint32* size)
|
||||
{
|
||||
#ifdef HAVE_PORT
|
||||
PRInt32 ret = 0;
|
||||
@@ -1017,7 +1021,7 @@ NS_IMETHODIMP nsMsgLocalMailFolder::UserNeedsToAuthenticateForFolder(PRBool disp
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::RememberPassword(char *password)
|
||||
NS_IMETHODIMP nsMsgLocalMailFolder::RememberPassword(const char *password)
|
||||
{
|
||||
#ifdef HAVE_DB
|
||||
MailDB *mailDb = NULL;
|
||||
@@ -1080,8 +1084,6 @@ NS_IMETHODIMP nsMsgLocalMailFolder::GetPath(nsFileSpec& aPathName)
|
||||
nsFileSpec nopath("");
|
||||
if (mPath == nopath) {
|
||||
nsresult rv = nsLocalURI2Path(kMailboxRootURI, mURI, mPath);
|
||||
printf("Path of %s is %s (%s)\n", mURI, (const char*)mPath,
|
||||
NS_SUCCEEDED(rv) ? "succeeded" : "failed");
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
aPathName = mPath;
|
||||
|
||||
@@ -74,11 +74,11 @@ public:
|
||||
NS_IMETHOD Rename (const char *newName);
|
||||
NS_IMETHOD Adopt(nsIMsgFolder *srcFolder, PRUint32 *outPos);
|
||||
|
||||
NS_IMETHOD GetChildNamed(nsString& name, nsISupports ** aChild);
|
||||
NS_IMETHOD GetChildNamed(const char* name, nsISupports ** aChild);
|
||||
|
||||
// this override pulls the value from the db
|
||||
NS_IMETHOD GetName(char ** name); // Name of this folder (as presented to user).
|
||||
NS_IMETHOD GetPrettyName(nsString& prettyName); // Override of the base, for top-level mail folder
|
||||
NS_IMETHOD GetPrettyName(char** prettyName); // Override of the base, for top-level mail folder
|
||||
|
||||
NS_IMETHOD BuildFolderURL(char **url);
|
||||
|
||||
@@ -90,12 +90,12 @@ public:
|
||||
NS_IMETHOD GetCanBeRenamed (PRBool *canBeRenamed);
|
||||
NS_IMETHOD GetRequiresCleanup(PRBool *requiresCleanup);
|
||||
|
||||
NS_IMETHOD GetSizeOnDisk(PRUint32 size);
|
||||
NS_IMETHOD GetSizeOnDisk(PRUint32* size);
|
||||
|
||||
NS_IMETHOD GetUsersName(char** userName);
|
||||
NS_IMETHOD GetHostName(char** hostName);
|
||||
NS_IMETHOD UserNeedsToAuthenticateForFolder(PRBool displayOnly, PRBool *authenticate);
|
||||
NS_IMETHOD RememberPassword(char *password);
|
||||
NS_IMETHOD RememberPassword(const char *password);
|
||||
NS_IMETHOD GetRememberedPassword(char ** password);
|
||||
|
||||
virtual nsresult GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatabase **db);
|
||||
|
||||
Reference in New Issue
Block a user