diff options
author | Paul Sokolovsky <pmiscml@gmail.com> | 2008-01-21 02:00:12 +0000 |
---|---|---|
committer | Paul Sokolovsky <pmiscml@gmail.com> | 2008-01-21 02:00:12 +0000 |
commit | 08895188aa65145deff6c491c5129ec416d3e6aa (patch) | |
tree | c97c0fce0718a11a39733c5bfa973cf0b0935b7c /packages/gpe-contacts/files | |
parent | a4ee61a679f06dde608ce54de4aaae00086125ac (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_empty | 0 | ||||
-rw-r--r-- | packages/gpe-contacts/files/handle-import-categories.patch | 39 |
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); + |