summaryrefslogtreecommitdiffabout
path: root/microkde
Side-by-side diff
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kdecore/klibloader.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/microkde/kdecore/klibloader.cpp b/microkde/kdecore/klibloader.cpp
index 1410308..130cc7c 100644
--- a/microkde/kdecore/klibloader.cpp
+++ b/microkde/kdecore/klibloader.cpp
@@ -148,25 +148,26 @@ QString KLibrary::fileName() const
KLibFactory* KLibrary::factory()
{
if ( m_factory )
return m_factory;
QCString symname;
symname.sprintf("init_%s", name().latin1() );
void* sym = symbol( symname );
if ( !sym )
{
- kdWarning(150) << "KLibrary: The library " << name() << " does not offer an init_" << name() << " function" << endl;
+ qDebug("KLibrary: The library %s does not offer an %s function", name().latin1(), symname.data());
+ kdWarning(150) << "KLibrary: The library " << name().latin1() << " does not offer an init_" << name().latin1() << " function" << endl;
return 0;
}
typedef KLibFactory* (*t_func)();
t_func func = (t_func)sym;
m_factory = func();
if( !m_factory )
{
kdWarning(150) << "KLibrary: The library " << name() << " does not offer a KDE compatible factory" << endl;
return 0;
}
@@ -359,51 +360,67 @@ KLibLoader::~KLibLoader()
//static
QString KLibLoader::findLibrary( const char * name/*US , const KInstance * instance*/ )
{
QCString libname( name );
// only append ".la" if there is no extension
// this allows to load non-libtool libraries as well
// (mhk, 20000228)
int pos = libname.findRev('/');
if (pos < 0)
pos = 0;
- if (libname.find('.', pos) < 0)
+/*US
+ if (libname.find('.', pos) < 0) {
libname += ".la";
+ }
+*/
+//US in the microedition we work only with shared libraries.
+ if (libname.find('.', pos) < 0) {
+ libname += ".so";
+ }
// only look up the file if it is not an absolute filename
// (mhk, 20000228)
QString libfile;
if (libname[0] == '/')
libfile = libname;
else
{
+//US at this point the libname must exist as real filesname. No expansions will be made later
+// in findResources. Because of that we prepend the lib prefix here to the name
+//US I add also the "lib" prefix. I do not how could this could have worked before without it?
+ libname.insert(pos, "lib");
+
+
//US libfile = instance->dirs()->findResource( "module", libname );
libfile = KGlobal::dirs()->findResource( "module", libname );
if ( libfile.isEmpty() )
{
//US libfile = instance->dirs()->findResource( "lib", libname );
libfile = KGlobal::dirs()->findResource( "lib", libname );
#ifndef NDEBUG
if ( !libfile.isEmpty() && libname.left(3) == "lib" ) // don't warn for kdeinit modules
kdDebug(150) << "library " << libname << " not found under 'module' but under 'lib'" << endl;
#endif
}
if ( libfile.isEmpty() )
{
#ifndef NDEBUG
kdDebug(150) << "library=" << libname << ": No file names " << libname.data() << " found in paths." << endl;
#endif
self()->d->errorMessage = i18n("Library files for \"%1\" not found in paths").arg(libname);
+
+ qDebug("KLibLoader::library could not find library: %s", libname.data());
+
}
else
self()->d->errorMessage = QString::null;
}
return libfile;
}
KLibrary* KLibLoader::globalLibrary( const char *name )
{
KLibrary *tmp;
/*US
@@ -445,27 +462,24 @@ KLibrary* KLibLoader::library( const char *name )
if (wrap) {
d->pending_close.removeRef(wrap);
if (!wrap->lib) {
/* This lib only was in loaded_stack, but not in m_libs. */
wrap->lib = new KLibrary( name, wrap->filename, wrap->handle );
}
wrap->ref_count++;
} else {
QString libfile = findLibrary( name );
if ( libfile.isEmpty() )
return 0;
- const QString & qpeDir = QPEApplication::qpeDir();
- libfile = qpeDir + libfile;
-//US QLibrary *lib = new QLibrary( qpeDir + "/plugins/korganizer/libopiekabc.so", QLibrary::Immediately );
QLibrary *qlib = new QLibrary( libfile.latin1(), QLibrary::Immediately );
//US lt_dlhandle handle = lt_dlopen( libfile.latin1() );
//US if ( !handle )
if ( !qlib )
{
//US const char* errmsg = lt_dlerror();
char* errmsg;
sprintf(errmsg, "KLibLoader::library could not load library: %s", libfile.latin1());
qDebug(errmsg);
if(errmsg)