From 880c631a3a395cefbc372817bd8cdc8deb3cefe8 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 21 Feb 2019 15:39:54 -0300 Subject: [PATCH] Fixing windows builds and compiler warnings. --- Makefile.in | 4 ++-- configure.ac | 3 +++ src/hllapi/server.h | 53 ----------------------------------------------------- src/plugin/linux/gobject.c | 4 ++-- src/plugin/linux/main.c | 4 ++-- src/plugin/linux/misc.c | 2 +- src/plugin/windows/main.c | 13 ++++++------- src/plugin/windows/private.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/testprogram/testprogram.c | 6 +++--- 9 files changed, 69 insertions(+), 70 deletions(-) delete mode 100644 src/hllapi/server.h create mode 100644 src/plugin/windows/private.h diff --git a/Makefile.in b/Makefile.in index eabe099..4350b63 100644 --- a/Makefile.in +++ b/Makefile.in @@ -39,8 +39,8 @@ TEST_SOURCES= \ #---[ Tools ]---------------------------------------------------------------------------- -CC=@CC@ -LD=@CC@ +CC=@CXX@ +LD=@CXX@ LN_S=@LN_S@ MKDIR=@MKDIR_P@ INSTALL=@INSTALL@ diff --git a/configure.ac b/configure.ac index 25fccf4..d5d9025 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,7 @@ AM_ICONV dnl Checks for programs. AC_PROG_CC +AC_PROG_CXX AC_PROG_SED AC_PROG_LN_S @@ -77,8 +78,10 @@ DLLPREFIX="lib" case "$host" in *-mingw32|*-pc-msys) app_cv_osname="windows" + CFLAGS="$CFLAGS -pthread -D_WIN32_WINNT=0x0600" LIBS="$LIBS -lws2_32 -lwtsapi32 -lcomdlg32" + LDFLAGS="$LDFLAGS -pthread" DLLEXT=".dll" DLLPREFIX="" diff --git a/src/hllapi/server.h b/src/hllapi/server.h deleted file mode 100644 index d99bf63..0000000 --- a/src/hllapi/server.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. - * - * Copyright (C) <2008> - * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA, 02111-1307, USA - * - * Este programa está nomeado como server.h e possui - linhas de código. - * - * Contatos: - * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) - * - */ - - #include - #define ENABLE_NLS - #define GETTEXT_PACKAGE PACKAGE_NAME - - #include - #include - #include - - #include - #include - #include - #include - -#ifdef _WIN32 - #include - - #define PIPE_BUFFER_LENGTH HLLAPI_MAXLENGTH+30 - - G_GNUC_INTERNAL void popup_lasterror(const gchar *fmt, ...); - G_GNUC_INTERNAL void set_active(gboolean on); - -#endif // _WIN32 - - diff --git a/src/plugin/linux/gobject.c b/src/plugin/linux/gobject.c index 59cc640..bde78e3 100644 --- a/src/plugin/linux/gobject.c +++ b/src/plugin/linux/gobject.c @@ -76,7 +76,7 @@ static void pw3270_dbus_init(PW3270Dbus *object) PW3270Dbus * pw3270_dbus_new(void) { - return g_object_new(PW3270_TYPE_DBUS, NULL); + return (PW3270Dbus *) g_object_new(PW3270_TYPE_DBUS, NULL); } void pw3270_dbus_get_revision(PW3270Dbus *object, DBusGMethodInvocation *context) @@ -406,7 +406,7 @@ void pw3270_dbus_get_text_at(PW3270Dbus *object, int row, int col, int len, char void pw3270_dbus_set_toggle(PW3270Dbus *object, int id, int value, DBusGMethodInvocation *context) { trace("%s object=%p context=%p",__FUNCTION__,object,context); - dbus_g_method_return(context,lib3270_set_toggle(pw3270_dbus_get_session_handle(object),id,value)); + dbus_g_method_return(context,lib3270_set_toggle(pw3270_dbus_get_session_handle(object),(LIB3270_TOGGLE) id,value)); } void pw3270_dbus_cmp_text_at(PW3270Dbus *object, int row, int col, const gchar *utftext, char lf, DBusGMethodInvocation *context) diff --git a/src/plugin/linux/main.c b/src/plugin/linux/main.c index 53e4617..9cb2bbc 100644 --- a/src/plugin/linux/main.c +++ b/src/plugin/linux/main.c @@ -67,7 +67,7 @@ { GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW(window), - GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, + (GtkDialogFlags) (GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _( "Can't connect to DBUS server" )); @@ -112,7 +112,7 @@ { GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW(window), - GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, + (GtkDialogFlags) (GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT), GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _( "Can't get DBUS object name" )); diff --git a/src/plugin/linux/misc.c b/src/plugin/linux/misc.c index fb874ef..08c5fa2 100644 --- a/src/plugin/linux/misc.c +++ b/src/plugin/linux/misc.c @@ -39,7 +39,7 @@ gpointer pw3270_dbus_register_object(DBusGConnection *connection,DBusGProxy G_GNUC_UNUSED(*proxy),GType object_type,const DBusGObjectInfo *info,const gchar *path) { - GObject *object = g_object_new (object_type, NULL); + GObject *object = G_OBJECT(g_object_new(object_type, NULL)); dbus_g_object_type_install_info (object_type, info); dbus_g_connection_register_g_object (connection, path, object); return object; diff --git a/src/plugin/windows/main.c b/src/plugin/windows/main.c index dea86c7..03a3b4d 100644 --- a/src/plugin/windows/main.c +++ b/src/plugin/windows/main.c @@ -31,7 +31,7 @@ * */ - #include "server.h" + #include "private.h" #ifdef _WIN32 #include @@ -99,8 +99,8 @@ case ERROR_PIPE_CONNECTED: trace("%s: ERROR_PIPE_CONNECTED",__FUNCTION__); set_active(TRUE); - if(SetEvent(source->overlap.hEvent)) - break; + SetEvent(source->overlap.hEvent); + break; // If an error occurs during the connect operation... default: @@ -208,7 +208,7 @@ send_text(source,strdup(lib3270_get_url(lib3270_get_default_session_handle()))); } - static void process_input(pipe_source *source, DWORD cbRead) + static void process_input(pipe_source *source, DWORD G_GNUC_UNUSED(cbRead)) { const struct hllapi_packet_query * query = ((struct hllapi_packet_query *) source->buffer); @@ -490,7 +490,7 @@ } - static gboolean IO_dispatch(GSource *source, GSourceFunc callback, gpointer data) + static gboolean IO_dispatch(GSource *source, GSourceFunc G_GNUC_UNUSED(callback), gpointer G_GNUC_UNUSED(data)) { /* * Called to dispatch the event source, @@ -559,9 +559,8 @@ } - static gboolean IO_closure(gpointer data) + static gboolean IO_closure(gpointer G_GNUC_UNUSED(data)) { -// trace("%s: data=%p",__FUNCTION__,data); return 0; } diff --git a/src/plugin/windows/private.h b/src/plugin/windows/private.h new file mode 100644 index 0000000..c9494d2 --- /dev/null +++ b/src/plugin/windows/private.h @@ -0,0 +1,50 @@ +/* + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a + * aplicativos mainframe. Registro no INPI sob o nome G3270. + * + * Copyright (C) <2008> + * + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela + * Free Software Foundation. + * + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para + * obter mais detalhes. + * + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple + * Place, Suite 330, Boston, MA, 02111-1307, USA + * + * Este programa está nomeado como -e possui - linhas de código. + * + * Contatos: + * + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) + * + */ + + #include + #define ENABLE_NLS + #define GETTEXT_PACKAGE PACKAGE_NAME + + #include + #include + #include + + #include + #include + #include + #include + + #include + + #define PIPE_BUFFER_LENGTH HLLAPI_MAXLENGTH+30 + + G_GNUC_INTERNAL void popup_lasterror(const gchar *fmt, ...); + G_GNUC_INTERNAL void set_active(gboolean on); + + diff --git a/src/testprogram/testprogram.c b/src/testprogram/testprogram.c index e1f11c4..b3918c2 100644 --- a/src/testprogram/testprogram.c +++ b/src/testprogram/testprogram.c @@ -55,7 +55,7 @@ g_message("Closing module %p",module); static void (*stop)(GtkWidget *window, GtkWidget *terminal) = NULL; - if(!g_module_symbol(module,"pw3270_plugin_stop",(gpointer) &stop)) + if(!g_module_symbol(module,"pw3270_plugin_stop",(void **) &stop)) { g_message("Can't get stop method from plugin: %s",g_module_error()); } @@ -93,12 +93,12 @@ if(!module) return; - GtkWidget * terminal = g_object_get_data(G_OBJECT(button),"terminal"); + GtkWidget * terminal = GTK_WIDGET(g_object_get_data(G_OBJECT(button),"terminal")); const gchar * method_name = (gtk_toggle_tool_button_get_active(button) ? "pw3270_plugin_start" : "pw3270_plugin_stop"); static void (*call)(GtkWidget *window, GtkWidget *terminal) = NULL; - if(!g_module_symbol(module,method_name,(gpointer) &call)) + if(!g_module_symbol(module,method_name,(void **) &call)) { g_message("Can't get method \"%s\": %s",method_name,g_module_error()); return; -- libgit2 0.21.2