Blob Blame History Raw
diff -uNr ogre-1.9.0/OgreMain/src/OgreDynLib.cpp ogre-1.9.0.dynlib-allow-no-so/OgreMain/src/OgreDynLib.cpp
--- ogre-1.9.0/OgreMain/src/OgreDynLib.cpp	2013-12-01 21:28:12.000000000 +0400
+++ ogre-1.9.0.dynlib-allow-no-so/OgreMain/src/OgreDynLib.cpp	2014-06-07 22:22:44.500257614 +0400
@@ -76,7 +76,9 @@
 		String name = mName;
 #if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_NACL
         // dlopen() does not add .so to the filename, like windows does for .dll
-        if (name.find(".so") == String::npos)
+        mInst = (DYNLIB_HANDLE)DYNLIB_LOAD( name.c_str() );
+        // Only add .so if open without it failed
+        if ((!mInst) && (name.find(".so") == String::npos))
         {
             name += ".so.";
             name += StringConverter::toString(OGRE_VERSION_MAJOR) + ".";
@@ -93,7 +95,7 @@
 		if (name.substr(name.length() - 4, 4) != ".dll")
 			name += ".dll";
 #endif
-        mInst = (DYNLIB_HANDLE)DYNLIB_LOAD( name.c_str() );
+        if( !mInst ) mInst = (DYNLIB_HANDLE)DYNLIB_LOAD( name.c_str() );
 #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
         if(!mInst)
         {