accept more than one callback.
g_bus_own_name_with_closures
g_bus_own_name_on_connection_with_closures
g_bus_watch_name_with_closures
g_bus_watch_name_on_connection_with_closures
g_bus_watch_proxy_with_closures
g_bus_watch_proxy_on_connection_with_closures
https://bugzilla.gnome.org/show_bug.cgi?id=621092
g_bus_own_name
g_bus_own_name_on_connection
g_bus_unown_name
+g_bus_own_name_with_closures
+g_bus_own_name_on_connection_with_closures
</SECTION>
<SECTION>
g_bus_watch_name
g_bus_watch_name_on_connection
g_bus_unwatch_name
+g_bus_watch_name_with_closures
+g_bus_watch_name_on_connection_with_closures
</SECTION>
<SECTION>
g_bus_watch_proxy
g_bus_watch_proxy_on_connection
g_bus_unwatch_proxy
+g_bus_watch_proxy_with_closures
+g_bus_watch_proxy_on_connection_with_closures
</SECTION>
<SECTION>
return client->id;
}
+typedef struct {
+ GClosure *bus_acquired_closure;
+ GClosure *name_acquired_closure;
+ GClosure *name_lost_closure;
+} OwnNameData;
+
+static void
+own_with_closures_on_bus_acquired (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ OwnNameData *data = user_data;
+ GValue params[2] = { { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_closure_invoke (data->bus_acquired_closure, NULL, 2, params, NULL);
+}
+
+static void
+own_with_closures_on_name_acquired (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ OwnNameData *data = user_data;
+ GValue params[2] = { { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_closure_invoke (data->name_acquired_closure, NULL, 2, params, NULL);
+}
+
+static void
+own_with_closures_on_name_lost (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ OwnNameData *data = user_data;
+ GValue params[2] = { { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_closure_invoke (data->name_lost_closure, NULL, 2, params, NULL);
+}
+
+static void
+bus_own_name_free_func (gpointer user_data)
+{
+ OwnNameData *data = user_data;
+
+ if (data->bus_acquired_closure != NULL)
+ g_closure_unref (data->bus_acquired_closure);
+
+ if (data->name_acquired_closure != NULL)
+ g_closure_unref (data->name_acquired_closure);
+
+ if (data->name_lost_closure != NULL)
+ g_closure_unref (data->name_lost_closure);
+
+ g_free (data);
+}
+
+/**
+ * g_bus_own_name_with_closures:
+ * @bus_type: The type of bus to own a name on.
+ * @name: The well-known name to own.
+ * @flags: A set of flags from the #GBusNameOwnerFlags enumeration.
+ * @bus_acquired_closure: (allow-none): #GClosure to invoke when connected to
+ * the bus of type @bus_type or %NULL.
+ * @name_acquired_closure: (allow-none): #GClosure to invoke when @name is
+ * acquired or %NULL.
+ * @name_lost_closure: (allow-none): #GClosure to invoke when @name is lost or
+ * %NULL.
+ *
+ * Version of g_bus_own_name() using closures instead of callbacks for
+ * easier binding in other languages.
+ *
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unown_name() to stop owning the name.
+ *
+ * Rename to: g_bus_own_name
+ *
+ * Since: 2.26
+ */
+guint
+g_bus_own_name_with_closures (GBusType bus_type,
+ const gchar *name,
+ GBusNameOwnerFlags flags,
+ GClosure *bus_acquired_closure,
+ GClosure *name_acquired_closure,
+ GClosure *name_lost_closure)
+{
+ OwnNameData *data;
+
+ data = g_new0 (OwnNameData, 1);
+
+ if (bus_acquired_closure != NULL)
+ data->bus_acquired_closure = g_closure_ref (bus_acquired_closure);
+
+ if (name_acquired_closure != NULL)
+ data->name_acquired_closure = g_closure_ref (name_acquired_closure);
+
+ if (name_lost_closure != NULL)
+ data->name_lost_closure = g_closure_ref (name_lost_closure);
+
+ return g_bus_own_name (bus_type,
+ name,
+ flags,
+ bus_acquired_closure != NULL ? own_with_closures_on_bus_acquired : NULL,
+ name_acquired_closure != NULL ? own_with_closures_on_name_acquired : NULL,
+ name_lost_closure != NULL ? own_with_closures_on_name_lost : NULL,
+ data,
+ bus_own_name_free_func);
+}
+
+/**
+ * g_bus_own_name_on_connection_with_closures:
+ * @connection: A #GDBusConnection that is not closed.
+ * @name: The well-known name to own.
+ * @flags: A set of flags from the #GBusNameOwnerFlags enumeration.
+ * @name_acquired_closure: (allow-none): #GClosure to invoke when @name is
+ * acquired or %NULL.
+ * @name_lost_closure: (allow-none): #GClosure to invoke when @name is lost or
+ * %NULL.
+ *
+ * Version of g_bus_own_name_on_connection() using closures instead of callbacks for
+ * easier binding in other languages.
+ *
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unown_name() to stop owning the name.
+ *
+ * Rename to: g_bus_own_name_on_connection
+ *
+ * Since: 2.26
+ */
+guint
+g_bus_own_name_on_connection_with_closures (GDBusConnection *connection,
+ const gchar *name,
+ GBusNameOwnerFlags flags,
+ GClosure *name_acquired_closure,
+ GClosure *name_lost_closure)
+{
+ OwnNameData *data;
+
+ data = g_new0 (OwnNameData, 1);
+
+ if (name_acquired_closure != NULL)
+ data->name_acquired_closure = g_closure_ref (name_acquired_closure);
+
+ if (name_lost_closure != NULL)
+ data->name_lost_closure = g_closure_ref (name_lost_closure);
+
+ return g_bus_own_name_on_connection (connection,
+ name,
+ flags,
+ name_acquired_closure != NULL ? own_with_closures_on_name_acquired : NULL,
+ name_lost_closure != NULL ? own_with_closures_on_name_lost : NULL,
+ data,
+ bus_own_name_free_func);
+}
+
/**
* g_bus_unown_name:
* @owner_id: An identifier obtained from g_bus_own_name()
gpointer user_data,
GDestroyNotify user_data_free_func);
+guint g_bus_own_name_with_closures (GBusType bus_type,
+ const gchar *name,
+ GBusNameOwnerFlags flags,
+ GClosure *bus_acquired_closure,
+ GClosure *name_acquired_closure,
+ GClosure *name_lost_closure);
+
+guint g_bus_own_name_on_connection_with_closures (
+ GDBusConnection *connection,
+ const gchar *name,
+ GBusNameOwnerFlags flags,
+ GClosure *name_acquired_closure,
+ GClosure *name_lost_closure);
+
void g_bus_unown_name (guint owner_id);
G_END_DECLS
return client->id;
}
+typedef struct {
+ GClosure *name_appeared_closure;
+ GClosure *name_vanished_closure;
+} WatchNameData;
+
+static void
+watch_with_closures_on_name_appeared (GDBusConnection *connection,
+ const gchar *name,
+ const gchar *name_owner,
+ gpointer user_data)
+{
+ WatchNameData *data = user_data;
+ GValue params[3] = { { 0, }, { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_value_init (¶ms[2], G_TYPE_STRING);
+ g_value_set_string (¶ms[2], name_owner);
+
+ g_closure_invoke (data->name_appeared_closure, NULL, 3, params, NULL);
+}
+
+static void
+watch_with_closures_on_name_vanished (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ WatchNameData *data = user_data;
+ GValue params[2] = { { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_closure_invoke (data->name_vanished_closure, NULL, 2, params, NULL);
+}
+
+static void
+bus_watch_name_free_func (gpointer user_data)
+{
+ WatchNameData *data = user_data;
+
+ if (data->name_appeared_closure != NULL)
+ g_closure_unref (data->name_appeared_closure);
+
+ if (data->name_vanished_closure != NULL)
+ g_closure_unref (data->name_vanished_closure);
+
+ g_free (data);
+}
+
+/**
+ * g_bus_watch_name_with_closures:
+ * @bus_type: The type of bus to watch a name on.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @name_appeared_closure: (allow-none): #GClosure to invoke when @name is known
+ * to exist or %NULL.
+ * @name_vanished_closure: (allow-none): #GClosure to invoke when @name is known
+ * to not exist or %NULL.
+ *
+ * Version of g_bus_watch_name() using closures instead of callbacks for
+ * easier binding in other languages.
+ *
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unwatch_name() to stop watching the name.
+ *
+ * Rename to: g_bus_watch_name
+ *
+ * Since: 2.26
+ */
+guint
+g_bus_watch_name_with_closures (GBusType bus_type,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ GClosure *name_appeared_closure,
+ GClosure *name_vanished_closure)
+{
+ WatchNameData *data;
+
+ data = g_new0 (WatchNameData, 1);
+
+ if (name_appeared_closure != NULL)
+ data->name_appeared_closure = g_closure_ref (name_appeared_closure);
+
+ if (name_vanished_closure != NULL)
+ data->name_vanished_closure = g_closure_ref (name_vanished_closure);
+
+ return g_bus_watch_name (bus_type,
+ name,
+ flags,
+ name_appeared_closure != NULL ? watch_with_closures_on_name_appeared : NULL,
+ name_vanished_closure != NULL ? watch_with_closures_on_name_vanished : NULL,
+ data,
+ bus_watch_name_free_func);
+}
+
+/**
+ * g_bus_watch_name_on_connection_with_closures:
+ * @connection: A #GDBusConnection that is not closed.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @name_appeared_closure: (allow-none): #GClosure to invoke when @name is known
+ * to exist or %NULL.
+ * @name_vanished_closure: (allow-none): #GClosure to invoke when @name is known
+ * to not exist or %NULL.
+ *
+ * Version of g_bus_watch_name_on_connection() using closures instead of callbacks for
+ * easier binding in other languages.
+ *
+ * Returns: An identifier (never 0) that an be used with
+ * g_bus_unwatch_name() to stop watching the name.
+ *
+ * Rename to: g_bus_watch_name_on_connection
+ *
+ * Since: 2.26
+ */
+guint g_bus_watch_name_on_connection_with_closures (
+ GDBusConnection *connection,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ GClosure *name_appeared_closure,
+ GClosure *name_vanished_closure)
+{
+ WatchNameData *data;
+
+ data = g_new0 (WatchNameData, 1);
+
+ if (name_appeared_closure != NULL)
+ data->name_appeared_closure = g_closure_ref (name_appeared_closure);
+
+ if (name_vanished_closure != NULL)
+ data->name_vanished_closure = g_closure_ref (name_vanished_closure);
+
+ return g_bus_watch_name_on_connection (connection,
+ name,
+ flags,
+ name_appeared_closure != NULL ? watch_with_closures_on_name_appeared : NULL,
+ name_vanished_closure != NULL ? watch_with_closures_on_name_vanished : NULL,
+ data,
+ bus_watch_name_free_func);
+}
+
/**
* g_bus_unwatch_name:
* @watcher_id: An identifier obtained from g_bus_watch_name()
GBusNameVanishedCallback name_vanished_handler,
gpointer user_data,
GDestroyNotify user_data_free_func);
+guint g_bus_watch_name_with_closures (GBusType bus_type,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ GClosure *name_appeared_closure,
+ GClosure *name_vanished_closure);
+guint g_bus_watch_name_on_connection_with_closures (
+ GDBusConnection *connection,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ GClosure *name_appeared_closure,
+ GClosure *name_vanished_closure);
void g_bus_unwatch_name (guint watcher_id);
G_END_DECLS
return client->id;
}
+typedef struct {
+ GClosure *proxy_appeared_closure;
+ GClosure *proxy_vanished_closure;
+} WatchProxyData;
+
+static void
+watch_with_closures_on_proxy_appeared (GDBusConnection *connection,
+ const gchar *name,
+ const gchar *name_owner,
+ GDBusProxy *proxy,
+ gpointer user_data)
+{
+ WatchProxyData *data = user_data;
+ GValue params[4] = { { 0, }, { 0, }, { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_value_init (¶ms[2], G_TYPE_STRING);
+ g_value_set_string (¶ms[2], name_owner);
+
+ g_value_init (¶ms[3], G_TYPE_DBUS_PROXY);
+ g_value_set_object (¶ms[3], proxy);
+
+ g_closure_invoke (data->proxy_appeared_closure, NULL, 4, params, NULL);
+}
+
+static void
+watch_with_closures_on_proxy_vanished (GDBusConnection *connection,
+ const gchar *name,
+ gpointer user_data)
+{
+ WatchProxyData *data = user_data;
+ GValue params[2] = { { 0, }, { 0, } };
+
+ g_value_init (¶ms[0], G_TYPE_DBUS_CONNECTION);
+ g_value_set_object (¶ms[0], connection);
+
+ g_value_init (¶ms[1], G_TYPE_STRING);
+ g_value_set_string (¶ms[1], name);
+
+ g_closure_invoke (data->proxy_vanished_closure, NULL, 2, params, NULL);
+}
+
+static void
+bus_watch_proxy_free_func (gpointer user_data)
+{
+ WatchProxyData *data = user_data;
+
+ if (data->proxy_appeared_closure != NULL)
+ g_closure_unref (data->proxy_appeared_closure);
+
+ if (data->proxy_vanished_closure != NULL)
+ g_closure_unref (data->proxy_vanished_closure);
+
+ g_free (data);
+}
+
+/**
+ * g_bus_watch_proxy_with_closures:
+ * @bus_type: The type of bus to watch a name on.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @object_path: The object path of the remote object to watch.
+ * @interface_name: The D-Bus interface name for the proxy.
+ * @interface_type: The #GType for the kind of proxy to create. This must be a #GDBusProxy derived type.
+ * @proxy_flags: Flags from #GDBusProxyFlags to use when constructing the proxy.
+ * @proxy_appeared_closure: (allow-none): #GClosure to invoke when @name is
+ * known to exist and the requested proxy is available.
+ * @proxy_vanished_closure: (allow-none): #GClosure to invoke when @name is
+ * known to not exist and the previously created proxy is no longer available.
+ *
+ * Version of g_bus_watch_proxy() using closures instead of callbacks for
+ * easier binding in other languages.
+ *
+ * Returns: An identifier (never 0) that can be used with
+ * g_bus_unwatch_proxy() to stop watching the remote object.
+ *
+ * Rename to: g_bus_watch_proxy
+ *
+ * Since: 2.26
+ */
+guint
+g_bus_watch_proxy_with_closures (GBusType bus_type,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ const gchar *object_path,
+ const gchar *interface_name,
+ GType interface_type,
+ GDBusProxyFlags proxy_flags,
+ GClosure *proxy_appeared_closure,
+ GClosure *proxy_vanished_closure)
+{
+ WatchProxyData *data;
+
+ data = g_new0 (WatchProxyData, 1);
+
+ if (proxy_appeared_closure != NULL)
+ data->proxy_appeared_closure = g_closure_ref (proxy_appeared_closure);
+
+ if (proxy_vanished_closure != NULL)
+ data->proxy_vanished_closure = g_closure_ref (proxy_vanished_closure);
+
+ return g_bus_watch_proxy (bus_type,
+ name,
+ flags,
+ object_path,
+ interface_name,
+ interface_type,
+ proxy_flags,
+ proxy_appeared_closure != NULL ? watch_with_closures_on_proxy_appeared : NULL,
+ proxy_vanished_closure != NULL ? watch_with_closures_on_proxy_vanished : NULL,
+ data,
+ bus_watch_proxy_free_func);
+}
+
+/**
+ * g_bus_watch_proxy_on_connection_with_closures:
+ * @connection: A #GDBusConnection that is not closed.
+ * @name: The name (well-known or unique) to watch.
+ * @flags: Flags from the #GBusNameWatcherFlags enumeration.
+ * @object_path: The object path of the remote object to watch.
+ * @interface_name: The D-Bus interface name for the proxy.
+ * @interface_type: The #GType for the kind of proxy to create. This must be a #GDBusProxy derived type.
+ * @proxy_flags: Flags from #GDBusProxyFlags to use when constructing the proxy.
+ * @proxy_appeared_closure: (allow-none): #GClosure to invoke when @name is
+ * known to exist and the requested proxy is available.
+ * @proxy_vanished_closure: (allow-none): #GClosure to invoke when @name is
+ * known to not exist and the previously created proxy is no longer available.
+ *
+ * Version of g_bus_watch_proxy_on_connection() using closures instead of
+ * callbacks for easier binding in other languages.
+ *
+ * Returns: An identifier (never 0) that can be used with
+ * g_bus_unwatch_proxy() to stop watching the remote object.
+ *
+ * Rename to: g_bus_watch_proxy_on_connection
+ *
+ * Since: 2.26
+ */
+guint
+g_bus_watch_proxy_on_connection_with_closures (
+ GDBusConnection *connection,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ const gchar *object_path,
+ const gchar *interface_name,
+ GType interface_type,
+ GDBusProxyFlags proxy_flags,
+ GClosure *proxy_appeared_closure,
+ GClosure *proxy_vanished_closure)
+{
+ WatchProxyData *data;
+
+ data = g_new0 (WatchProxyData, 1);
+
+ if (proxy_appeared_closure != NULL)
+ data->proxy_appeared_closure = g_closure_ref (proxy_appeared_closure);
+
+ if (proxy_vanished_closure != NULL)
+ data->proxy_vanished_closure = g_closure_ref (proxy_vanished_closure);
+
+ return g_bus_watch_proxy_on_connection (connection,
+ name,
+ flags,
+ object_path,
+ interface_name,
+ interface_type,
+ proxy_flags,
+ proxy_appeared_closure != NULL ? watch_with_closures_on_proxy_appeared : NULL,
+ proxy_vanished_closure != NULL ? watch_with_closures_on_proxy_vanished : NULL,
+ data,
+ bus_watch_proxy_free_func);
+}
/**
* g_bus_unwatch_proxy:
GBusProxyVanishedCallback proxy_vanished_handler,
gpointer user_data,
GDestroyNotify user_data_free_func);
+guint g_bus_watch_proxy_with_closures (GBusType bus_type,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ const gchar *object_path,
+ const gchar *interface_name,
+ GType interface_type,
+ GDBusProxyFlags proxy_flags,
+ GClosure *proxy_appeared_closure,
+ GClosure *proxy_vanished_closure);
+guint g_bus_watch_proxy_on_connection_with_closures (
+ GDBusConnection *connection,
+ const gchar *name,
+ GBusNameWatcherFlags flags,
+ const gchar *object_path,
+ const gchar *interface_name,
+ GType interface_type,
+ GDBusProxyFlags proxy_flags,
+ GClosure *proxy_appeared_closure,
+ GClosure *proxy_vanished_closure);
void g_bus_unwatch_proxy (guint watcher_id);
G_END_DECLS
g_bus_own_name
g_bus_own_name_on_connection
g_bus_unown_name
+g_bus_own_name_with_closures
+g_bus_own_name_on_connection_with_closures
#endif
#endif
g_bus_watch_name
g_bus_watch_name_on_connection
g_bus_unwatch_name
+g_bus_watch_name_with_closures
+g_bus_watch_name_on_connection_with_closures
#endif
#endif
g_bus_watch_proxy
g_bus_watch_proxy_on_connection
g_bus_unwatch_proxy
+g_bus_watch_proxy_with_closures
+g_bus_watch_proxy_on_connection_with_closures
#endif
#endif
exit 0
fi
-SKIP='\<g_access\|\<g_array_\|\<g_ascii\|\<g_list_\|\<g_assertion_message\|\<g_warn_message\|\<g_atomic\|\<g_bit_\|\<g_boxed\|\<g_build_filename\|\<g_byte_array\|\<g_checksum\|\<g_child_watch\|\<g_clear_error\|\<g_convert\|\<g_dir_\|\<g_enum_\|\<g_error_\|\<g_prefix_error\|\<g_file_error_quark\|\<g_file_get_contents\|\<g_file_set_contents\|\<g_file_test\|\<g_file_read_link\|\<g_filename_\|\<g_find_program_in_path\|\<g_flags_\|\<g_free\|\<g_get_\|\<g_getenv\|\<g_setenv\|\<g_hash_table_\|\<g_hostname_\|\<g_iconv\|\<g_idle_\|\<g_intern_static_string\|\<g_io_add_watch\|\<g_io_channel_\|\<g_io_create_watch\|\<g_key_file_\|\<g_listenv\|\<g_locale_to_utf8\|\<g_log\|\<g_main_context_\|\<g_main_current_source\|\<g_main_loop_\|\<g_malloc\|\<g_markup_\|\<g_mkdir_\|\<g_mkstemp\|\<g_module_\|\<g_object_\|\<g_once_\|\<g_param_spec_\|\<g_path_\|\<g_poll\|\<g_printerr\|\<g_propagate_error\|\<g_ptr_array_\|\<g_qsort_\|\<g_quark_\|\<g_queue_\|\<g_random_int_range\|\<g_realloc\|\<g_return_if_fail\|\<g_set_error\|\<g_shell_\|\<g_signal_\|\<g_slice_\|\<g_slist_\|\<g_snprintf\|\<g_source_\|\<g_spawn_\|\<g_static_\|\<g_str\|\<g_thread_pool_\|\<g_time_val_add\|\<g_timeout_\|\<g_type_\|\<g_unlink\|\<g_uri_\|\<g_utf8_\|\<g_value_\|\<g_tree_\|\<g_variant_\|\<g_mapped_file_\|\<g_intern_string\>\|\<g_compute_checksum\|\<g_memdup\|\<g_print\|\<g_random_int\|\<g_propagate_prefixed_e\|\<g_thread_create_full\|\<g_int_hash\|\<g_file_open_tmp\|\<g_thread_self\|\<g_usleep\|\<g_dcgettext\|\<g_dgettext'
+SKIP='\<g_access\|\<g_array_\|\<g_ascii\|\<g_list_\|\<g_assertion_message\|\<g_warn_message\|\<g_atomic\|\<g_bit_\|\<g_boxed\|\<g_build_filename\|\<g_byte_array\|\<g_checksum\|\<g_child_watch\|\<g_clear_error\|\<g_convert\|\<g_dir_\|\<g_enum_\|\<g_error_\|\<g_prefix_error\|\<g_file_error_quark\|\<g_file_get_contents\|\<g_file_set_contents\|\<g_file_test\|\<g_file_read_link\|\<g_filename_\|\<g_find_program_in_path\|\<g_flags_\|\<g_free\|\<g_get_\|\<g_getenv\|\<g_setenv\|\<g_hash_table_\|\<g_hostname_\|\<g_iconv\|\<g_idle_\|\<g_intern_static_string\|\<g_io_add_watch\|\<g_io_channel_\|\<g_io_create_watch\|\<g_key_file_\|\<g_listenv\|\<g_locale_to_utf8\|\<g_log\|\<g_main_context_\|\<g_main_current_source\|\<g_main_loop_\|\<g_malloc\|\<g_markup_\|\<g_mkdir_\|\<g_mkstemp\|\<g_module_\|\<g_object_\|\<g_once_\|\<g_param_spec_\|\<g_path_\|\<g_poll\|\<g_printerr\|\<g_propagate_error\|\<g_ptr_array_\|\<g_qsort_\|\<g_quark_\|\<g_queue_\|\<g_random_int_range\|\<g_realloc\|\<g_return_if_fail\|\<g_set_error\|\<g_shell_\|\<g_signal_\|\<g_slice_\|\<g_slist_\|\<g_snprintf\|\<g_source_\|\<g_spawn_\|\<g_static_\|\<g_str\|\<g_thread_pool_\|\<g_time_val_add\|\<g_timeout_\|\<g_type_\|\<g_unlink\|\<g_uri_\|\<g_utf8_\|\<g_value_\|\<g_tree_\|\<g_variant_\|\<g_mapped_file_\|\<g_intern_string\>\|\<g_compute_checksum\|\<g_memdup\|\<g_print\|\<g_random_int\|\<g_propagate_prefixed_e\|\<g_thread_create_full\|\<g_int_hash\|\<g_file_open_tmp\|\<g_thread_self\|\<g_usleep\|\<g_dcgettext\|\<g_dgettext\|\<g_closure'
for so in .libs/lib*.so; do
echo Checking $so for local PLT entries