]> git.pld-linux.org Git - packages/gnome-vfs2.git/blob - gnome-vfs2-unaliase_mimetype.patch
- bugfixes for smb and ftp methods
[packages/gnome-vfs2.git] / gnome-vfs2-unaliase_mimetype.patch
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
8 @@ -56,6 +56,8 @@
9         guint should_ping_mime_monitor : 1;
10  } GnomeVFSMimeInfoCache;
11  
12 +G_LOCK_EXTERN (gnome_vfs_mime_mutex);
13 +
14  extern void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor); 
15  extern void _gnome_vfs_mime_info_cache_init (void);
16  
17 @@ -180,6 +182,8 @@
18         if (load_error != NULL)
19                 goto error;
20  
21 +       G_LOCK (gnome_vfs_mime_mutex);
22 +
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,
26 @@ -195,12 +199,14 @@
27                 }
28  
29                 gnome_vfs_mime_info_cache_dir_add_desktop_entries (dir,
30 -                                                                  mime_types[i],
31 +                                                                  xdg_mime_unalias_mime_type (mime_types[i]),
32                                                                    desktop_file_ids);
33  
34                 g_strfreev (desktop_file_ids);
35         }
36  
37 +       G_UNLOCK (gnome_vfs_mime_mutex);
38 +
39         g_strfreev (mime_types);
40         g_key_file_free (key_file);
41  
42 @@ -270,6 +276,8 @@
43         if (load_error != NULL)
44                 goto error;
45  
46 +       G_LOCK (gnome_vfs_mime_mutex);
47 +
48         for (i = 0; mime_types[i] != NULL; i++) {
49                 desktop_file_ids = g_key_file_get_string_list (key_file,
50                                                                "Default Applications",
51 @@ -283,10 +291,12 @@
52                 }
53  
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])),
57                                       desktop_file_ids);
58         }
59  
60 +       G_UNLOCK (gnome_vfs_mime_mutex);
61 +
62         g_strfreev (mime_types);
63         g_key_file_free (key_file);
64  
65 @@ -682,6 +692,8 @@
66         GList *l = NULL;
67         int i;
68  
69 +       G_LOCK (gnome_vfs_mime_mutex);
70 +       
71         umime = xdg_mime_unalias_mime_type (mime_type);
72         l = g_list_prepend (l, g_strdup (umime));
73  
74 @@ -690,6 +702,8 @@
75         for (i = 0; parents && parents[i] != NULL; i++) {
76                 l = g_list_prepend (l, g_strdup (parents[i]));
77         }
78 +       
79 +       G_UNLOCK (gnome_vfs_mime_mutex);
80  
81         return g_list_reverse (l);
82  }
This page took 0.028696 seconds and 3 git commands to generate.