diff --git a/configure.ac b/configure.ac index 41dccb2..dbc44ce 100644 --- a/configure.ac +++ b/configure.ac @@ -167,7 +167,6 @@ case "$host" in AC_CONFIG_FILES(nsi/runtime-init.nsi) - AC_CONFIG_FILES(src/plugins/hllapi/Makefile) AC_CONFIG_FILES(makegtkruntime.sh) ;; @@ -203,6 +202,9 @@ case "$host" in esac +# It's easier to test hllapi on linux +AC_CONFIG_FILES(src/plugins/hllapi/Makefile) + #--[ Check gettext ]------------------------------------------------------------------------------------------------------------------------------------------ AC_PATH_TOOL([XGETTEXT], [xgettext], [no]) diff --git a/src/include/pw3270/hllapi.h b/src/include/pw3270/hllapi.h index a842418..26a08c4 100644 --- a/src/include/pw3270/hllapi.h +++ b/src/include/pw3270/hllapi.h @@ -113,23 +113,21 @@ extern "C" { #else - #define HLLAPI_API_CALL __attribute__((visibility("default"))) extern - // From wtypesbase.h - typedef byte BYTE; - typedef unsigned short WORD; + typedef uint8_t BYTE; + typedef uint16_t WORD; typedef unsigned int UINT; typedef int INT; + typedef uint32_t LONG; typedef LONG WINBOOL; - typedef LONG LONG; - typedef ULONG DWORD; + typedef uint32_t DWORD; typedef void *HANDLE; typedef WORD *LPWORD; typedef DWORD *LPDWORD; typedef char CHAR; typedef CHAR *LPSTR; typedef const CHAR *LPCSTR; - typedef wchar_t WCHAR; + typedef char WCHAR; typedef WCHAR TCHAR; typedef WCHAR *LPWSTR; typedef TCHAR *LPTSTR; @@ -142,6 +140,8 @@ extern "C" { #define LPSTR char * #define HANDLE int + #define HLLAPI_API_CALL __attribute__((visibility("default"))) extern DWORD + #endif // WIN32 HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc); @@ -179,8 +179,6 @@ extern "C" { HLLAPI_API_CALL hllapi_print(void); - HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc); - HLLAPI_API_CALL hllapi_init(LPSTR mode); HLLAPI_API_CALL hllapi_deinit(void); diff --git a/src/plugins/hllapi/Makefile.in b/src/plugins/hllapi/Makefile.in index d1b4ef3..70a327d 100644 --- a/src/plugins/hllapi/Makefile.in +++ b/src/plugins/hllapi/Makefile.in @@ -36,6 +36,7 @@ EXTAPI_SRC=calls.c hllapi.c #---[ Include plugin rules ]--------------------------------------------------- CLASSLIBDIR=../../classlib +LIBS=@LIBS@ include ../../include/plugin.mak include $(CLASSLIBDIR)/class.mak @@ -47,7 +48,7 @@ $(BINRLS)/$(PLUGIN_NAME): \ @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(CXX) $(DLL_FLAGS) @LDSOFLAGS@ $(LDFLAGS) @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(GTK_LIBS) $(GLIB_LIBS) $(PW3270_LIBS) + @$(CXX) $(DLL_FLAGS) @LDSOFLAGS@ $(LDFLAGS) @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) $(BINRLS)$(DLL_NAME).$(VERSION): \ $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) $(CLASS_RELEASE_OBJECTS) @@ -65,7 +66,7 @@ $(BINDBG)/$(PLUGIN_NAME): \ @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(CXX) $(DLL_FLAGS) @LDSOFLAGS@ @DBGRPATH@ $(LDFLAGS) -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(GTK_LIBS) $(GLIB_LIBS) $(PW3270_LIBS) + @$(CXX) $(DLL_FLAGS) @LDSOFLAGS@ @DBGRPATH@ $(LDFLAGS) -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) $(BINDBG)$(DLL_NAME).$(VERSION): \ $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC)@OBJEXT@) $(CLASS_DEBUG_OBJECTS) @@ -85,5 +86,5 @@ $(BINDBG)/test@EXEEXT@: \ @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(LD) -o $@ $^ $(LIBS) $(BINDBG)$(DLL_NAME).$(VERSION) + $(LD) -o $@ $^ -Wl,-rpath,$(BINDBG)/lib $(LIBS) $(BINDBG)$(DLL_NAME).$(VERSION) diff --git a/src/plugins/hllapi/calls.cc b/src/plugins/hllapi/calls.cc index 2f5909f..fc1a7cc 100644 --- a/src/plugins/hllapi/calls.cc +++ b/src/plugins/hllapi/calls.cc @@ -28,6 +28,9 @@ */ #include + #include + #include + #include #include #include "client.h" @@ -232,6 +235,7 @@ HLLAPI_API_CALL hllapi_get_datadir(LPSTR datadir) { + #ifdef _WIN32 HKEY hKey = 0; unsigned long datalen = strlen(datadir); @@ -244,6 +248,7 @@ *datadir = 0; RegCloseKey(hKey); } +#endif // _WIN32 return *datadir; } diff --git a/src/plugins/hllapi/hllapi.c b/src/plugins/hllapi/hllapi.c index 6b5150d..10e8576 100644 --- a/src/plugins/hllapi/hllapi.c +++ b/src/plugins/hllapi/hllapi.c @@ -85,7 +85,7 @@ /*--[ Implement ]------------------------------------------------------------------------------------*/ -HLLAPI_API_CALL hllapi(LPWORD func, LPSTR buffer, LPWORD length, LPWORD rc) +HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR buffer, LPWORD length, LPWORD rc) { unsigned int f; diff --git a/src/plugins/hllapi/hllapi.cbp b/src/plugins/hllapi/hllapi.cbp index 5ff7c1c..1849055 100644 --- a/src/plugins/hllapi/hllapi.cbp +++ b/src/plugins/hllapi/hllapi.cbp @@ -37,7 +37,7 @@ -