summaryrefslogtreecommitdiff
path: root/packages/gpe-contacts/files
diff options
context:
space:
mode:
authorPaul Sokolovsky <pmiscml@gmail.com>2008-01-21 02:00:12 +0000
committerPaul Sokolovsky <pmiscml@gmail.com>2008-01-21 02:00:12 +0000
commit08895188aa65145deff6c491c5129ec416d3e6aa (patch)
treec97c0fce0718a11a39733c5bfa973cf0b0935b7c /packages/gpe-contacts/files
parenta4ee61a679f06dde608ce54de4aaae00086125ac (diff)
gpe-contacts svn: Implement proper handling of VCARD categories.
* VCARD's CATEGORIES field used to be stuffed into contact's CATEGORY field as is, which is not what gpe-contacts expect. * So now, try to look up each of VCARD's categories (adding new accessor to libgpepimc was required), if it doesn't exist, create it, and finally put category ID into contact's CATEGORY field.
Diffstat (limited to 'packages/gpe-contacts/files')
-rw-r--r--packages/gpe-contacts/files/.mtn2git_empty0
-rw-r--r--packages/gpe-contacts/files/handle-import-categories.patch39
2 files changed, 39 insertions, 0 deletions
diff --git a/packages/gpe-contacts/files/.mtn2git_empty b/packages/gpe-contacts/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpe-contacts/files/.mtn2git_empty
diff --git a/packages/gpe-contacts/files/handle-import-categories.patch b/packages/gpe-contacts/files/handle-import-categories.patch
new file mode 100644
index 0000000000..f64b1f6bbf
--- /dev/null
+++ b/packages/gpe-contacts/files/handle-import-categories.patch
@@ -0,0 +1,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);
+