All pastes #1337919 Raw Edit

Vermischtes

public text v1 · immutable
#1337919 ·published 2009-02-15 12:11 UTC
rendered paste body
diff --git a/src/plugin.c b/src/plugin.c
index e3f0d25..91a98ac 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -100,9 +100,6 @@ cloaderLoadPlugin (CompPlugin *p,
 		   const char *path,
 		   const char *name)
 {
-    if (path)
-	return FALSE;
-
     if (strcmp (name, coreVTable.name))
 	return FALSE;
 
@@ -151,22 +148,25 @@ dlloaderLoadPlugin (CompPlugin *p,
     char        *file;
     void        *dlhand;
     struct stat fileInfo;
-    Bool        loaded = FALSE;
+    Bool        retval = FALSE;
+
+    if (cloaderLoadPlugin (p, path, name))
+	return TRUE;
+
+    if (!path)
+	return FALSE;
 
-    file = malloc ((path ? strlen (path) : 0) + strlen (name) + 8);
+    file = malloc (strlen (path) + strlen (name) + 8);
     if (!file)
 	return FALSE;
 
-    if (path)
-	sprintf (file, "%s/lib%s.so", path, name);
-    else
-	sprintf (file, "lib%s.so", name);
+    sprintf (file, "%s/lib%s.so", path, name);
 
     if (stat (file, &fileInfo) != 0)
     {
-	/* file not present - try core plugin or fail */
+	/* file not present - fail */
 	free (file);
-	return cloaderLoadPlugin (p, path, name);
+	return FALSE;
     }
 
     dlhand = dlopen (file, RTLD_LAZY);
@@ -199,7 +199,10 @@ dlloaderLoadPlugin (CompPlugin *p,
 	    }
 	    else
 	    {
-		loaded = TRUE;
+		p->devPrivate.ptr = dlhand;
+		p->devType	  = "dlloader";
+
+		retval = TRUE;
 	    }
 	}
     }
@@ -211,18 +214,10 @@ dlloaderLoadPlugin (CompPlugin *p,
 
     free (file);
 
-    if (!loaded)
-    {
-	if (dlhand)
-	    dlclose (dlhand);
-
-	return FALSE;
-    }
-
-    p->devPrivate.ptr = dlhand;
-    p->devType	      = "dlloader";
+    if (!retval && dlhand)
+	dlclose (dlhand);
 
-    return TRUE;
+    return retval;
 }
 
 static void
@@ -581,10 +576,6 @@ loadPlugin (const char *name)
     if (status)
 	return p;
 
-    status = (*loaderLoadPlugin) (p, NULL, name);
-    if (status)
-	return p;
-
     compLogMessage ("core", CompLogLevelError,
 		    "Couldn't load plugin '%s'", name);
 
@@ -659,8 +650,8 @@ char **
 availablePlugins (int *n)
 {
     char *home, *plugindir;
-    char **list, **currentList, **pluginList, **homeList = NULL;
-    int  nCurrentList, nPluginList, nHomeList;
+    char **list, **pluginList, **homeList = NULL;
+    int  nPluginList, nHomeList;
     int  count, i, j;
 
     home = getenv ("HOME");
@@ -676,15 +667,12 @@ availablePlugins (int *n)
     }
 
     pluginList  = (*loaderListPlugins) (PLUGINDIR, &nPluginList);
-    currentList = (*loaderListPlugins) (NULL, &nCurrentList);
 
     count = 0;
     if (homeList)
 	count += nHomeList;
     if (pluginList)
 	count += nPluginList;
-    if (currentList)
-	count += nCurrentList;
 
     if (!count)
 	return NULL;
@@ -712,15 +700,6 @@ availablePlugins (int *n)
 	free (pluginList);
     }
 
-    if (currentList)
-    {
-	for (i = 0; i < nCurrentList; i++)
-	    if (!stringExist (list, j, currentList[i]))
-		list[j++] = currentList[i];
-
-	free (currentList);
-    }
-
     *n = j;
 
     return list;