gint main (gint argc, gchar **argv) { FILE *fp; EVCard *vcard; GString *str = g_string_new (""); gchar *parsed_vcard; if (argc < 2) { g_warning ("Requires one parameter, a vCard file\n"); return 1; } fp = fopen (argv[1], "r"); if (fp == NULL) { g_warning ("Faile to open vCard file '%s'", argv[1]); return 1; } while (!feof (fp)) { gchar buf[1024]; if (fgets (buf, sizeof (buf), fp)) str = g_string_append (str, buf); } fclose (fp); vcard = e_vcard_new_from_string (str->str); g_string_free (str, TRUE); e_vcard_dump_structure (vcard); parsed_vcard = e_vcard_to_string (vcard, EVC_FORMAT_VCARD_21); printf ("\nvCard 2.1: %s\n", parsed_vcard); g_free (parsed_vcard); parsed_vcard = e_vcard_to_string (vcard, EVC_FORMAT_VCARD_30); printf ("\nvCard 3.0: %s\n", parsed_vcard); g_free (parsed_vcard); g_object_unref (vcard); return 0; }
gint main (gint argc, gchar **argv) { FILE *fp; EVCard *vcard; GString *str = g_string_new (""); gchar *parsed_vcard; if (argc < 2) return 0; g_type_init_with_debug_flags (G_TYPE_DEBUG_OBJECTS); fp = fopen (argv[1], "r"); while (!feof (fp)) { gchar buf[1024]; if (fgets (buf, sizeof (buf), fp)) str = g_string_append (str, buf); } fclose (fp); vcard = e_vcard_new_from_string (str->str); e_vcard_dump_structure (vcard); parsed_vcard = e_vcard_to_string (vcard, EVC_FORMAT_VCARD_30); printf ("\nvcard: %s\n", parsed_vcard); g_object_unref (vcard); g_free (parsed_vcard); return 0; }
static gboolean test_vcard (const gchar *vcard_str) { EVCard *vc1, *vc2; gchar *str; /* Do not parse */ vc1 = e_vcard_new_from_string (vcard_str); str = e_vcard_to_string (vc1, EVC_FORMAT_VCARD_30); g_return_val_if_fail (str != NULL, FALSE); g_return_val_if_fail (g_ascii_strcasecmp (str, vcard_str) == 0, FALSE); g_return_val_if_fail (e_vcard_is_parsed (vc1) == FALSE, FALSE); g_free (str); /* parse */ e_vcard_get_attribute (vc1, "UID"); g_return_val_if_fail (e_vcard_is_parsed (vc1) == TRUE, FALSE); str = e_vcard_to_string (vc1, EVC_FORMAT_VCARD_30); g_return_val_if_fail (str != NULL, FALSE); g_return_val_if_fail (g_ascii_strcasecmp (str, vcard_str) == 0, FALSE); g_free (str); /* parse */ e_vcard_get_attribute (vc1, "FN"); g_return_val_if_fail (e_vcard_is_parsed (vc1) == TRUE, FALSE); str = e_vcard_to_string (vc1, EVC_FORMAT_VCARD_30); g_return_val_if_fail (str != NULL, FALSE); g_return_val_if_fail (g_ascii_strcasecmp (str, vcard_str) == 0, FALSE); g_free (str); g_object_unref (vc1); /* do not parse */ vc1 = e_vcard_new_from_string (vcard_str); /* Setting the UID does not cause vCard parsing */ e_vcard_append_attribute_with_value (vc1, e_vcard_attribute_new (NULL, "UID"), "other-uid"); g_return_val_if_fail (e_vcard_is_parsed (vc1) == FALSE, FALSE); /* Retrieving the UID should not cause vCard parsing either */ g_return_val_if_fail (compare_single_value (vc1, "UID", "other-uid"), FALSE); g_return_val_if_fail (e_vcard_is_parsed (vc1) == FALSE, FALSE); /* Getting FN attribute WILL cause parsing */ e_vcard_get_attribute (vc1, "FN"); g_return_val_if_fail (e_vcard_is_parsed (vc1) == TRUE, FALSE); g_object_unref (vc1); /* parse */ vc1 = e_vcard_new_from_string (vcard_str); g_return_val_if_fail (e_vcard_is_parsed (vc1) == FALSE, FALSE); e_vcard_remove_attributes (vc1, NULL, "UID"); g_return_val_if_fail (e_vcard_is_parsed (vc1) == TRUE, FALSE); e_vcard_append_attribute_with_value (vc1, e_vcard_attribute_new (NULL, "UID"), "other-uid"); g_return_val_if_fail (compare_single_value (vc1, "UID", "other-uid"), FALSE); str = e_vcard_to_string (vc1, EVC_FORMAT_VCARD_30); vc2 = e_vcard_new_from_string (str); g_free (str); g_return_val_if_fail (compare_single_value (vc2, "UID", "other-uid"), FALSE); g_object_unref (vc2); /* parse */ e_vcard_get_attribute (vc1, "FN"); g_return_val_if_fail (e_vcard_is_parsed (vc1) == TRUE, FALSE); g_return_val_if_fail (compare_single_value (vc1, "UID", "other-uid"), FALSE); str = e_vcard_to_string (vc1, EVC_FORMAT_VCARD_30); vc2 = e_vcard_new_from_string (str); g_return_val_if_fail (e_vcard_is_parsed (vc2) == FALSE, FALSE); g_free (str); g_return_val_if_fail (compare_single_value (vc2, "UID", "other-uid"), FALSE); g_return_val_if_fail (has_only_one (vc1, "UID"), FALSE); g_return_val_if_fail (has_only_one (vc2, "UID"), FALSE); g_object_unref (vc2); g_object_unref (vc1); return TRUE; }
/** * e_vcard_new: * * Creates a new, blank #EVCard. * * Return value: A new, blank #EVCard. **/ EVCard * e_vcard_new (void) { return e_vcard_new_from_string (""); }