From 74f174156fd0c9ffb3de5454a480ddeae49a4d40 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Aug 22 2008 23:08:35 +0000 Subject: 2.23.90 --- diff --git a/.cvsignore b/.cvsignore index 6d24c33..387a780 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -libgnomeui-2.23.4.tar.bz2 +libgnomeui-2.23.90.tar.bz2 diff --git a/filechooser-auth.patch b/filechooser-auth.patch deleted file mode 100644 index d860e58..0000000 --- a/filechooser-auth.patch +++ /dev/null @@ -1,246 +0,0 @@ -diff -up libgnomeui-2.22.1/file-chooser/gtkfilesystemgio.c.filechooser-auth libgnomeui-2.22.1/file-chooser/gtkfilesystemgio.c ---- libgnomeui-2.22.1/file-chooser/gtkfilesystemgio.c.filechooser-auth 2008-04-09 13:54:15.000000000 -0400 -+++ libgnomeui-2.22.1/file-chooser/gtkfilesystemgio.c 2008-04-09 13:54:30.000000000 -0400 -@@ -25,6 +25,7 @@ - #include - #include - #include "gtkfilesystemgio.h" -+#include - - #define GTK_FILE_SYSTEM_GIO_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GTK_TYPE_FILE_SYSTEM_GIO, GtkFileSystemGioClass)) - #define GTK_IS_FILE_SYSTEM_GIO_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GTK_TYPE_FILE_SYSTEM_GIO)) -@@ -90,6 +91,8 @@ struct GtkFileSystemHandleGio - gpointer callback; - gpointer data; - guint tried_mount : 1; -+ -+ GMountOperation *mount_op; - }; - - struct GtkFileFolderGioClass -@@ -248,6 +251,144 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED (GtkFileF - MODULE_IMPLEMENT_INTERFACE (GTK_TYPE_FILE_FOLDER, - gtk_file_folder_gio_iface_init)) - -+ -+ -+/* GMountOperation callbacks */ -+static void -+mount_op_ask_password (GMountOperation *op, -+ const char *message, -+ const char *default_user, -+ const char *default_domain, -+ GAskPasswordFlags flags) -+{ -+ GtkWidget *dialog; -+ char *username, *domain, *password; -+ gboolean anon; -+ int res; -+ -+ gdk_threads_enter (); -+ -+ dialog = gnome_password_dialog_new (_("Enter Password"), -+ message, -+ default_user, -+ "", -+ FALSE); -+ -+ gnome_password_dialog_set_show_password (GNOME_PASSWORD_DIALOG (dialog), -+ flags & G_ASK_PASSWORD_NEED_PASSWORD); -+ -+ gnome_password_dialog_set_show_username (GNOME_PASSWORD_DIALOG (dialog), -+ flags & G_ASK_PASSWORD_NEED_USERNAME); -+ gnome_password_dialog_set_show_domain (GNOME_PASSWORD_DIALOG (dialog), -+ flags & G_ASK_PASSWORD_NEED_DOMAIN); -+ gnome_password_dialog_set_show_userpass_buttons (GNOME_PASSWORD_DIALOG (dialog), -+ flags & G_ASK_PASSWORD_ANONYMOUS_SUPPORTED); -+ gnome_password_dialog_set_show_remember (GNOME_PASSWORD_DIALOG (dialog), -+ flags & G_ASK_PASSWORD_SAVING_SUPPORTED); -+ -+ if (default_domain) { -+ gnome_password_dialog_set_domain (GNOME_PASSWORD_DIALOG (dialog), -+ default_domain); -+ } -+ -+ res = gtk_dialog_run (GTK_DIALOG (dialog)); -+ if (res == GTK_RESPONSE_OK) { -+ username = gnome_password_dialog_get_username (GNOME_PASSWORD_DIALOG (dialog)); -+ if (username) { -+ g_mount_operation_set_username (op, username); -+ g_free (username); -+ } -+ -+ domain = gnome_password_dialog_get_domain (GNOME_PASSWORD_DIALOG (dialog)); -+ if (domain) { -+ g_mount_operation_set_domain (op, domain); -+ g_free (domain); -+ } -+ -+ password = gnome_password_dialog_get_password (GNOME_PASSWORD_DIALOG (dialog)); -+ if (password) { -+ g_mount_operation_set_password (op, password); -+ g_free (password); -+ } -+ -+ anon = gnome_password_dialog_anon_selected (GNOME_PASSWORD_DIALOG (dialog)); -+ g_mount_operation_set_anonymous (op, anon); -+ -+ switch (gnome_password_dialog_get_remember (GNOME_PASSWORD_DIALOG (dialog))) { -+ case GNOME_PASSWORD_DIALOG_REMEMBER_NOTHING: -+ g_mount_operation_set_password_save (op, G_PASSWORD_SAVE_NEVER); -+ break; -+ case GNOME_PASSWORD_DIALOG_REMEMBER_SESSION: -+ g_mount_operation_set_password_save (op, G_PASSWORD_SAVE_FOR_SESSION); -+ break; -+ case GNOME_PASSWORD_DIALOG_REMEMBER_FOREVER: -+ g_mount_operation_set_password_save (op, G_PASSWORD_SAVE_PERMANENTLY); -+ break; -+ } -+ -+ g_mount_operation_reply (op, G_MOUNT_OPERATION_HANDLED); -+ } else { -+ g_mount_operation_reply (op, G_MOUNT_OPERATION_ABORTED); -+ } -+ -+ gtk_widget_destroy (GTK_WIDGET (dialog)); -+ gdk_threads_leave (); -+} -+ -+static void -+mount_op_ask_question (GMountOperation *op, -+ const char *message, -+ const char *choices[]) -+{ -+ GtkWidget *dialog; -+ int cnt, len; -+ char *primary; -+ const char *secondary = NULL; -+ int res; -+ -+ primary = strstr (message, "\n"); -+ if (primary) { -+ secondary = primary + 1; -+ primary = g_strndup (message, strlen (message) - strlen (primary)); -+ } -+ -+ gdk_threads_enter (); -+ dialog = gtk_message_dialog_new (NULL, -+ 0, GTK_MESSAGE_QUESTION, -+ GTK_BUTTONS_NONE, "%s", primary); -+ g_free (primary); -+ -+ if (secondary) { -+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), -+ "%s", secondary); -+ } -+ -+ if (choices) { -+ /* First count the items in the list then -+ * add the buttons in reverse order */ -+ for (len = 0; choices[len] != NULL; len++) { -+ ; -+ } -+ -+ for (cnt = len - 1; cnt >= 0; cnt--) { -+ gtk_dialog_add_button (GTK_DIALOG (dialog), choices[cnt], cnt); -+ } -+ } -+ -+ res = gtk_dialog_run (GTK_DIALOG (dialog)); -+ if (res >= 0) { -+ g_mount_operation_set_choice (op, res); -+ g_mount_operation_reply (op, G_MOUNT_OPERATION_HANDLED); -+ } else { -+ g_mount_operation_reply (op, G_MOUNT_OPERATION_ABORTED); -+ } -+ -+ gtk_widget_destroy (GTK_WIDGET (dialog)); -+ gdk_threads_leave (); -+} -+ -+ -+ - /* GtkFileSystemGio methods */ - static void - gtk_file_system_gio_class_init (GtkFileSystemGioClass *class) -@@ -501,6 +642,7 @@ gtk_file_system_handle_gio_class_finaliz - static void - gtk_file_system_handle_gio_init (GtkFileSystemHandleGio *impl) - { -+ impl->mount_op = NULL; - } - - static void -@@ -939,11 +1081,21 @@ mount_async_callback (GObject *sour - } - else - { -+ /* This is a dirty hack to indicate gtk+ that user has cancelled the password dialog. -+ * Trying to avoid checking G_IO_ERROR values in gtkfilechooserdefault.c directly -+ * which would cause a need to link libgio to gtk lib. */ -+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED)) { -+ error->domain = G_FILE_ERROR; -+ error->code = G_FILE_ERROR_INTR; -+ } -+ - gdk_threads_enter (); - ((GtkFileSystemGetInfoCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - NULL, error, handle->data); - gdk_threads_leave (); - } -+ if (handle->mount_op) -+ g_object_unref (handle->mount_op); - } - - static void -@@ -956,6 +1108,7 @@ query_info_callback (GObject *sourc - GError *error = NULL; - GFileInfo *file_info; - GFile *file; -+ GMountOperation *mount_op; - - DEBUG ("query_info_callback"); - -@@ -973,7 +1126,15 @@ query_info_callback (GObject *sourc - /* If it's not mounted, try to mount it ourselves */ - g_error_free (error); - handle->tried_mount = TRUE; -- g_file_mount_enclosing_volume (file, G_MOUNT_MOUNT_NONE, NULL, -+ -+ mount_op = g_mount_operation_new (); -+ handle->mount_op = mount_op; -+ g_signal_connect (mount_op, "ask-password", -+ G_CALLBACK (mount_op_ask_password), handle); -+ g_signal_connect (mount_op, "ask-question", -+ G_CALLBACK (mount_op_ask_question), handle); -+ -+ g_file_mount_enclosing_volume (file, G_MOUNT_MOUNT_NONE, mount_op, - handle->cancellable, - mount_async_callback, - handle); -@@ -1204,6 +1365,9 @@ volume_mount_cb (GObject *source_object, - error, handle->data); - gdk_threads_leave (); - -+ if (handle->mount_op) -+ g_object_unref (handle->mount_op); -+ - if (error) - g_error_free (error); - } -@@ -1262,8 +1426,14 @@ gtk_file_system_gio_volume_mount (GtkFil - GMountOperation *mount_op; - - mount_op = g_mount_operation_new (); -+ handle->mount_op = mount_op; -+ -+ g_signal_connect (mount_op, "ask-password", -+ G_CALLBACK (mount_op_ask_password), handle); -+ g_signal_connect (mount_op, "ask-question", -+ G_CALLBACK (mount_op_ask_question), handle); -+ - g_volume_mount (volume, 0, mount_op, handle->cancellable, volume_mount_cb, handle); -- g_object_unref (mount_op); - } - - return GTK_FILE_SYSTEM_HANDLE (handle); diff --git a/gio-thumbnail.patch b/gio-thumbnail.patch deleted file mode 100644 index 7a9f7d3..0000000 --- a/gio-thumbnail.patch +++ /dev/null @@ -1,472 +0,0 @@ -diff -up libgnomeui-2.21.91/test-gnome/Makefile.am.gio-thumbnail libgnomeui-2.21.91/test-gnome/Makefile.am ---- libgnomeui-2.21.91/test-gnome/Makefile.am.gio-thumbnail 2006-12-31 05:47:38.000000000 -0500 -+++ libgnomeui-2.21.91/test-gnome/Makefile.am 2008-02-19 12:36:06.000000000 -0500 -@@ -14,7 +14,7 @@ LDADD = \ - $(top_builddir)/libgnomeui/libgnomeui-2.la $(GNOME_TEST_LIBS) - - noinst_PROGRAMS = \ -- test-gnome test-druid test-entry test-iconlist test-password-dialog -+ test-gnome test-druid test-entry test-iconlist test-password-dialog test-gnomegdkpixbuf - - test_gnome_SOURCES = \ - testgnome.c \ -@@ -34,6 +34,9 @@ test_entry_SOURCES = \ - test_iconlist_SOURCES = \ - testiconlist.c - -+test_gnomegdkpixbuf_SOURCES = \ -+ testgnomegdkpixbuf.c -+ - EXTRA_DIST = \ - bomb.xpm \ - testgnome.xml -diff -up /dev/null libgnomeui-2.21.91/test-gnome/testgnomegdkpixbuf.c ---- /dev/null 2008-02-19 08:34:07.012713418 -0500 -+++ libgnomeui-2.21.91/test-gnome/testgnomegdkpixbuf.c 2008-02-19 12:36:06.000000000 -0500 -@@ -0,0 +1,101 @@ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+static gboolean async_ok; -+ -+static void -+pixbuf_done (GnomeGdkPixbufAsyncHandle *handle, gpointer user_data) -+{ -+ gtk_main_quit (); -+} -+ -+static void -+pixbuf_loaded (GnomeGdkPixbufAsyncHandle *handle, -+ GnomeVFSResult error, -+ GdkPixbuf *pixbuf, -+ gpointer user_data) -+{ -+ if (pixbuf != NULL) { -+ GError *error = NULL; -+ -+ if (!gdk_pixbuf_save (pixbuf, "pixbuf-async.png", "png", &error, NULL)) { -+ g_warning ("Error saving file pixbuf-async.png: %s", error->message); -+ } else { -+ async_ok = TRUE; -+ } -+ } -+} -+ -+int -+main (int argc, char *argv[]) -+{ -+ int ret; -+ char *uri; -+ GdkPixbuf *pixbuf; -+ GFile *file; -+ GError *error; -+ GnomeGdkPixbufAsyncHandle *handle; -+ -+ uri = NULL; -+ error = NULL; -+ async_ok = FALSE; -+ ret = 1; -+ -+ gtk_init (&argc, &argv); -+ -+ if (argc != 2) { -+ g_warning ("usage: %s ", argv[0]); -+ goto out; -+ } -+ -+ /* this is a cheap trick to get file:/// properly appended */ -+ file = g_file_new_for_commandline_arg (argv[1]); -+ uri = g_file_get_uri (file); -+ g_object_unref (file); -+ -+ /* first, test the sync version */ -+ g_message ("Using gnome_gdk_pixbuf_new_from_uri() to load file with uri '%s'", uri); -+ -+ pixbuf = gnome_gdk_pixbuf_new_from_uri (uri); -+ if (pixbuf == NULL) { -+ g_warning ("gnome_gdk_pixbuf_new_from_uri() failed"); -+ goto out; -+ } -+ if (!gdk_pixbuf_save (pixbuf, "pixbuf-sync.png", "png", &error, NULL)) { -+ g_warning ("Error saving file pixbuf-sync.png: %s", error->message); -+ goto out; -+ } -+ g_object_unref (pixbuf); -+ -+ g_message ("Saved pixbuf to pixbuf-sync.png"); -+ -+ /* now, the async version */ -+ g_message ("Using gnome_gdk_pixbuf_new_from_uri_async() to load file with uri '%s'", uri); -+ -+ handle = gnome_gdk_pixbuf_new_from_uri_async (uri, -+ pixbuf_loaded, -+ pixbuf_done, -+ NULL); -+ -+ gtk_main (); -+ -+ if (!async_ok) { -+ g_warning ("Error saving file pixbuf-async.png"); -+ goto out; -+ } -+ -+ g_message ("Saved pixbuf to pixbuf-async.png"); -+ -+ ret = 0; -+ -+out: -+ g_free (uri); -+ return ret; -+} -diff -up libgnomeui-2.21.91/libgnomeui/gnome-vfs-util.c.gio-thumbnail libgnomeui-2.21.91/libgnomeui/gnome-vfs-util.c ---- libgnomeui-2.21.91/libgnomeui/gnome-vfs-util.c.gio-thumbnail 2007-09-23 11:36:33.000000000 -0400 -+++ libgnomeui-2.21.91/libgnomeui/gnome-vfs-util.c 2008-02-19 12:55:23.000000000 -0500 -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - #include "gnome-vfs-util.h" - -@@ -48,7 +49,10 @@ - #define LOAD_BUFFER_SIZE 4096 - - struct GnomeGdkPixbufAsyncHandle { -- GnomeVFSAsyncHandle *vfs_handle; -+ GFile *file; -+ GFileInputStream *file_input_stream; -+ GCancellable *cancellable; -+ - GnomeGdkPixbufLoadCallback load_callback; - GnomeGdkPixbufDoneCallback done_callback; - gpointer callback_data; -@@ -65,18 +69,12 @@ typedef struct { - } SizePrepareContext; - - --static void file_opened_callback (GnomeVFSAsyncHandle *vfs_handle, -- GnomeVFSResult result, -- gpointer callback_data); --static void file_read_callback (GnomeVFSAsyncHandle *vfs_handle, -- GnomeVFSResult result, -- gpointer buffer, -- GnomeVFSFileSize bytes_requested, -- GnomeVFSFileSize bytes_read, -- gpointer callback_data); --static void file_closed_callback (GnomeVFSAsyncHandle *handle, -- GnomeVFSResult result, -- gpointer callback_data); -+static void input_stream_read_callback (GObject *source_object, -+ GAsyncResult *res, -+ gpointer user_data); -+static void input_stream_ready_callback (GObject *source_object, -+ GAsyncResult *res, -+ gpointer user_data); - static void load_done (GnomeGdkPixbufAsyncHandle *handle, - GnomeVFSResult result, - GdkPixbuf *pixbuf); -@@ -165,7 +163,6 @@ gnome_gdk_pixbuf_new_from_uri_at_scale ( - gboolean preserve_aspect_ratio) - { - GnomeVFSResult result; -- GnomeVFSHandle *handle; - char buffer[LOAD_BUFFER_SIZE]; - GnomeVFSFileSize bytes_read; - GdkPixbufLoader *loader; -@@ -174,13 +171,15 @@ gnome_gdk_pixbuf_new_from_uri_at_scale ( - GdkPixbufAnimationIter *iter; - gboolean has_frame; - SizePrepareContext info; -+ GFile *file; -+ GFileInputStream *file_input_stream; - - g_return_val_if_fail (uri != NULL, NULL); - -- result = gnome_vfs_open (&handle, -- uri, -- GNOME_VFS_OPEN_READ); -- if (result != GNOME_VFS_OK) { -+ file = g_file_new_for_uri (uri); -+ file_input_stream = g_file_read (file, NULL, NULL); -+ if (file_input_stream == NULL) { -+ g_object_unref (file); - return NULL; - } - -@@ -195,17 +194,22 @@ gnome_gdk_pixbuf_new_from_uri_at_scale ( - - has_frame = FALSE; - -+ result = GNOME_VFS_ERROR_GENERIC; - while (!has_frame) { -- result = gnome_vfs_read (handle, -- buffer, -- sizeof (buffer), -- &bytes_read); -- if (result != GNOME_VFS_OK) { -+ -+ bytes_read = g_input_stream_read (G_INPUT_STREAM (file_input_stream), -+ buffer, -+ sizeof (buffer), -+ NULL, -+ NULL); -+ if (bytes_read == -1) { - break; - } -+ result = GNOME_VFS_OK; - if (bytes_read == 0) { - break; - } -+ - if (!gdk_pixbuf_loader_write (loader, - (unsigned char *)buffer, - bytes_read, -@@ -226,13 +230,17 @@ gnome_gdk_pixbuf_new_from_uri_at_scale ( - - gdk_pixbuf_loader_close (loader, NULL); - -- if (result != GNOME_VFS_OK && result != GNOME_VFS_ERROR_EOF) { -+ if (result != GNOME_VFS_OK) { - g_object_unref (G_OBJECT (loader)); -- gnome_vfs_close (handle); -+ g_input_stream_close (G_INPUT_STREAM (file_input_stream), NULL, NULL); -+ g_object_unref (file_input_stream); -+ g_object_unref (file); - return NULL; - } - -- gnome_vfs_close (handle); -+ g_input_stream_close (G_INPUT_STREAM (file_input_stream), NULL, NULL); -+ g_object_unref (file_input_stream); -+ g_object_unref (file); - - pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); - if (pixbuf != NULL) { -@@ -260,101 +268,89 @@ gnome_gdk_pixbuf_new_from_uri_async (con - handle->done_callback = done_callback; - handle->callback_data = callback_data; - -- gnome_vfs_async_open (&handle->vfs_handle, -- uri, -- GNOME_VFS_OPEN_READ, -- GNOME_VFS_PRIORITY_DEFAULT, -- file_opened_callback, -- handle); -- -+ handle->file = g_file_new_for_uri (uri); -+ handle->cancellable = g_cancellable_new (); -+ g_file_read_async (handle->file, -+ G_PRIORITY_DEFAULT, -+ handle->cancellable, -+ input_stream_ready_callback, -+ handle); - return handle; - } - --static void --file_opened_callback (GnomeVFSAsyncHandle *vfs_handle, -- GnomeVFSResult result, -- gpointer callback_data) -+static void -+input_stream_ready_callback (GObject *source_object, -+ GAsyncResult *res, -+ gpointer user_data) - { -- GnomeGdkPixbufAsyncHandle *handle; -+ GError *error = NULL; -+ GnomeGdkPixbufAsyncHandle *handle = user_data; - -- handle = callback_data; -- g_assert (handle->vfs_handle == vfs_handle); -- -- if (result != GNOME_VFS_OK) { -- load_done (handle, result, NULL); -+ handle->file_input_stream = g_file_read_finish (G_FILE (source_object), -+ res, NULL); -+ if (handle->file_input_stream == NULL) { -+ /* TODO: could map the GError more precisely to the GnomeVFSError */ -+ load_done (handle, GNOME_VFS_ERROR_GENERIC, NULL); - return; - } - - handle->loader = gdk_pixbuf_loader_new (); - -- gnome_vfs_async_read (handle->vfs_handle, -- handle->buffer, -- sizeof (handle->buffer), -- file_read_callback, -- handle); -+ g_input_stream_read_async (G_INPUT_STREAM (handle->file_input_stream), -+ handle->buffer, -+ sizeof (handle->buffer), -+ G_PRIORITY_DEFAULT, -+ handle->cancellable, -+ input_stream_read_callback, -+ handle); - } - --static void --file_read_callback (GnomeVFSAsyncHandle *vfs_handle, -- GnomeVFSResult result, -- gpointer buffer, -- GnomeVFSFileSize bytes_requested, -- GnomeVFSFileSize bytes_read, -- gpointer callback_data) -+static void -+input_stream_read_callback (GObject *source_object, -+ GAsyncResult *res, -+ gpointer user_data) - { -- GnomeGdkPixbufAsyncHandle *handle; -- -- handle = callback_data; -- g_assert (handle->vfs_handle == vfs_handle); -- g_assert (handle->buffer == buffer); -+ GnomeGdkPixbufAsyncHandle *handle = user_data; -+ gssize bytes_read; -+ GnomeVFSResult result; - -- if (result == GNOME_VFS_OK && bytes_read != 0) { -+ bytes_read = g_input_stream_read_finish (G_INPUT_STREAM (source_object), -+ res, NULL); -+ if (bytes_read == -1) { -+ /* TODO: could map the GError more precisely */ -+ result = GNOME_VFS_ERROR_GENERIC; -+ } else if (bytes_read > 0) { - if (!gdk_pixbuf_loader_write (handle->loader, -- buffer, -+ (const guchar *) handle->buffer, - bytes_read, - NULL)) { - result = GNOME_VFS_ERROR_WRONG_FORMAT; -+ } else { -+ /* read more */ -+ g_input_stream_read_async (G_INPUT_STREAM (handle->file_input_stream), -+ handle->buffer, -+ sizeof (handle->buffer), -+ G_PRIORITY_DEFAULT, -+ handle->cancellable, -+ input_stream_read_callback, -+ handle); -+ return; - } -- gnome_vfs_async_read (handle->vfs_handle, -- handle->buffer, -- sizeof (handle->buffer), -- file_read_callback, -- handle); -- return; -+ } else { -+ /* EOF */ -+ result = GNOME_VFS_OK; - } - -- switch (result) { -- case GNOME_VFS_OK: -- if (bytes_read == 0) { -- GdkPixbuf *pixbuf; -- -- pixbuf = gdk_pixbuf_loader_get_pixbuf (handle->loader); -- load_done (handle, result, pixbuf); -- } -- break; -- case GNOME_VFS_ERROR_EOF: -- { -- GdkPixbuf *pixbuf; -- -- pixbuf = gdk_pixbuf_loader_get_pixbuf (handle->loader); -- load_done (handle, pixbuf ? GNOME_VFS_OK : result, pixbuf); -- } -- break; -- default: -+ if (result == GNOME_VFS_OK) { -+ GdkPixbuf *pixbuf; -+ pixbuf = gdk_pixbuf_loader_get_pixbuf (handle->loader); -+ load_done (handle, result, pixbuf); -+ } else { - load_done (handle, result, NULL); -- break; - } - } - - static void --file_closed_callback (GnomeVFSAsyncHandle *handle, -- GnomeVFSResult result, -- gpointer callback_data) --{ -- g_assert (callback_data == NULL); --} -- --static void - free_pixbuf_load_handle (GnomeGdkPixbufAsyncHandle *handle) - { - if (handle->done_callback) -@@ -363,6 +359,17 @@ free_pixbuf_load_handle (GnomeGdkPixbufA - gdk_pixbuf_loader_close (handle->loader, NULL); - g_object_unref (G_OBJECT (handle->loader)); - } -+ if (handle->file_input_stream != NULL) { -+ g_input_stream_close (G_INPUT_STREAM (handle->file_input_stream), NULL, NULL); -+ g_object_unref (handle->file_input_stream); -+ } -+ if (handle->file != NULL) { -+ g_object_unref (handle->file); -+ } -+ if (handle->cancellable != NULL) { -+ g_object_unref (handle->cancellable); -+ } -+ - g_free (handle); - } - -@@ -371,12 +378,6 @@ load_done (GnomeGdkPixbufAsyncHandle *ha - GnomeVFSResult result, - GdkPixbuf *pixbuf) - { -- if (handle->vfs_handle != NULL) { -- if (result != GNOME_VFS_OK) -- gnome_vfs_async_cancel (handle->vfs_handle); -- else -- gnome_vfs_async_close (handle->vfs_handle, file_closed_callback, NULL); -- } - (* handle->load_callback) (handle, result, pixbuf, handle->callback_data); - free_pixbuf_load_handle (handle); - } -@@ -387,8 +388,8 @@ gnome_gdk_pixbuf_new_from_uri_cancel (Gn - if (handle == NULL) { - return; - } -- if (handle->vfs_handle != NULL) { -- gnome_vfs_async_cancel (handle->vfs_handle); -+ if (handle->cancellable != NULL) { -+ g_cancellable_cancel (handle->cancellable); - } - free_pixbuf_load_handle (handle); - } -diff -up libgnomeui-2.21.91/configure.in.gio-thumbnail libgnomeui-2.21.91/configure.in ---- libgnomeui-2.21.91/configure.in.gio-thumbnail 2008-02-11 19:36:38.000000000 -0500 -+++ libgnomeui-2.21.91/configure.in 2008-02-19 12:36:06.000000000 -0500 -@@ -24,6 +24,7 @@ m4_define([libbonoboui_required_version] - m4_define([gconf_required_version], [1.1.11]) - m4_define([pango_required_version], [1.1.2]) - m4_define([glib_required_version], [2.15.0]) -+m4_define([gio_required_version], [2.15.0]) - m4_define([gtk_required_version], [2.11.5]) - m4_define([gnomevfs_required_version], [2.7.3]) - m4_define([libglade_required_version], [2.0.0]) -@@ -205,6 +206,7 @@ GNOMEUI_MODULES="dnl - gconf-2.0 >= gconf_required_version dnl - pango >= pango_required_version dnl - glib-2.0 >= glib_required_version -+ gio-2.0 >= gio_required_version - gnome-vfs-2.0 >= gnomevfs_required_version dnl - $gnome_keyring_requirement" - PKG_CHECK_MODULES(LIBGNOMEUI, [$GNOMEUI_MODULES]) diff --git a/gnomeui-obex-filechooser-crash.patch b/gnomeui-obex-filechooser-crash.patch deleted file mode 100644 index cf0f083..0000000 --- a/gnomeui-obex-filechooser-crash.patch +++ /dev/null @@ -1,31 +0,0 @@ -Index: file-chooser/gtkfilesystemgio.c -=================================================================== ---- file-chooser/gtkfilesystemgio.c (revision 5601) -+++ file-chooser/gtkfilesystemgio.c (working copy) -@@ -875,13 +875,24 @@ - GtkFileInfo *info; - gboolean is_folder; - GTimeVal mtime; -- const gchar *thumbnail_path; -+ const gchar *thumbnail_path, *display_name; - - info = gtk_file_info_new (); - is_folder = (g_file_info_get_file_type (file_info) == G_FILE_TYPE_DIRECTORY); - g_file_info_get_modification_time (file_info, &mtime); - -- gtk_file_info_set_display_name (info, g_file_info_get_display_name (file_info)); -+ display_name = g_file_info_get_display_name (file_info); -+ if (display_name == NULL) { -+ const gchar *name; -+ gchar *d_name; -+ -+ name = g_file_info_get_name (file_info); -+ d_name = g_filename_display_name (name); -+ gtk_file_info_set_display_name (info, d_name); -+ g_free (d_name); -+ } else { -+ gtk_file_info_set_display_name (info, display_name); -+ } - gtk_file_info_set_is_folder (info, is_folder); - gtk_file_info_set_is_hidden (info, g_file_info_get_is_hidden (file_info)); - gtk_file_info_set_mime_type (info, g_file_info_get_content_type (file_info)); diff --git a/libgnomeui-2.15.2-undead-code.patch b/libgnomeui-2.15.2-undead-code.patch deleted file mode 100644 index 02c0f59..0000000 --- a/libgnomeui-2.15.2-undead-code.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libgnomeui-2.15.2/libgnomeui/gnome-icon-list.c.undead-code 2006-07-26 00:30:18.000000000 -0400 -+++ libgnomeui-2.15.2/libgnomeui/gnome-icon-list.c 2006-07-26 00:31:38.000000000 -0400 -@@ -1082,6 +1082,7 @@ - priv = gil->_priv; - - g_array_append_val(priv->icon_list, icon); -+ priv->icons++; - - switch (priv->selection_mode) { - case GTK_SELECTION_BROWSE: diff --git a/libgnomeui-2.15.91-too-many-bug-buddies.patch b/libgnomeui-2.15.91-too-many-bug-buddies.patch deleted file mode 100644 index 93ef94b..0000000 --- a/libgnomeui-2.15.91-too-many-bug-buddies.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- libgnomeui-2.15.91/libgnomeui/gnome_segv.c.too_many_bug_buddies 2006-09-01 15:13:56.000000000 -0400 -+++ libgnomeui-2.15.91/libgnomeui/gnome_segv.c 2006-09-01 15:14:03.000000000 -0400 -@@ -104,6 +104,10 @@ - return 0; - } - -+ /* Give up if bug-buddy itself has aborted. */ -+ if (strcmp (appname, "bug-buddy") == 0) -+ return 0; -+ - bug_buddy_path = g_find_program_in_path ("bug-buddy"); - if (bug_buddy_path != NULL) - { diff --git a/libgnomeui-2.16.0-documentation.patch b/libgnomeui-2.16.0-documentation.patch deleted file mode 100644 index d521859..0000000 --- a/libgnomeui-2.16.0-documentation.patch +++ /dev/null @@ -1,169 +0,0 @@ ---- libgnomeui-2.16.0/doc/reference/libgnomeui-docs.sgml.documentation 2006-08-03 13:19:05.000000000 -0400 -+++ libgnomeui-2.16.0/doc/reference/libgnomeui-docs.sgml 2006-09-26 11:52:00.000000000 -0400 -@@ -58,10 +58,11 @@ - for libgnomeui &version; - - -- -+ - GNOME UI Library (libgnomeui) -- -- Initialization and session management -+ -+ -+ Initialization and Session Management - - This section includes functions and parameters used to initialise GNOME - applications which use libgnomeui and to -@@ -77,9 +78,10 @@ - - &libgnomeui-gnome-ui-init; - &libgnomeui-GnomeClient; -- -- -- Application management -+ -+ -+ -+ Application Management - - After initializing libgnomeui, a typical - application will need to create its main application window, possibly -@@ -90,15 +92,12 @@ - &libgnomeui-GnomeApp; - &libgnomeui-GnomeAppBar; - &libgnomeui-gnome-app-helper; -- &libgnomeui-gnome-window; -- &libgnomeui-gnome-window-icon; -- &libgnomeui-GnomeAbout; - &libgnomeui-GnomeMultiScreen; - &libgnomeui-GnomeAuthentication; - &libgnomeui-GnomePassword; -- &libgnomeui-gnome-popup-menu; -- -- -+ -+ -+ - Druids - - Druids (sometimes called Wizards on other systems) -@@ -120,31 +119,21 @@ - &libgnomeui-GnomeDruidPage; - &libgnomeui-GnomeDruidPageEdge; - &libgnomeui-GnomeDruidPageStandard; -- -- -+ -+ -+ - Miscellaneous Widgets -- &libgnomeui-GnomeColorPicker; - &libgnomeui-GnomeDateEdit; -- &libgnomeui-gnome-dialog-util; -- &libgnomeui-GnomeEntry; -- &libgnomeui-GnomeFileEntry; -- &libgnomeui-GnomeFontPicker; - &libgnomeui-GnomeHRef; -- &libgnomeui-GnomeIconItem; - &libgnomeui-GnomeIce; - &libgnomeui-GnomeIconEntry; -- &libgnomeui-GnomeIconList; - &libgnomeui-GnomeIconLookup; -- &libgnomeui-GnomeIconTheme; - &libgnomeui-GnomeIconSelection; -- &libgnomeui-GnomeThemeFile; - &libgnomeui-GnomeThumbnail; -- &libgnomeui-GnomePixmap; -- &libgnomeui-GnomePixmapEntry; -- &libgnomeui-GnomeScores; -- -- -- Miscellaneous utility functions and macros -+ -+ -+ -+ Miscellaneous Utility Functions and Macros - - This section collects together a number of useful auxillary functions - that do not really fit into any other place in the hierarchy. These -@@ -156,21 +145,71 @@ - &libgnomeui-gnome-types; - &libgnomeui-gnome-uidefs; - &libgnomeui-gnome-vfs-util; -- -- -- Deprecated modules -+ -+ -+ -+ Deprecated Modules -+ &libgnomeui-GnomeAbout; - &libgnomeui-gnome-app-util; -+ &libgnomeui-GnomeColorPicker; -+ &libgnomeui-GnomeDialog; -+ &libgnomeui-gnome-dialog-util; -+ &libgnomeui-GnomeEntry; -+ &libgnomeui-GnomeFileEntry; -+ &libgnomeui-GnomeFontPicker; -+ &libgnomeui-GnomeIconList; -+ &libgnomeui-GnomeIconItem; -+ &libgnomeui-GnomeIconTheme; - &libgnomeui-GnomeMDI; - &libgnomeui-GnomeMDIChild; - &libgnomeui-GnomeMDIGenericChild; - &libgnomeui-gnome-mdi-session; -- &libgnomeui-GnomeDialog; - &libgnomeui-GnomeMessageBox; -+ &libgnomeui-GnomePixmap; -+ &libgnomeui-GnomePixmapEntry; -+ &libgnomeui-gnome-popup-menu; - &libgnomeui-GnomePropertyBox; -- -- -+ &libgnomeui-GnomeScores; -+ &libgnomeui-GnomeThemeFile; -+ &libgnomeui-gnome-window; -+ &libgnomeui-gnome-window-icon; -+ -+ -+ - Object Hierarchy - &libgnomeui-object-index; -- -- -+ -+ -+ -+ -+ Index -+ -+ -+ Index of deprecated symbols -+ -+ -+ Index of new symbols in 2.2 -+ -+ -+ Index of new symbols in 2.4 -+ -+ -+ Index of new symbols in 2.6 -+ -+ -+ Index of new symbols in 2.8 -+ -+ -+ Index of new symbols in 2.10 -+ -+ -+ Index of new symbols in 2.12 -+ -+ -+ Index of new symbols in 2.14 -+ -+ -+ Index of new symbols in 2.16 -+ -+ - diff --git a/libgnomeui-2.16.0-filechooser-destroy-deadlock.patch b/libgnomeui-2.16.0-filechooser-destroy-deadlock.patch deleted file mode 100644 index 5d92d9b..0000000 --- a/libgnomeui-2.16.0-filechooser-destroy-deadlock.patch +++ /dev/null @@ -1,52 +0,0 @@ ---- libgnomeui-2.16.0/file-chooser/gtkfilesystemgnomevfs.c.destroy-deadlock 2006-09-04 10:10:02.000000000 -0400 -+++ libgnomeui-2.16.0/file-chooser/gtkfilesystemgnomevfs.c 2006-09-11 23:18:06.000000000 -0400 -@@ -367,6 +367,7 @@ - gpointer user_data); - - static gboolean execute_vfs_callbacks_idle (gpointer data); -+static void execute_vfs_callbacks (gpointer data); - - static gchar *make_child_uri (const gchar *base_uri, - const gchar *child_name, -@@ -612,7 +613,7 @@ - system_vfs->execute_vfs_callbacks_idle_id = 0; - - /* call pending callbacks */ -- execute_vfs_callbacks_idle (system_vfs); -+ execute_vfs_callbacks (system_vfs); - } - - /* cancel pending VFS operations */ -@@ -3538,15 +3539,13 @@ - } - - /* some code for making callback calls from idle */ --static gboolean --execute_vfs_callbacks_idle (gpointer data) -+static void -+execute_vfs_callbacks (gpointer data) - { - GSList *l; - gboolean unref_file_system = TRUE; - GtkFileSystemGnomeVFS *system_vfs = GTK_FILE_SYSTEM_GNOME_VFS (data); - -- GDK_THREADS_ENTER (); -- - if (!system_vfs->execute_vfs_callbacks_idle_id) - unref_file_system = FALSE; - else -@@ -3568,6 +3567,14 @@ - g_object_unref (system_vfs); - - system_vfs->execute_vfs_callbacks_idle_id = 0; -+} -+ -+static gboolean -+execute_vfs_callbacks_idle (gpointer data) -+{ -+ GDK_THREADS_ENTER (); -+ -+ execute_vfs_callbacks (data); - - GDK_THREADS_LEAVE (); - diff --git a/libgnomeui-2.18.1-user-dirs.patch b/libgnomeui-2.18.1-user-dirs.patch deleted file mode 100644 index 1259d25..0000000 --- a/libgnomeui-2.18.1-user-dirs.patch +++ /dev/null @@ -1,144 +0,0 @@ ---- libgnomeui-2.18.1/file-chooser/gtkfilesystemgnomevfs.c.user-dirs 2007-03-14 01:25:09.000000000 +0100 -+++ libgnomeui-2.18.1/file-chooser/gtkfilesystemgnomevfs.c 2007-04-10 16:53:43.000000000 +0200 -@@ -491,6 +491,132 @@ - #endif - } - -+ -+/* copied from xdg-user-dir-lookup.c */ -+static char * -+xdg_user_dir_lookup (const char *type) -+{ -+ FILE *file; -+ char *home_dir, *config_home, *config_file; -+ char buffer[512]; -+ char *user_dir; -+ char *p, *d; -+ int len; -+ int relative; -+ -+ home_dir = getenv ("HOME"); -+ -+ if (home_dir == NULL) -+ return strdup ("/tmp"); -+ -+ config_home = getenv ("XDG_CONFIG_HOME"); -+ if (config_home == NULL || config_home[0] == 0) -+ { -+ config_file = malloc (strlen (home_dir) + strlen ("/.config/user-dirs.dirs") + 1); -+ strcpy (config_file, home_dir); -+ strcat (config_file, "/.config/user-dirs.dirs"); -+ } -+ else -+ { -+ config_file = malloc (strlen (config_home) + strlen ("/user-dirs.dirs") + 1); -+ strcpy (config_file, config_home); -+ strcat (config_file, "/user-dirs.dirs"); -+ } -+ -+ file = fopen (config_file, "r"); -+ -+ free (config_file); -+ if (file == NULL) -+ goto error; -+ -+ user_dir = NULL; -+ while (fgets (buffer, sizeof (buffer), file)) -+ { -+ /* Remove newline at end */ -+ len = strlen (buffer); -+ if (len > 0 && buffer[len-1] == '\n') -+ buffer[len-1] = 0; -+ -+ -+ p = buffer; -+ while (*p == ' ' || *p == '\t') -+ p++; -+ -+ if (strncmp (p, "XDG_", 4) != 0) -+ continue; -+ p += 4; -+ if (strncmp (p, type, strlen (type)) != 0) -+ continue; -+ p += strlen (type); -+ if (strncmp (p, "_DIR", 4) != 0) -+ continue; -+ p += 4; -+ -+ while (*p == ' ' || *p == '\t') -+ p++; -+ -+ if (*p != '=') -+ continue; -+ p++; -+ -+ while (*p == ' ' || *p == '\t') -+ p++; -+ -+ if (*p != '"') -+ continue; -+ p++; -+ -+ relative = 0; -+ if (strncmp (p, "$HOME/", 6) == 0) -+ { -+ p += 6; -+ relative = 1; -+ } -+ else if (*p != '/') -+ continue; -+ -+ if (relative) -+ { -+ user_dir = malloc (strlen (home_dir) + 1 + strlen (p) + 1); -+ strcpy (user_dir, home_dir); -+ strcat (user_dir, "/"); -+ } -+ else -+ { -+ user_dir = malloc (strlen (p) + 1); -+ *user_dir = 0; -+ } -+ -+ d = user_dir + strlen (user_dir); -+ while (*p && *p != '"') -+ { -+ if ((*p == '\\') && (*(p+1) != 0)) -+ p++; -+ *d++ = *p++; -+ } -+ *d = 0; -+ } -+ fclose (file); -+ -+ -+ -+ if (user_dir) -+ return user_dir; -+ -+ error: -+ /* Special case desktop for historical compatibility */ -+ if (strcmp (type, "DESKTOP") == 0) -+ { -+ user_dir = malloc (strlen (home_dir) + strlen ("/Desktop") + 1); -+ strcpy (user_dir, home_dir); -+ strcat (user_dir, "/Desktop"); -+ return user_dir; -+ } -+ else -+ return strdup (home_dir); -+} -+ -+ - static void - gtk_file_system_gnome_vfs_init (GtkFileSystemGnomeVFS *system_vfs) - { -@@ -502,7 +628,7 @@ - #ifdef HAVE_BIND_TEXTDOMAIN_CODESET - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - #endif -- name = g_build_filename (g_get_home_dir (), "Desktop", NULL); -+ name = xdg_user_dir_lookup ("DESKTOP"); - system_vfs->desktop_uri = (char *)gtk_file_system_filename_to_path (GTK_FILE_SYSTEM (system_vfs), - name); - g_free (name); diff --git a/libgnomeui-gio-fix-threading.patch b/libgnomeui-gio-fix-threading.patch deleted file mode 100644 index 097ed6a..0000000 --- a/libgnomeui-gio-fix-threading.patch +++ /dev/null @@ -1,121 +0,0 @@ -Index: gtkfilesystemgio.c -=================================================================== ---- gtkfilesystemgio.c (revision 5575) -+++ gtkfilesystemgio.c (working copy) -@@ -396,7 +396,9 @@ - GtkFileSystemGio *impl; - - impl = GTK_FILE_SYSTEM_GIO (user_data); -+ gdk_threads_enter (); - g_signal_emit_by_name (impl, "volumes-changed"); -+ gdk_threads_leave (); - } - - static gchar * -@@ -654,7 +656,9 @@ - NULL, NULL, NULL); - - folder->finished_loading = TRUE; -+ gdk_threads_enter (); - g_signal_emit_by_name (folder, "finished-loading", 0); -+ gdk_threads_leave (); - g_object_unref (folder); - return; - } -@@ -678,7 +682,9 @@ - enumerator_files_callback, - folder); - -+ gdk_threads_enter (); - g_signal_emit_by_name (folder, "files-added", added_files); -+ gdk_threads_leave (); - g_slist_foreach (added_files, (GFunc) g_free, NULL); - g_slist_free (added_files); - -@@ -701,10 +707,14 @@ - switch (event) - { - case G_FILE_MONITOR_EVENT_CREATED: -+ gdk_threads_enter (); - g_signal_emit_by_name (folder, "files-added", files); -+ gdk_threads_leave (); - break; - case G_FILE_MONITOR_EVENT_DELETED: -+ gdk_threads_enter (); - g_signal_emit_by_name (folder, "files-removed", files); -+ gdk_threads_leave (); - break; - default: - break; -@@ -754,9 +764,11 @@ - g_object_unref (enumerator); - } - -+ gdk_threads_enter (); - ((GtkFileSystemGetFolderCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - GTK_FILE_FOLDER (folder), - error, handle->data); -+ gdk_threads_leave (); - } - - static GtkFileSystemHandle * -@@ -925,8 +937,10 @@ - } - else - { -+ gdk_threads_enter (); - ((GtkFileSystemGetInfoCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - NULL, error, handle->data); -+ gdk_threads_leave (); - } - } - -@@ -968,8 +982,10 @@ - return; - } - -+ gdk_threads_enter (); - ((GtkFileSystemGetInfoCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - info, error, handle->data); -+ gdk_threads_leave (); - - if (info) - gtk_file_info_free (info); -@@ -1028,8 +1044,11 @@ - - g_file_make_directory (file, handle->cancellable, &error); - -+ gdk_threads_enter (); - ((GtkFileSystemCreateFolderCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - idle_data->path, error, handle->data); -+ gdk_threads_leave (); -+ - g_object_unref (file); - gtk_file_path_free (idle_data->path); - g_slice_free (CreateFolderData, idle_data); -@@ -1184,9 +1203,12 @@ - - g_volume_mount_finish (G_VOLUME (source_object), res, &error); - -+ gdk_threads_enter (); - ((GtkFileSystemVolumeMountCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - (GtkFileSystemVolume *) source_object, - error, handle->data); -+ gdk_threads_leave (); -+ - if (error) - g_error_free (error); - } -@@ -1203,9 +1225,12 @@ - - g_drive_poll_for_media_finish (G_DRIVE (source_object), res, &error); - -+ gdk_threads_enter (); - ((GtkFileSystemVolumeMountCallback) handle->callback) (GTK_FILE_SYSTEM_HANDLE (handle), - (GtkFileSystemVolume *) source_object, - error, handle->data); -+ gdk_threads_leave (); -+ - if (error) - g_error_free (error); - } diff --git a/libgnomeui.spec b/libgnomeui.spec index b9cea92..5090f9e 100644 --- a/libgnomeui.spec +++ b/libgnomeui.spec @@ -17,8 +17,8 @@ Summary: GNOME base GUI library Name: libgnomeui -Version: 2.23.4 -Release: 2%{?dist} +Version: 2.23.90 +Release: 1%{?dist} URL: http://www.gnome.org Source0: http://download.gnome.org/sources/libgnomeui/2.23/%{name}-%{version}.tar.bz2 Patch0: libgnomeui-2.23.4-disable-event-sounds.patch @@ -148,6 +148,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gtk-doc/html/libgnomeui %changelog +* Fri Aug 22 2008 Matthias Clasen - 2.23.90-1 +- Update to 2.23.90 + * Thu Aug 14 2008 Lennart Poettering - 2.23.4-2 - Disable event sounds because we do them now with libcanberra diff --git a/sources b/sources index ac3ce48..2f0aa42 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dedaaa47340fdacd91286dacdd4ab01b libgnomeui-2.23.4.tar.bz2 +310ede3d7fd6dbdb0f53bfa7af46f09a libgnomeui-2.23.90.tar.bz2 diff --git a/standard.patch b/standard.patch deleted file mode 100644 index 7cd658a..0000000 --- a/standard.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/src/gtkfilesystemgvfs.c b/src/gtkfilesystemgvfs.c -index 2a37194..15787c1 100644 ---- a/src/gtkfilesystemgvfs.c -+++ b/src/gtkfilesystemgvfs.c -@@ -760,7 +760,7 @@ gtk_file_system_gvfs_get_folder (GtkFileSystem *file_system, - handle->callback = callback; - handle->data = data; - -- g_file_enumerate_children_async (file, "std,time,thumbnail::*", 0, 0, -+ g_file_enumerate_children_async (file, "standard,time,thumbnail::*", 0, 0, - handle->cancellable, - enumerate_children_callback, - handle); -@@ -889,7 +889,7 @@ gtk_file_system_gvfs_get_info (GtkFileSystem *file_system, - handle->callback = callback; - handle->data = data; - -- g_file_query_info_async (file, "std,time,thumbnail::*", 0, 0, -+ g_file_query_info_async (file, "standard,time,thumbnail::*", 0, 0, - handle->cancellable, - query_info_callback, - handle);