Small change lost in the void: search in common addons dir too.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39152 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin
2010-10-26 09:26:41 +00:00
parent a12efb945f
commit 2ca94d9be9
+19 -19
View File
@@ -11,7 +11,7 @@
int main (int argc, char *argv[]) int main (int argc, char *argv[])
{ {
image_id addon; image_id addon = -1;
char *transport; char *transport;
if (argc < 2) { if (argc < 2) {
@@ -23,35 +23,35 @@ int main (int argc, char *argv[])
transport = argv[1]; transport = argv[1];
printf("Looking for %s transport addon:", transport); printf("Looking for %s transport addon:\n", transport);
// try first in user add-ons directory
printf("In user add-ons directory...\n");
directory_which which[] = {
B_USER_ADDONS_DIRECTORY,
B_COMMON_ADDONS_DIRECTORY,
B_SYSTEM_ADDONS_DIRECTORY
};
BPath path; BPath path;
find_directory(B_USER_ADDONS_DIRECTORY, &path); for (uint32 i = 0; i <sizeof(which) / sizeof(which[0]); i++) {
path.Append("Print/transport"); if (find_directory(which[i], &path, false) != B_OK)
path.Append(transport); continue;
addon = load_add_on(path.Path());
if (addon < 0) {
// on failure try in system add-ons directory
printf("In system add-ons directory...\n");
find_directory(B_BEOS_ADDONS_DIRECTORY, &path);
path.Append("Print/transport"); path.Append("Print/transport");
path.Append(transport); path.Append(transport);
printf("\t%s ?\n", path.Path());
addon = load_add_on(path.Path()); addon = load_add_on(path.Path());
if (addon >= B_OK)
break;
} }
if (addon < 0) { if (addon == B_ERROR) {
// failed to load transport add-on // failed to load transport add-on
printf("Failed to load %s print transport add-on!\n", transport); printf("Failed to load \"%s\" print transport add-on!\n", transport);
return B_ERROR; return -1;
} }
printf("Loaded from %s\n", path.Path()); printf("Add-on %d = \"%s\" loaded from %s.\n", (int) addon,
transport, path.Path());
// get init & exit proc // get init & exit proc
BDataIO* (*init_proc)(BMessage*); BDataIO* (*init_proc)(BMessage*);