*************** *** 981,1014 **** nsCOMPtr dirSvc (do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID)); if (!dirSvc) return; gEngineListBuilt = PR_TRUE; // get available search engines - nsCOMPtr dir; - rv = dirSvc->Get(NS_APP_SEARCH_DIR, - NS_GET_IID(nsIFile), getter_AddRefs(dir)); - if (NS_SUCCEEDED(rv)) - { - GetSearchEngineList(dir, PR_FALSE); - } - nsCOMPtr dirlist; rv = dirSvc->Get(NS_APP_SEARCH_DIR_LIST, NS_GET_IID(nsISimpleEnumerator), getter_AddRefs(dirlist)); if (NS_SUCCEEDED(rv)) { PRBool more; while (NS_SUCCEEDED(dirlist->HasMoreElements(&more)) && more) { nsCOMPtr suppfile; dirlist->GetNext(getter_AddRefs(suppfile)); dir = do_QueryInterface(suppfile); if (dir) { GetSearchEngineList(dir, PR_FALSE); } } } --- 981,1007 ---- nsCOMPtr dirSvc (do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID)); if (!dirSvc) return; gEngineListBuilt = PR_TRUE; // get available search engines nsCOMPtr dirlist; rv = dirSvc->Get(NS_APP_SEARCH_DIR_LIST, NS_GET_IID(nsISimpleEnumerator), getter_AddRefs(dirlist)); if (NS_SUCCEEDED(rv)) { PRBool more; while (NS_SUCCEEDED(dirlist->HasMoreElements(&more)) && more) { nsCOMPtr suppfile; + nsCOMPtr dir; dirlist->GetNext(getter_AddRefs(suppfile)); dir = do_QueryInterface(suppfile); if (dir) { GetSearchEngineList(dir, PR_FALSE); } } } *************** *** 2556,2577 **** { extensionOffset = baseName.RFind(".src", PR_TRUE); if ((extensionOffset < 0) || (extensionOffset != (PRInt32)(baseName.Length()-4))) { return(NS_ERROR_UNEXPECTED); } } nsCOMPtr outFile; - rv = NS_GetSpecialDirectory(NS_APP_SEARCH_DIR, getter_AddRefs(outFile)); if (NS_FAILED(rv)) return rv; const PRUnichar *dataBuf = nsnull; if (NS_FAILED(rv = context->GetBufferConst(&dataBuf))) return(rv); // if no data, then nothing to do // Note: do this before opening file, as it would be truncated PRInt32 bufferLength = 0; if (NS_FAILED(context->GetBufferLength(&bufferLength))) return(rv); if (bufferLength < 1) return(NS_OK); --- 2549,2580 ---- { extensionOffset = baseName.RFind(".src", PR_TRUE); if ((extensionOffset < 0) || (extensionOffset != (PRInt32)(baseName.Length()-4))) { return(NS_ERROR_UNEXPECTED); } } nsCOMPtr outFile; + rv = NS_GetSpecialDirectory(NS_APP_USER_SEARCH_DIR, getter_AddRefs(outFile)); if (NS_FAILED(rv)) return rv; + PRBool exists; + rv = outFile->Exists(&exists); + if (NS_FAILED(rv)) return(rv); + if (!exists) + { + rv = outFile->Create(nsIFile::DIRECTORY_TYPE, 0755); + if (NS_FAILED(rv)) return(rv); + } + + const PRUnichar *dataBuf = nsnull; if (NS_FAILED(rv = context->GetBufferConst(&dataBuf))) return(rv); // if no data, then nothing to do // Note: do this before opening file, as it would be truncated PRInt32 bufferLength = 0; if (NS_FAILED(context->GetBufferLength(&bufferLength))) return(rv); if (bufferLength < 1) return(NS_OK);