]> git.pld-linux.org Git - packages/gnome-vfs2.git/blobdiff - gnome-vfs2-unaliase_mimetype.patch
This commit was manufactured by cvs2git to create branch 'AC-branch'.
[packages/gnome-vfs2.git] / gnome-vfs2-unaliase_mimetype.patch
diff --git a/gnome-vfs2-unaliase_mimetype.patch b/gnome-vfs2-unaliase_mimetype.patch
new file mode 100644 (file)
index 0000000..8a9cc46
--- /dev/null
@@ -0,0 +1,82 @@
+===================================================================
+RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-mime-info-cache.c,v
+retrieving revision 1.21
+retrieving revision 1.21.2.2
+diff -u -r1.21 -r1.21.2.2
+--- gnome-vfs-mime-info-cache.c        2006/03/02 17:04:31     1.21
++++ gnome-vfs/libgnomevfs/gnome-vfs-mime-info-cache.c  2006/05/14 10:07:31     1.21.2.2
+@@ -56,6 +56,8 @@
+       guint should_ping_mime_monitor : 1;
+ } GnomeVFSMimeInfoCache;
++G_LOCK_EXTERN (gnome_vfs_mime_mutex);
++
+ extern void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor); 
+ extern void _gnome_vfs_mime_info_cache_init (void);
+@@ -180,6 +182,8 @@
+       if (load_error != NULL)
+               goto error;
++      G_LOCK (gnome_vfs_mime_mutex);
++
+       for (i = 0; mime_types[i] != NULL; i++) {
+               gchar **desktop_file_ids;
+               desktop_file_ids = g_key_file_get_string_list (key_file,
+@@ -195,12 +199,14 @@
+               }
+               gnome_vfs_mime_info_cache_dir_add_desktop_entries (dir,
+-                                                                 mime_types[i],
++                                                                 xdg_mime_unalias_mime_type (mime_types[i]),
+                                                                  desktop_file_ids);
+               g_strfreev (desktop_file_ids);
+       }
++      G_UNLOCK (gnome_vfs_mime_mutex);
++
+       g_strfreev (mime_types);
+       g_key_file_free (key_file);
+@@ -270,6 +276,8 @@
+       if (load_error != NULL)
+               goto error;
++      G_LOCK (gnome_vfs_mime_mutex);
++
+       for (i = 0; mime_types[i] != NULL; i++) {
+               desktop_file_ids = g_key_file_get_string_list (key_file,
+                                                              "Default Applications",
+@@ -283,10 +291,12 @@
+               }
+               g_hash_table_replace (dir->defaults_list_map,
+-                                    g_strdup (mime_types[i]),
++                                    g_strdup (xdg_mime_unalias_mime_type (mime_types[i])),
+                                     desktop_file_ids);
+       }
++      G_UNLOCK (gnome_vfs_mime_mutex);
++
+       g_strfreev (mime_types);
+       g_key_file_free (key_file);
+@@ -682,6 +692,8 @@
+       GList *l = NULL;
+       int i;
++      G_LOCK (gnome_vfs_mime_mutex);
++      
+       umime = xdg_mime_unalias_mime_type (mime_type);
+       l = g_list_prepend (l, g_strdup (umime));
+@@ -690,6 +702,8 @@
+       for (i = 0; parents && parents[i] != NULL; i++) {
+               l = g_list_prepend (l, g_strdup (parents[i]));
+       }
++      
++      G_UNLOCK (gnome_vfs_mime_mutex);
+       return g_list_reverse (l);
+ }
This page took 0.038361 seconds and 4 git commands to generate.