$NetBSD: patch-cb,v 1.1 2001/10/15 22:46:04 skrll Exp $

--- kicker/share/pluginmgr.cpp.orig	Mon Apr  9 12:04:06 2001
+++ kicker/share/pluginmgr.cpp
@@ -51,27 +51,28 @@
 
     if(!dlregistered){
 	dlregistered = true;
-	lt_dlinit();
+	loader = KLibLoader::self();
     }
 
-    lt_dlhandle handle = lt_dlopen(QFile::encodeName(libStr));
+    KLibrary* handle = loader->library(QFile::encodeName(libStr));
+
     if(!handle){
-	kdWarning() << "cannot open applet: " << libStr << " because of " << lt_dlerror() << endl;
+	kdWarning() << "cannot open applet: " << libStr << " because of " << loader->lastErrorMessage() << endl;
 	return(NULL);
     }
 
-    lt_ptr_t init_func = lt_dlsym(handle, "init");
+    void* init_func = handle->symbol(QString("init").utf8());
     if(!init_func){
 	kdWarning() << libStr << " is not a kicker applet!" << endl;
-	lt_dlclose(handle);
+        loader->unloadLibrary(QFile::encodeName(libStr));
 	return(NULL);
     }
 
     KPanelApplet* (*init_ptr)(QWidget *, const QString&);
     init_ptr = (KPanelApplet* (*)(QWidget *, const QString&))init_func;
     KPanelApplet *w = init_ptr(parent, configFile);
-    lt_dlhandle *tmp = new lt_dlhandle;
-    *tmp = handle;
+    QString* tmp = new QString;
+    *tmp = libStr;
     handleDict.insert((long)w, tmp);
     return(w);
 }
@@ -96,48 +97,42 @@
 
     if(!dlregistered){
 	dlregistered = true;
-	lt_dlinit();
+        loader = KLibLoader::self();
     }
 
-    lt_dlhandle handle = lt_dlopen(QFile::encodeName(libStr));
+    KLibrary* handle = loader->library(QFile::encodeName(libStr));
     if(!handle){
-	kdWarning() << "cannot open extension: " << libStr << " because of " << lt_dlerror() << endl;
+	kdWarning() << "cannot open extension: " << libStr << " because of " << loader->lastErrorMessage() << endl;
 	return(NULL);
     }
 
-    lt_ptr_t init_func = lt_dlsym(handle, "init");
+    void* init_func = handle->symbol(QString("init").utf8());
     if(!init_func){
 	kdWarning() << libStr << " is not a kicker extension!" << endl;
-	lt_dlclose(handle);
+	loader->unloadLibrary(QFile::encodeName(libStr));
 	return(NULL);
     }
 
     KPanelExtension* (*init_ptr)(QWidget *, const QString&);
     init_ptr = (KPanelExtension* (*)(QWidget *, const QString&))init_func;
     KPanelExtension *w = init_ptr(parent, configFile);
-    lt_dlhandle *tmp = new lt_dlhandle;
-    *tmp = handle;
+    QString* tmp = new QString;
+    *tmp = libStr;
     handleDict.insert((long)w, tmp);
     return(w);
 }
 
 bool KickerPluginManager::removePlugin(QWidget *w)
 {
-  lt_dlhandle *handle = handleDict.find((long)w);
+  QString* handle = handleDict.find((long)w);
   if(!handle){
     kdWarning() << "Cannot find handle to remove plugin!" << endl;
     return(false);
   }
   handleDict.remove((long)w);
   delete w;
-  if(!lt_dlclose(*handle)){
-    kdWarning() << "Unable to unload plugin!" << endl;
-    return(false);
-  }
+  loader->unloadLibrary(QFile::encodeName(*handle));
+    // kdWarning() << "Unable to unload plugin!" << endl;
+    // return(false);
   return(true);
 }
-
-
-
-
-
