]> git.pld-linux.org Git - packages/gnome-vfs2.git/commitdiff
- update, fixes.
authorMarcin Krzyżanowski <marcin.krzyzanowski@hakore.com>
Sun, 18 Apr 2004 10:17:22 +0000 (10:17 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gnome-vfs2-mime.patch -> 1.2

gnome-vfs2-mime.patch

index 2b0179f89c6d00d17c56de208e911e33ca8fb787..ea8956fa4bf5beab7747b83097db1c7e23d599b5 100644 (file)
@@ -1,35 +1,71 @@
 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
 --- gnome-vfs-2.6.0.orig/libgnomevfs/gnome-vfs-mime-info.c     2003-10-17 17:11:22.000000000 +0200
-+++ gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-mime-info.c  2004-04-17 20:34:28.000000000 +0200
-@@ -258,6 +258,8 @@
++++ gnome-vfs-2.6.0/libgnomevfs/gnome-vfs-mime-info.c  2004-04-18 12:02:05.000000000 +0200
+@@ -253,11 +253,35 @@
+       return -1;
+ }
++/*
++static GList *
++strsplit_to_list (const char *str, const char *delim, int max)
++{
++      char **strv;
++      GList *retval;
++      int i;
++
++      strv = g_strsplit ((str == NULL ? "" : str), delim, max)
++
++      retval = NULL;
++
++      for (i = 0; strv[i] != NULL; i++) {
++              retval = g_list_prepend (retval, strv[i]);
++      }
++
++      retval = g_list_reverse (retval);
++      
++      g_free (strv);
++
++      return retval;
++}
++*/
+ static void
  context_add_key (GnomeMimeContext *context, char *key, char *lang, char *value)
  {
        int lang_level;
-+      gpointer prevtmp = NULL;
-+      gchar *newval = NULL;
++      gchar *prevtmp = NULL;
  
        lang_level = language_level (lang);
        /* wrong language completely */
-@@ -270,9 +272,19 @@
+@@ -270,9 +294,28 @@
                return;
        }
  
 -      /*      fprintf (stderr, "Add key: '%s' '%s' '%s' %d\n", key, lang, value, lang_level);*/
 -
 -      g_hash_table_replace (context->keys, g_strdup (key), g_strdup (value));
-+/*    g_print ("Add key: '%s' '%s' '%s' %d\n", key, lang, value, lang_level); */
-+      
-+      prevtmp = g_hash_table_lookup(context->keys,g_strdup (key));
++      prevtmp = (gchar *)g_hash_table_lookup(context->keys,key);
 +      
-+      if ((prevtmp != NULL) && (strstr(key,"list_application_ids") != NULL) && (strstr(prevtmp,value) == NULL)) {
-+              newval = g_strconcat(prevtmp,",",value,NULL);
++      if ((prevtmp != NULL) && (value != NULL) && (key != NULL) && (strstr(key,"_list_") != NULL)) {
++              gint i = 0;
++              GList *vallist = NULL;
++              gchar **strv = g_strsplit ((prevtmp == NULL ? "" : prevtmp), ",", 0);
++              
++              for (i = 0; strv[i] != NULL; i++) {
++                      vallist = g_list_prepend (vallist, strv[i]);
++              }
++              
++              /* remove repeated entries */
++              if (!g_list_find_custom(vallist,value,(GCompareFunc)strcmp)) {
++                  g_hash_table_replace (context->keys, g_strdup (key), g_strconcat(prevtmp,",",value,NULL));
++              }
++              
++              g_list_free(vallist);
++              g_strfreev(strv);
++              
 +      } else {
-+              newval = g_strdup(value);
++              g_hash_table_replace (context->keys, g_strdup (key), g_strdup(value));
 +      }
-+      
-+/*    g_print("%s %s\n",key,newval); */
-+      
-+      g_hash_table_replace (context->keys, g_strdup (key), newval);
  
        previous_key_lang_level = lang_level;
  }
This page took 0.080723 seconds and 4 git commands to generate.