]> git.pld-linux.org Git - packages/gnome-vfs2.git/blob - gnome-vfs2-mime.patch
- up to version 2.6.2
[packages/gnome-vfs2.git] / gnome-vfs2-mime.patch
1 diff -Nuard gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-mime-info.c gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-mime-info.c
2 --- gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-mime-info.c      2003-10-17 17:11:22.000000000 +0200
3 +++ gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-mime-info.c   2004-04-18 12:51:47.074282208 +0200
4 @@ -253,11 +253,11 @@
5         return -1;
6  }
7  
8 -
9  static void
10  context_add_key (GnomeMimeContext *context, char *key, char *lang, char *value)
11  {
12         int lang_level;
13 +       gchar *prevtmp = NULL;
14  
15         lang_level = language_level (lang);
16         /* wrong language completely */
17 @@ -270,9 +270,28 @@
18                 return;
19         }
20  
21 -       /*      fprintf (stderr, "Add key: '%s' '%s' '%s' %d\n", key, lang, value, lang_level);*/
22 -
23 -       g_hash_table_replace (context->keys, g_strdup (key), g_strdup (value));
24 +       prevtmp = (gchar *)g_hash_table_lookup(context->keys,key);
25 +       
26 +       if ((prevtmp != NULL) && (value != NULL) && (key != NULL) && (strstr(key,"_list_") != NULL)) {
27 +               gint i = 0;
28 +               GList *vallist = NULL;
29 +               gchar **strv = g_strsplit ((prevtmp == NULL ? "" : prevtmp), ",", 0);
30 +               
31 +               for (i = 0; strv[i] != NULL; i++) {
32 +                       vallist = g_list_prepend (vallist, strv[i]);
33 +               }
34 +               
35 +               /* remove repeated entries */
36 +               if (!g_list_find_custom(vallist,value,(GCompareFunc)strcmp)) {
37 +                   g_hash_table_replace (context->keys, g_strdup (key), g_strconcat(prevtmp,",",value,NULL));
38 +               }
39 +               
40 +               g_list_free(vallist);
41 +               g_strfreev(strv);
42 +               
43 +       } else {
44 +               g_hash_table_replace (context->keys, g_strdup (key), g_strdup(value));
45 +       }
46  
47         previous_key_lang_level = lang_level;
48  }
This page took 0.047589 seconds and 3 git commands to generate.