Branch: Tag:

1998-02-27

1998-02-27 08:41:45 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

lots of changes

Rev: src/acconfig.h:1.16
Rev: src/array.c:1.30
Rev: src/array.h:1.11
Rev: src/builtin_functions.c:1.74
Rev: src/compilation.h:1.7
Rev: src/configure.in:1.160
Rev: src/dynamic_load.c:1.24
Rev: src/interpret.c:1.69
Rev: src/interpret.h:1.19
Rev: src/language.yacc:1.61
Rev: src/las.c:1.53
Rev: src/main.c:1.42
Rev: src/modules/Makefile.in:1.15
Rev: src/modules/dynamic_module_makefile.in:1.31
Rev: src/modules/spider/dumudp.c:1.34
Rev: src/modules/static_module_makefile.in:1.25
Rev: src/modules/system/system.c:1.42
Rev: src/program.c:1.64
Rev: src/program.h:1.33

8:   # include "pike_macros.h"   #endif    - #if !defined(HAVE_DLOPEN) && defined(HAVE_DLD_LINK) && defined(HAVE_DLD_GET_FUNC) + #if !defined(HAVE_DLOPEN) +  + #if defined(HAVE_DLD_LINK) && defined(HAVE_DLD_GET_FUNC)   #define USE_DLD -  + #define HAVE_SOME_DLOPEN + #define EMULATE_DLOPEN + #else + #if defined(HAVE_LOADLIBRARY) && defined(HAVE_FREELIBRARY) && \ +  defined(HAVE_GETPROCADDRESS) && defined(HAVE_WINBASE_H) + #define USE_LOADLIBRARY + #define HAVE_SOME_DLOPEN + #define EMULATE_DLOPEN   #endif -  + #endif + #else + #define HAVE_SOME_DLOPEN + #endif    - #if defined(HAVE_DLOPEN) || defined(USE_DLD) +     -  + #ifdef HAVE_SOME_DLOPEN +    typedef void (*modfun)(void);    -  + #ifdef USE_LOADLIBRARY + #include <windows.h> +  + static TCHAR *convert_string(char *str, int len) + { +  int e; +  TCHAR *ret=(TCHAR *)xalloc((len+1) * sizeof(TCHAR)); +  for(e=0;e<len;e++) ret[e]=EXTRACT_UCHAR(str+e); +  ret[e]=0; +  return ret; + } +  + static void *dlopen(char *foo, int how) + { +  TCHAR *tmp; +  HINSTANCE ret; +  tmp=convert_string(foo, strlen(foo)); +  ret=LoadLibrary(tmp); +  free((char *)tmp); +  return (void *)ret; + } +  + static char * dlerror(void) + { +  static char buffer[200]; +  sprintf(buffer,"LoadLibrary failed with error: %d",GetLastError()); +  return buffer; + } +  + static void *dlsym(void *module, char * function) + { +  return (void *)GetProcAddress((HMODULE)module, +  function); + } +  + static void dlclose(void *module) + { +  FreeLibrary((HMODULE)module); + } +  + #define dlinit() +  + #endif +    #ifdef USE_DLD   #include <dld.h>   static void *dlopen(char *foo, int how)
57: Inside #if defined(HAVE_DLOPEN) || defined(USE_DLD)
  }       - #else + #endif +  + #ifndef EMULATE_DLOPEN +    #ifdef HAVE_DLFCN_H   #include <dlfcn.h>   #endif