Magellan Linux

Contents of /trunk/mozilla-firefox/patches/mozilla-firefox-1.0.7-usr-search-dir.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 153 - (show annotations) (download)
Tue May 8 20:52:56 2007 UTC (17 years ago) by niro
File size: 3835 byte(s)
-import

1 --- mozilla-firefox-1.0.4.orig/xpcom/io/nsAppDirectoryServiceDefs.h
2 +++ mozilla-firefox-1.0.4/xpcom/io/nsAppDirectoryServiceDefs.h
3 @@ -75,8 +75,10 @@
4 #define NS_APP_CHROME_DIR "AChrom"
5 #define NS_APP_PLUGINS_DIR "APlugns" // Deprecated - use NS_APP_PLUGINS_DIR_LIST
6 #define NS_APP_SEARCH_DIR "SrchPlugns"
7 +#define NS_USER_SEARCH_DIR "UsrSrchPlugns"
8
9 #define NS_APP_PLUGINS_DIR_LIST "APluginsDL"
10 +#define NS_APP_SEARCH_DIR_LIST "ASearchDL"
11
12 // --------------------------------------------------------------------------------------
13 // Files and directories which exist on a per-profile basis
14 --- mozilla-firefox-1.0.4.orig/xpcom/io/nsAppFileLocationProvider.cpp
15 +++ mozilla-firefox-1.0.4/xpcom/io/nsAppFileLocationProvider.cpp
16 @@ -252,6 +252,12 @@
17 if (NS_SUCCEEDED(rv))
18 rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME);
19 }
20 + else if (nsCRT::strcmp(prop, NS_USER_SEARCH_DIR) == 0)
21 + {
22 + rv = GetProductDirectory(getter_AddRefs(localFile));
23 + if (NS_SUCCEEDED(rv))
24 + rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME);
25 + }
26 else if (nsCRT::strcmp(prop, NS_APP_INSTALL_CLEANUP_DIR) == 0)
27 {
28 // This is cloned so that embeddors will have a hook to override
29 @@ -589,5 +595,16 @@
30 NS_IF_ADDREF(*_retval);
31 rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
32 }
33 + if (!nsCRT::strcmp(prop, NS_APP_SEARCH_DIR_LIST))
34 + {
35 + static const char* keys[] = { nsnull, NS_USER_SEARCH_DIR, NS_APP_SEARCH_DIR, nsnull };
36 + if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_SEARCH_ENGINE_PATH"))) {
37 + static const char nullstr = 0;
38 + keys[0] = &nullstr;
39 + }
40 + *_retval = new nsPathsDirectoryEnumerator(this, keys);
41 + NS_IF_ADDREF(*_retval);
42 + rv = *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
43 + }
44 return rv;
45 }
46 --- mozilla-firefox-1.0.4.orig/xpfe/components/search/src/nsInternetSearchService.cpp
47 +++ mozilla-firefox-1.0.4/xpfe/components/search/src/nsInternetSearchService.cpp
48 @@ -997,8 +997,25 @@
49
50 // get available search engines
51 nsCOMPtr<nsIFile> nativeDir;
52 - if (NS_SUCCEEDED(rv = GetSearchFolder(getter_AddRefs(nativeDir))))
53 - {
54 +
55 + nsCOMPtr<nsIProperties> dirService(do_GetService("@mozilla.org/file/directory_service;1", &rv));
56 + if (NS_FAILED(rv)) return rv;
57 +
58 + nsCOMPtr<nsISimpleEnumerator> dirList;
59 + rv = dirService->Get(NS_APP_SEARCH_DIR_LIST, NS_GET_IID(nsISimpleEnumerator), getter_AddRefs(dirList));
60 + if (NS_FAILED(rv)) return rv;
61 +
62 + PRBool hasMore;
63 + while (NS_SUCCEEDED(dirList->HasMoreElements(&hasMore)) && hasMore)
64 + {
65 + nsCOMPtr<nsISupports> supports;
66 + rv = dirList->GetNext(getter_AddRefs(supports));
67 + if (NS_FAILED(rv))
68 + continue;
69 + nativeDir = do_QueryInterface(supports, &rv);
70 + if (NS_FAILED(rv))
71 + continue;
72 +
73 rv = GetSearchEngineList(nativeDir, PR_FALSE, PR_FALSE);
74
75 // read in category list
76 @@ -2574,6 +2591,15 @@
77 nsCOMPtr<nsIFile> outFile;
78 if (NS_FAILED(rv = GetSearchFolder(getter_AddRefs(outFile)))) return(rv);
79
80 + PRBool exists;
81 + rv = outFile->Exists(&exists);
82 + if (NS_FAILED(rv)) return(rv);
83 + if (!exists)
84 + {
85 + rv = outFile->Create(nsIFile::DIRECTORY_TYPE, 0755);
86 + if (NS_FAILED(rv)) return(rv);
87 + }
88 +
89 const PRUnichar *dataBuf = nsnull;
90 if (NS_FAILED(rv = context->GetBufferConst(&dataBuf))) return(rv);
91
92 @@ -4133,7 +4159,7 @@
93 *searchDir = nsnull;
94
95 nsCOMPtr<nsIFile> aDir;
96 - nsresult rv = NS_GetSpecialDirectory(NS_APP_SEARCH_DIR, getter_AddRefs(aDir));
97 + nsresult rv = NS_GetSpecialDirectory(NS_USER_SEARCH_DIR, getter_AddRefs(aDir));
98 if (NS_FAILED(rv)) return rv;
99
100 *searchDir = aDir;