Index: mozilla/mailnews/base/src/nsMsgServiceProvider.cpp =================================================================== RCS file: /cvsroot/mozilla/mailnews/base/src/nsMsgServiceProvider.cpp,v retrieving revision 1.28 diff -uwp -r1.28 mozilla/mailnews/base/src/nsMsgServiceProvider.cpp --- mozilla/mailnews/base/src/nsMsgServiceProvider.cpp +++ mozilla/mailnews/base/src/nsMsgServiceProvider.cpp @@ -87,10 +87,12 @@ nsMsgServiceProviderService::Init() NS_ENSURE_SUCCESS(rv,rv); // test if there is a locale provider - PRBool isexists = PR_FALSE; - rv = dataFilesDir->Exists(&isexists); + PRBool fileExists = PR_FALSE; + rv = dataFilesDir->Exists(&fileExists); NS_ENSURE_SUCCESS(rv,rv); - if (isexists) { + if (!fileExists) + return NS_OK; + // now enumerate every file in the directory, and suck it into the datasource PRBool hasMore = PR_FALSE; nsCOMPtr dirIterator; @@ -98,18 +100,21 @@ nsMsgServiceProviderService::Init() if (NS_FAILED(rv)) return rv; nsCOMPtr dirEntry; - - while ((rv = dirIterator->HasMoreElements(&hasMore)) == NS_OK && hasMore) { + while (NS_SUCCEEDED(rv = dirIterator->HasMoreElements(&hasMore)) && + hasMore) { rv = dirIterator->GetNext((nsISupports**)getter_AddRefs(dirEntry)); if (NS_FAILED(rv)) continue; + PRBool isDir = PR_TRUE; + if (NS_FAILED(dirEntry->IsDirectory(&isDir)) || isDir) + continue; + nsCAutoString urlSpec; rv = NS_GetURLSpecFromFile(dirEntry, urlSpec); rv = LoadDataSource(urlSpec.get()); NS_ASSERTION(NS_SUCCEEDED(rv), "Failed reading in the datasource\n"); } - } return NS_OK; }