Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/file


Modified Files:
        evas_module.c 


Log Message:


patches applied as per emails :)

===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/file/evas_module.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- evas_module.c       3 Feb 2007 09:33:26 -0000       1.21
+++ evas_module.c       10 Feb 2007 17:23:06 -0000      1.22
@@ -11,10 +11,85 @@
 #endif
 
 #include <dirent.h>    /* DIR, dirent */
+#ifdef _WIN32
+#include <windows.h>
+#include <stdlib.h>
+#include <stdio.h>
+#else
 #include <dlfcn.h>     /* dlopen,dlclose,etc */
+#endif
 
 #include <evas_common.h>
 #include <evas_private.h>
+
+/* FIXME: that hack is a temporary one. That code will be in MinGW soon */
+#ifdef _WIN32
+
+#define RTLD_LAZY 1 /* lazy function call binding */
+#define RTLD_NOW 2 /* immediate function call binding */
+#define RTLD_GLOBAL 4 /* symbols in this dlopen'ed obj are visible
+                        to other dlopen'ed objs */
+
+static char *dlerr_ptr;
+static char dlerr_data[80];
+
+void *dlopen (const char *file, int mode)
+{
+  HMODULE hmodule;
+
+  hmodule = LoadLibrary(file);
+  if (hmodule == NULL) {
+    int error;
+
+    error = GetLastError();
+    sprintf(dlerr_data, "LoadLibraryEx returned %d.", error);
+    dlerr_ptr = dlerr_data;
+  }
+  return hmodule;
+}
+
+int dlclose (void *handle)
+{
+  if (FreeLibrary(handle)) {
+    return 0;
+  }
+  else {
+    int error;
+
+    error = GetLastError();
+    sprintf(dlerr_data, "FreeLibrary returned %d.", error);
+    dlerr_ptr = dlerr_data;
+    return -1;
+  }
+}
+
+void *dlsym (void *handle, const char *name)
+{
+  FARPROC fp;
+
+  fp = GetProcAddress(handle, name);
+  if (fp == NULL) {
+    int error;
+
+    error = GetLastError();
+    sprintf(dlerr_data, "GetProcAddress returned %d.", error);
+    dlerr_ptr = dlerr_data;
+  }
+  return fp;
+}
+
+char *dlerror (void)
+{
+  if (dlerr_ptr != NULL) {
+    dlerr_ptr = NULL;
+    return dlerr_data;
+  }
+  else {
+    return NULL;
+  }
+}
+
+#endif /* _WIN32 */
 
 Evas_List *evas_modules = NULL;
 static Evas_List *evas_module_paths = NULL;



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to