summaryrefslogtreecommitdiff
path: root/packages/gpe-contacts/files/handle-import-categories.patch
blob: f64b1f6bbff4098be0a324fbd27f1ff9facdfecc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
diff -r abc014466432 import-vcard.c
--- a/import-vcard.c	Mon Jan 21 01:55:53 2008 +0200
+++ b/import-vcard.c	Mon Jan 21 02:31:28 2008 +0200
@@ -77,6 +77,35 @@ do_import_vcard (MIMEDirVCard *card)
     {
       gpe_tag_pair *t = i->data;
 
+      if (!strcasecmp(t->tag, "CATEGORY"))
+        {
+	  char *p, *e;
+	  int cat_id;
+	  
+          for (p = t->value; p; p = e)
+	    {
+              while (*p == ' ')
+	        p++;
+	      e = strchr(p, ',');
+	      if (e)
+	        *e++ = 0;
+	      cat_id = gpe_pim_category_id(p);
+	      if (!cat_id)
+	        {
+	          if (!gpe_pim_category_new (p, &cat_id))
+	            {
+                      gpe_error_box ("Unable to create category for imported item");
+                      sqlite_close (db);
+                      return -2;
+		    }
+	        }
+              sqlite_exec_printf (db, "insert into contacts values ('%d', 'CATEGORY', '%d')", NULL, NULL, NULL,
+                          id, cat_id);
+	    }
+	    
+	}
+      
+
       sqlite_exec_printf (db, "insert into contacts values ('%d', '%q', '%q')", NULL, NULL, NULL,
                           id, t->tag, t->value);