1 ===================================================================
2 RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-mime-info-cache.c,v
3 retrieving revision 1.21
4 retrieving revision 1.21.2.2
5 diff -u -r1.21 -r1.21.2.2
6 --- gnome-vfs-mime-info-cache.c 2006/03/02 17:04:31 1.21
7 +++ gnome-vfs/libgnomevfs/gnome-vfs-mime-info-cache.c 2006/05/14 10:07:31 1.21.2.2
9 guint should_ping_mime_monitor : 1;
10 } GnomeVFSMimeInfoCache;
12 +G_LOCK_EXTERN (gnome_vfs_mime_mutex);
14 extern void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor);
15 extern void _gnome_vfs_mime_info_cache_init (void);
18 if (load_error != NULL)
21 + G_LOCK (gnome_vfs_mime_mutex);
23 for (i = 0; mime_types[i] != NULL; i++) {
24 gchar **desktop_file_ids;
25 desktop_file_ids = g_key_file_get_string_list (key_file,
29 gnome_vfs_mime_info_cache_dir_add_desktop_entries (dir,
31 + xdg_mime_unalias_mime_type (mime_types[i]),
34 g_strfreev (desktop_file_ids);
37 + G_UNLOCK (gnome_vfs_mime_mutex);
39 g_strfreev (mime_types);
40 g_key_file_free (key_file);
43 if (load_error != NULL)
46 + G_LOCK (gnome_vfs_mime_mutex);
48 for (i = 0; mime_types[i] != NULL; i++) {
49 desktop_file_ids = g_key_file_get_string_list (key_file,
50 "Default Applications",
54 g_hash_table_replace (dir->defaults_list_map,
55 - g_strdup (mime_types[i]),
56 + g_strdup (xdg_mime_unalias_mime_type (mime_types[i])),
60 + G_UNLOCK (gnome_vfs_mime_mutex);
62 g_strfreev (mime_types);
63 g_key_file_free (key_file);
69 + G_LOCK (gnome_vfs_mime_mutex);
71 umime = xdg_mime_unalias_mime_type (mime_type);
72 l = g_list_prepend (l, g_strdup (umime));
75 for (i = 0; parents && parents[i] != NULL; i++) {
76 l = g_list_prepend (l, g_strdup (parents[i]));
79 + G_UNLOCK (gnome_vfs_mime_mutex);
81 return g_list_reverse (l);