From 52b0419ab2955f9d69759e2b75e655979e959651 Mon Sep 17 00:00:00 2001 From: billh Date: Wed, 20 Nov 2002 00:17:14 +0000 Subject: [PATCH] Fix for 99024, debug messages and warnings are only printed when AT_SPI_DEBUG environment variable is set. at-spi-registryd is silent otherwise. git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@363 e2bd861d-eb25-0410-b326-f6ed22b6b98c --- ChangeLog | 36 ++++++++++++++++++++++++++++++++++++ atk-bridge/bridge.c | 25 ++++++++++++++++--------- libspi/listener.c | 5 ++--- libspi/spi-private.h | 4 ++++ registryd/deviceeventcontroller.c | 10 +++++----- registryd/registry.c | 18 +++++++++++++----- 6 files changed, 76 insertions(+), 22 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea0d226..dd21fee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,41 @@ 2002-11-19 Bill Haneman + FIX for bug 99024. + + * libspi/spi-private.h: + Added DGB() macro, and extern int _dbg declaration. + + * registryd/registry.c: + (definitions) storage for _dbg. + (spi_registry_init): + Get environment variable "AT_SPI_DEBUG". + (spi_registry_set_debug): + New method, to initialize _dbg value. + (spi_listener_struct_new, spi_registry_object_finalize): + (notify_listeners_cb): + Changed fprintfs to use DBG and g_warning(). + + * registryd/deviceeventcontroller.c: + (_deregister_keygrab, spi_controller_register_device_listener): + Changed debug/warning messages to use DBG macro. + + * libspi/listener.c: + (impl_notify_event): + Changed warning messages to use DBG macro and g_warning(). + + * atk-bridge/bridge.c: + (atk_bridge_init, spi_atk_bridge_get_registry): + (spi_atk_bridge_exit_func): + (spi_atk_bridge_property_event_listener): + Changed status, warning, and error messages to use + g_warning, g_message, and DBG macros. + + (atk_bridge_init): + Read the state of the AT_SPI_DEBUG environment variable + and set a local '_dbg' accordingly. + +2002-11-19 Bill Haneman + FIXES for 98836, 98842, other bugs. * configure.in: diff --git a/atk-bridge/bridge.c b/atk-bridge/bridge.c index 4647011..dfb8d4f 100644 --- a/atk-bridge/bridge.c +++ b/atk-bridge/bridge.c @@ -37,6 +37,10 @@ #undef SPI_BRIDGE_DEBUG +#define DBG(a,b) if(_dbg>=(a))b + +static int _dbg; + static CORBA_Environment ev; static Accessibility_Registry registry = NULL; static SpiApplication *this_app = NULL; @@ -152,6 +156,8 @@ atk_bridge_init (gint *argc, gchar **argv[]) } atk_bridge_initialized = TRUE; + _dbg = g_ascii_digit_value (g_getenv ("AT_SPI_DEBUG")); + if (!bonobo_init (argc, argv ? *argv : NULL)) { g_error ("Could not initialize Bonobo"); @@ -165,7 +171,7 @@ atk_bridge_init (gint *argc, gchar **argv[]) */ if (bonobo_activation_iid_get ()) { - fprintf (stderr, "Found Bonobo component\n"); + DBG (1, g_message ("Found Bonobo component\n")); toplevel_handler = g_signal_connect (atk_get_root (), "children-changed::add", (GCallback) spi_atk_bridge_toplevel_added, @@ -199,13 +205,13 @@ spi_atk_bridge_do_registration (void) this_app = spi_application_new (atk_get_root ()); - fprintf (stderr, "About to register application\n"); + DBG (1, g_message ("About to register application\n")); spi_atk_bridge_register_application (spi_atk_bridge_get_registry ()); g_atexit (spi_atk_bridge_exit_func); - fprintf (stderr, "Application registered & listening\n"); + DBG (1, g_message ("Application registered & listening\n")); } @@ -234,7 +240,8 @@ spi_atk_bridge_get_registry () if (registry_died || (registry == NULL)) { CORBA_exception_init (&ev); - if (registry_died) g_warning ("registry died! restarting..."); + if (registry_died) + DBG (1, g_warning ("registry died! restarting...")); registry = bonobo_activation_activate_from_id ( "OAFIID:Accessibility_Registry:1.0", 0, NULL, &ev); @@ -358,7 +365,7 @@ spi_atk_bridge_exit_func (void) { BonoboObject *app = (BonoboObject *) this_app; - fprintf (stderr, "exiting bridge\n"); + DBG (1, g_message ("exiting bridge\n")); if (!app) { @@ -373,14 +380,14 @@ spi_atk_bridge_exit_func (void) */ if (!bonobo_is_initialized ()) { - fprintf (stderr, "Re-initializing bonobo\n"); + DBG (1, g_warning ("Re-initializing bonobo\n")); g_assert (bonobo_init (0, NULL)); g_assert (bonobo_activate ()); } deregister_application (app); - fprintf (stderr, "bridge exit func complete.\n"); + DBG (1, g_message ("bridge exit func complete.\n")); if (g_getenv ("AT_BRIDGE_SHUTDOWN")) { @@ -602,8 +609,8 @@ spi_atk_bridge_property_event_listener (GSignalInvocationHint *signal_hint, s2 = g_type_name (G_OBJECT_TYPE (g_value_get_object (param_values + 0))); s = atk_object_get_name (ATK_OBJECT (g_value_get_object (param_values + 0))); values = (AtkPropertyValues*) g_value_get_pointer (param_values + 1); - fprintf (stderr, "Received (property) signal %s:%s:%s from object %s (gail %s)\n", - g_type_name (signal_query.itype), name, values->property_name, s, s2); + DBG (2, g_message ("Received (property) signal %s:%s:%s from object %s (gail %s)\n", + g_type_name (signal_query.itype), name, values->property_name, s, s2)); #endif diff --git a/libspi/listener.c b/libspi/listener.c index 7f10f5c..eb418f0 100644 --- a/libspi/listener.c +++ b/libspi/listener.c @@ -64,9 +64,8 @@ impl_notify_event (PortableServer_Servant servant, fprintf (stderr, "source name: '%s'\n", Accessibility_Accessible__get_name(e->source, ev)); if (ev->_major != CORBA_NO_EXCEPTION) { - fprintf(stderr, - ("Accessibility app error: exception during event notification: %s\n"), - CORBA_exception_id(ev)); + DBG (2, g_warning ("Accessibility app error: exception during event notification: %s\n"), + CORBA_exception_id(ev))); } /* fprintf (stderr, "source is component ? : %s\n", diff --git a/libspi/spi-private.h b/libspi/spi-private.h index f10f10e..de50bda 100644 --- a/libspi/spi-private.h +++ b/libspi/spi-private.h @@ -29,6 +29,10 @@ G_BEGIN_DECLS +#define DBG(a,b) if(_dbg>=(a))b + +extern int _dbg; + typedef enum { SPI_RE_ENTRANT_CONTINUE = 0, SPI_RE_ENTRANT_TERMINATE diff --git a/registryd/deviceeventcontroller.c b/registryd/deviceeventcontroller.c index 098eb7d..98294f8 100644 --- a/registryd/deviceeventcontroller.c +++ b/registryd/deviceeventcontroller.c @@ -507,7 +507,7 @@ _deregister_keygrab (SpiDEController *controller, } else { - g_warning ("De-registering non-existant grab"); + DBG (1, g_warning ("De-registering non-existant grab")); } } @@ -595,7 +595,7 @@ spi_controller_register_device_listener (SpiDEController *controller, controller->mouse_listeners = g_list_prepend (controller->mouse_listeners, listener); break; default: - fprintf (stderr, "WARNING: listener registration for unknown device type.\n"); + DBG (1, g_warning ("listener registration for unknown device type.\n")); break; } return FALSE; @@ -651,7 +651,7 @@ spi_controller_notify_mouselisteners (SpiDEController *controlle if (BONOBO_EX (ev)) { is_consumed = FALSE; - fprintf (stderr, "error notifying listener, removing it\n"); + DBG (2, g_warning ("error notifying listener, removing it\n")); spi_deregister_controller_device_listener (controller, listener, ev); CORBA_exception_free (ev); @@ -830,7 +830,7 @@ global_filter_fn (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) } } else - fprintf (stderr, "XKB event %d\n", xkb_ev->xkb_type); + DBG (2, g_warning ("XKB event %d\n", xkb_ev->xkb_type)); } return GDK_FILTER_CONTINUE; @@ -1690,7 +1690,7 @@ impl_generate_keyboard_event (PortableServer_Servant servant, } if (gdk_error_trap_pop ()) { - g_warning ("Error emitting keystroke"); + DBG (-1, g_warning ("Error emitting keystroke")); } } diff --git a/registryd/registry.c b/registryd/registry.c index c1acfb1..0fc99c1 100644 --- a/registryd/registry.c +++ b/registryd/registry.c @@ -41,6 +41,8 @@ /* A pointer to our parent object class */ static SpiListenerClass *spi_registry_parent_class; +extern int _dbg = 0; + typedef enum { ETYPE_FOCUS, ETYPE_OBJECT, @@ -66,6 +68,13 @@ typedef struct { EventTypeCategory event_type_cat; } SpiListenerStruct; +static void +spi_registry_set_debug (char *debug_flag_string) +{ + if (debug_flag_string) + _dbg = g_ascii_digit_value(debug_flag_string); +} + SpiListenerStruct * spi_listener_struct_new (Accessibility_EventListener listener, CORBA_Environment *ev) { @@ -143,7 +152,7 @@ desktop_remove_application (SpiDesktop *desktop, static void spi_registry_object_finalize (GObject *object) { - fprintf (stderr, "spi_registry_object_finalize called\n"); + DBG (1, g_warning ("spi_registry_object_finalize called\n")); /* TODO: unref deviceeventcontroller, which disconnects key listener */ G_OBJECT_CLASS (spi_registry_parent_class)->finalize (object); @@ -606,9 +615,9 @@ notify_listeners_cb (GList * const *list, gpointer user_data) (Accessibility_EventListener) ls->listener, &ctx->e_out, ctx->ev); if (ctx->ev->_major != CORBA_NO_EXCEPTION) { - g_warning ("Accessibility app error: exception during " + DBG (1, g_warning ("Accessibility app error: exception during " "event notification: %s\n", - CORBA_exception_id (ctx->ev)); + CORBA_exception_id (ctx->ev))); if (ctx->ev->_major == CORBA_SYSTEM_EXCEPTION) CORBA_exception_init (ctx->ev); /* clear system exception on notify, it means listener is dead but @@ -675,8 +684,7 @@ spi_registry_class_init (SpiRegistryClass *klass) static void spi_registry_init (SpiRegistry *registry) { - fprintf (stderr, "REGISTRY INITIALIZED: toolkit list = %p\n", - ®istry->toolkit_listeners); + spi_registry_set_debug (g_getenv ("AT_SPI_DEBUG")); registry->object_listeners = NULL; registry->window_listeners = NULL; registry->toolkit_listeners = NULL; -- 2.7.4