From 2a70d81d8689ac0956b1b089041cfe6bdbf1c7b1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Mon, 18 May 2020 21:27:43 -0300 Subject: [PATCH] Fixing build in newest gcc. --- src/dialogs/load.c | 5 ++--- src/dialogs/print/print.c | 4 ++-- src/dialogs/settings/dialog.c | 2 +- src/include/internals.h | 6 +++--- src/selection/selection.c | 2 +- src/selection/text.c | 10 ++++------ src/terminal/callbacks.c | 31 ++++++++++++++++--------------- src/terminal/keyboard.c | 5 ++--- src/terminal/mouse.c | 36 +++++++++++++++++++++--------------- src/terminal/properties/set.c | 2 +- src/terminal/toggles.c | 2 +- src/terminal/widget.c | 13 ++++++++++++- 12 files changed, 66 insertions(+), 52 deletions(-) diff --git a/src/dialogs/load.c b/src/dialogs/load.c index 0486cb1..c3dd8d8 100644 --- a/src/dialogs/load.c +++ b/src/dialogs/load.c @@ -299,10 +299,9 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_ debug("next=%s",remains > 0 ? "YES" : "NO"); - g_signal_emit( + v3270_signal_emit( dialog->terminal, - v3270_widget_signal[V3270_SIGNAL_PASTENEXT], - 0, + V3270_SIGNAL_PASTENEXT, remains > 0 ); diff --git a/src/dialogs/print/print.c b/src/dialogs/print/print.c index 6d23d44..029bb4f 100644 --- a/src/dialogs/print/print.c +++ b/src/dialogs/print/print.c @@ -93,7 +93,7 @@ } - g_signal_emit(GTK_WIDGET(operation->widget), v3270_widget_signal[V3270_SIGNAL_PRINT_DONE], 0, prt, (guint) result); + v3270_signal_emit(GTK_WIDGET(operation->widget), V3270_SIGNAL_PRINT_DONE, prt, (guint) result); } } @@ -244,7 +244,7 @@ g_object_ref(G_OBJECT(opr->widget)); } - g_signal_emit(GTK_WIDGET(opr->widget), v3270_widget_signal[V3270_SIGNAL_PRINT_SETUP], 0, operation); + v3270_signal_emit(GTK_WIDGET(opr->widget), V3270_SIGNAL_PRINT_SETUP, operation); } diff --git a/src/dialogs/settings/dialog.c b/src/dialogs/settings/dialog.c index 9c2c113..1dbe2be 100644 --- a/src/dialogs/settings/dialog.c +++ b/src/dialogs/settings/dialog.c @@ -176,7 +176,7 @@ void v3270_settings_dialog_apply(GtkWidget *dialog) // Don't delay save settings signal! GTK_V3270(terminal)->freeze = 0; - g_signal_emit(terminal,v3270_widget_signal[V3270_SIGNAL_SAVE_SETTINGS], 0, FALSE); + v3270_signal_emit(terminal,V3270_SIGNAL_SAVE_SETTINGS, FALSE); gdk_window_set_cursor( window, diff --git a/src/include/internals.h b/src/include/internals.h index af28b19..3015ef1 100644 --- a/src/include/internals.h +++ b/src/include/internals.h @@ -75,7 +75,7 @@ //--[ Globals ]-------------------------------------------------------------------------------------- /// @brief V3270 Signal list - enum + enum V3270_SIGNAL { V3270_SIGNAL_TOGGLE_CHANGED, V3270_SIGNAL_MESSAGE_CHANGED, @@ -119,8 +119,6 @@ V3270_SIGNAL_LAST }; - G_GNUC_INTERNAL guint v3270_widget_signal[V3270_SIGNAL_LAST]; - /*--[ Constants ]------------------------------------------------------------------------------------*/ G_GNUC_INTERNAL const gchar * v3270_get_default_colors(); @@ -135,6 +133,8 @@ G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_grid(GtkAlign align); G_GNUC_INTERNAL GtkWidget * v3270_dialog_create_frame(GtkWidget * child, const gchar *title); + G_GNUC_INTERNAL void v3270_signal_emit(gpointer instance, enum V3270_SIGNAL signal_id, ...); + G_GNUC_INTERNAL void v3270_dialog_close(GtkDialog *dialog, gpointer user_data); /// @brief Emit the "save-settings" signal. diff --git a/src/selection/selection.c b/src/selection/selection.c index ec542a2..0aae8ac 100644 --- a/src/selection/selection.c +++ b/src/selection/selection.c @@ -73,7 +73,7 @@ void v3270_emit_copy_state(GtkWidget *widget) debug("%s(%s)",__FUNCTION__,has_copy ? "TRUE" : "FALSE"); - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_CLIPBOARD], 0, has_copy); + v3270_signal_emit(widget,V3270_SIGNAL_CLIPBOARD, has_copy); g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.has_copy); lib3270_set_has_copy(GTK_V3270(widget)->host, has_copy ? 1 : 0); diff --git a/src/selection/text.c b/src/selection/text.c index 884a5a4..7ac7e73 100644 --- a/src/selection/text.c +++ b/src/selection/text.c @@ -178,10 +178,9 @@ LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const if(error) { - g_signal_emit( + v3270_signal_emit( widget, - v3270_widget_signal[V3270_SIGNAL_PASTENEXT], - 0, + V3270_SIGNAL_PASTENEXT, FALSE ); v3270_popup_gerror(widget,error,NULL,"%s",_("Can't paste text")); @@ -195,10 +194,9 @@ LIB3270_EXPORT void v3270_input_text(GtkWidget *widget, const gchar *text, const (unsigned char *) buffer ) ? TRUE : FALSE; - g_signal_emit( + v3270_signal_emit( widget, - v3270_widget_signal[V3270_SIGNAL_PASTENEXT], - 0, + V3270_SIGNAL_PASTENEXT, remains > 0 ); diff --git a/src/terminal/callbacks.c b/src/terminal/callbacks.c index fe7357d..9ab32eb 100644 --- a/src/terminal/callbacks.c +++ b/src/terminal/callbacks.c @@ -67,10 +67,9 @@ static gboolean bg_update_message(H3270 *session) { v3270 *terminal = (v3270 *) lib3270_get_user_data(session); - g_signal_emit( + v3270_signal_emit( terminal, - v3270_widget_signal[V3270_SIGNAL_MESSAGE_CHANGED], - 0, + V3270_SIGNAL_MESSAGE_CHANGED, (gint) lib3270_get_program_message(session) ); @@ -93,7 +92,7 @@ static gboolean v3270_update_url(v3270 *terminal) GtkWidget * widget = GTK_WIDGET(terminal); debug("url=%s",v3270_get_url(widget)); v3270_notify_setting(widget,V3270_SETTING_URL); - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_SESSION_CHANGED], 0); + v3270_signal_emit(widget, V3270_SIGNAL_SESSION_CHANGED); return FALSE; } @@ -151,12 +150,12 @@ static void update_connect(H3270 *session, unsigned char connected) if(connected) { widget->cursor.show |= 2; - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_CONNECTED], 0, lib3270_get_url(session)); + v3270_signal_emit(GTK_WIDGET(widget), V3270_SIGNAL_CONNECTED, lib3270_get_url(session)); } else { widget->cursor.show &= ~2; - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_DISCONNECTED], 0); + v3270_signal_emit(GTK_WIDGET(widget), V3270_SIGNAL_DISCONNECTED); } debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.online); @@ -184,7 +183,7 @@ static void update_model(H3270 *session, const char *name, int model, G_GNUC_UNU debug("%s: terminal=%p pspec=%p",__FUNCTION__,widget,GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]); g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.settings[V3270_SETTING_MODEL_NUMBER]); - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_MODEL_CHANGED], 0, (guint) model, name); + v3270_signal_emit(widget,V3270_SIGNAL_MODEL_CHANGED, (guint) model, name); } static void changed(H3270 *session, int offset, int len) @@ -231,7 +230,7 @@ static void changed(H3270 *session, int offset, int len) gtk_widget_queue_draw(widget); #endif // WIN32 - g_signal_emit(GTK_WIDGET(widget),v3270_widget_signal[V3270_SIGNAL_CHANGED], 0, (guint) offset, (guint) len); + v3270_signal_emit(GTK_WIDGET(widget),V3270_SIGNAL_CHANGED, (guint) offset, (guint) len); } static void set_selection(H3270 *session, unsigned char status) @@ -241,7 +240,7 @@ static void set_selection(H3270 *session, unsigned char status) debug("%s(%p)",__FUNCTION__,GTK_V3270_GET_CLASS(widget)->properties.selection); g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.selection); - g_signal_emit(widget,v3270_widget_signal[V3270_SIGNAL_SELECTING], 0, status ? TRUE : FALSE); + v3270_signal_emit(widget,V3270_SIGNAL_SELECTING, status ? TRUE : FALSE); } @@ -258,15 +257,17 @@ static void update_selection(H3270 *session, G_GNUC_UNUSED int start, G_GNUC_UNU static void message(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *text) { - g_signal_emit( GTK_WIDGET(lib3270_get_user_data(session)), v3270_widget_signal[V3270_SIGNAL_MESSAGE], 0, - (int) id, - (gchar *) title, - (gchar *) message, - (gchar *) text ); + v3270_signal_emit( + GTK_WIDGET(lib3270_get_user_data(session)), + V3270_SIGNAL_MESSAGE, + (int) id, + (gchar *) title, + (gchar *) message, + (gchar *) text + ); } - static int print(H3270 *session, LIB3270_CONTENT_OPTION mode) { return v3270_print_dialog(GTK_WIDGET(lib3270_get_user_data(session)), mode, NULL); diff --git a/src/terminal/keyboard.c b/src/terminal/keyboard.c index 1b080f1..a869621 100644 --- a/src/terminal/keyboard.c +++ b/src/terminal/keyboard.c @@ -121,10 +121,9 @@ // Signal to the application. gboolean handled = FALSE; - g_signal_emit( + v3270_signal_emit( GTK_WIDGET(widget), - v3270_widget_signal[V3270_SIGNAL_KEYPRESS], - 0, + V3270_SIGNAL_KEYPRESS, event->keyval, event->state & (GDK_SHIFT_MASK|GDK_CONTROL_MASK|GDK_MOD1_MASK), &handled diff --git a/src/terminal/mouse.c b/src/terminal/mouse.c index 044cc26..3eda5a7 100644 --- a/src/terminal/mouse.c +++ b/src/terminal/mouse.c @@ -143,11 +143,13 @@ void v3270_emit_popup(v3270 *widget, int baddr, GdkEventButton *event) { lib3270_get_contents(widget->host,baddr,baddr,&chr,&attr); - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_POPUP], 0, - (attr & LIB3270_ATTR_SELECTED) ? TRUE : FALSE, - lib3270_is_connected(widget->host) ? TRUE : FALSE, - event, - &handled); + v3270_signal_emit( GTK_WIDGET(widget), + V3270_SIGNAL_POPUP, + (attr & LIB3270_ATTR_SELECTED) ? TRUE : FALSE, + lib3270_is_connected(widget->host) ? TRUE : FALSE, + event, + &handled + ); if(handled) return; @@ -216,11 +218,12 @@ gboolean v3270_button_press_event(GtkWidget *widget, GdkEventButton *event) { gboolean handled = FALSE; - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_OIA_POPUP], - 0, - (guint) field, - event, - &handled); + v3270_signal_emit( + widget, V3270_SIGNAL_OIA_POPUP, + (guint) field, + event, + &handled + ); if(!handled) gdk_display_beep(gtk_widget_get_display(widget)); @@ -255,11 +258,14 @@ gboolean v3270_button_release_event(GtkWidget *widget, GdkEventButton*event) { gboolean connected = lib3270_is_connected(terminal->host) ? TRUE : FALSE; V3270_OIA_FIELD field = terminal->oia.selected; - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_FIELD], 0, - connected, - field, - event, - &handled); + v3270_signal_emit( + widget, + V3270_SIGNAL_FIELD, + connected, + field, + event, + &handled + ); debug("Field click was %s", handled ? "Handled" : "Not handled"); diff --git a/src/terminal/properties/set.c b/src/terminal/properties/set.c index 8ad33f6..784169c 100644 --- a/src/terminal/properties/set.c +++ b/src/terminal/properties/set.c @@ -216,7 +216,7 @@ LIB3270_EXPORT void v3270_set_session_name(GtkWidget *widget, const gchar *name) g_message("Session name changes to \"%s\"",terminal->session.name); - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[V3270_SIGNAL_SESSION_CHANGED], 0); + v3270_signal_emit(GTK_WIDGET(widget), V3270_SIGNAL_SESSION_CHANGED); g_object_notify_by_pspec(G_OBJECT(widget), GTK_V3270_GET_CLASS(widget)->properties.session_name); } diff --git a/src/terminal/toggles.c b/src/terminal/toggles.c index 9e17a77..3a7e15c 100644 --- a/src/terminal/toggles.c +++ b/src/terminal/toggles.c @@ -123,7 +123,7 @@ void v3270_update_toggle(GtkWidget *widget, LIB3270_TOGGLE_ID id, unsigned char debug("%s: pspec=%p",__FUNCTION__,klass->properties.toggle[id]); g_object_notify_by_pspec(G_OBJECT(widget), klass->properties.toggle[id]); - g_signal_emit(widget, v3270_widget_signal[V3270_SIGNAL_TOGGLE_CHANGED], 0, (guint) id, (gboolean) (value != 0), (gchar *) name); + v3270_signal_emit(widget, V3270_SIGNAL_TOGGLE_CHANGED, (guint) id, (gboolean) (value != 0), (gchar *) name); // Can't emit the signal on every toggle change because, sometimes, the saving of the settings file takes time. // v3270_emit_save_settings(widget); diff --git a/src/terminal/widget.c b/src/terminal/widget.c index 1230ec8..6976819 100644 --- a/src/terminal/widget.c +++ b/src/terminal/widget.c @@ -64,7 +64,7 @@ /*--[ Globals ]--------------------------------------------------------------------------------------*/ - guint v3270_widget_signal[V3270_SIGNAL_LAST] = { 0 }; +static guint v3270_widget_signal[V3270_SIGNAL_LAST] = { 0 }; /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ @@ -824,3 +824,14 @@ void v3270_emit_save_settings(GtkWidget *widget) } } +void v3270_signal_emit(gpointer instance, enum V3270_SIGNAL signal_id, ...) +{ + va_list var_args; + + va_start (var_args, signal_id); + g_signal_emit_valist(instance, (guint) signal_id, 0, var_args); + va_end (var_args); + +} + + -- libgit2 0.21.2