> Is this a bug in the _all_applications function (which is what galeon is > using), or is the documentation incorrect when it says: > > "Return an alphabetically sorted list of GnomeVFSMimeApplication data > structures representing all applications in the MIME database registered > to handle files of MIME type mime_type (and supertypes)." > Yeah, I think that's a bug in gnome-vfs, this part of the code isn't really easy to get right. I wrote the attached patch yesterday, I believe that should fix that. Can you test it ? You'll have to add new handlers after applying the patch for it to (hopefully) work. Christophe
Index: libgnomevfs/gnome-vfs-mime-handlers.c =================================================================== RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-mime-handlers.c,v retrieving revision 1.99 diff -u -r1.99 gnome-vfs-mime-handlers.c --- libgnomevfs/gnome-vfs-mime-handlers.c 24 Apr 2003 17:51:53 -0000 1.99 +++ libgnomevfs/gnome-vfs-mime-handlers.c 13 May 2003 07:42:59 -0000 @@ -1056,6 +1059,7 @@ GList *short_list_addition_list; GList *short_list_removal_list; GnomeVFSResult result; + GList *it; /* Get base list. */ short_list_id_list = comma_separated_str_to_str_list @@ -1066,6 +1070,18 @@ short_list_removal_list = str_list_difference (short_list_id_list, application_ids); addition_string = str_list_to_comma_separated_str (short_list_addition_list); removal_string = str_list_to_comma_separated_str (short_list_removal_list); + + /* Make sure the newly added app_ids are already associated to this + * mime type in the application registry + */ + for (it = short_list_addition_list; it != NULL; it = it->next) { + /* add_mime_type won't do anything if mime_type is already + * associated with it->data + */ + gnome_vfs_application_registry_add_mime_type (it->data, mime_type); + } + gnome_vfs_application_registry_sync (); + g_list_free_deep (short_list_id_list); g_list_free (short_list_addition_list); g_list_free (short_list_removal_list);
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=