X-Git-Url: http://git.datanom.net/vcard-parser.git/blobdiff_plain/aa039bee0fd8f3db86fb10482345f940ce63f33b..0d68a95569264bb6b305c87c6dfc1c50ad536a79:/src/vcard-parser.h diff --git a/src/vcard-parser.h b/src/vcard-parser.h index 9884abb..0eb4670 100644 --- a/src/vcard-parser.h +++ b/src/vcard-parser.h @@ -19,15 +19,18 @@ * MA 02110-1301, USA. */ -#ifndef __VCARD_H__ -#define __VCARD_H__ +#ifndef __VCARD_PARSER_H__ +#define __VCARD_PARSER_H__ #include G_BEGIN_DECLS +#include + typedef enum { // vCard 2.1 properties and up + // https://github.com/emacsmirror/addressbook/blob/master/vcard-21.txt N = 0, FN, PHOTO, @@ -50,11 +53,16 @@ typedef enum { VERSION, KEY, TZ, + SOURCE, + AGENT, // Removed in vCard 4.0 + PROFILE, // Removed in vCard 4.0 // vCard 3.0 properties + // https://tools.ietf.org/html/rfc2426 CATEGORIES, SORT_STRING, PRODID, NICKNAME, + NAME, // Removed in vCard 4.0 CLASS, // Removed in vCard 4.0 // rfc2739 properties FBURL, @@ -64,7 +72,7 @@ typedef enum { // rfc4770 properties IMPP, // vCard 4.0 properties - SOURCE, + // https://tools.ietf.org/html/rfc6350 XML, ANNIVERSARY, CLIENTPIDMAP, @@ -85,60 +93,26 @@ typedef enum { VCARD_PROPERTIES, } Property; -gchar* Proterties[VCARD_PROPERTIES+1] = { - "N", - "FN", - "PHOTO", - "BDAY", - "ADR", - "LABEL", - "TEL", - "EMAIL", - "MAILER", - "GEO", - "TITLE", - "ROLE", - "LOGO", - "ORG", - "NOTE", - "REV", - "SOUND", - "URL", - "UID", - "VERSION", - "KEY", - "TZ", - "CATEGORIES", - "SORT-STRING", - "PRODID", - "NICKNAME", - "CLASS", - "FBURL", - "CAPURI", - "CALURI", - "CALADRURI", - "IMPP", - "SOURCE", - "XML", - "ANNIVERSARY", - "CLIENTPIDMAP", - "LANG", - "GENDER", - "KIND", - "MEMBER", - "RELATED", - "BIRTHPLACE", - "DEATHPLACE", - "DEATHDATE", - "EXPERTISE", - "HOBBY", - "INTEREST", - "ORG-DIRECTORY", - NULL -}; +typedef enum { + VCARD_PARSER_OK, + VCARD_PARSER_VERSION_MISSING, + VCARD_PARSER_VERSION_MISMATCH, + VCARD_PARSER_ATTRIBUTE_VERSION_MISMATCH, + VCARD_PARSER_BAD_FORMAT, + VCARD_PARSER_ERROR, +} VCardParserResponse; -G_END_DECLS +typedef struct { + gchar* name; + gchar* value; +} VCardProperty; + +VCardVersion str_2_vcard_version(const gchar* version); +gchar* vcard_version_2_str(VCardVersion version); +Property vcard_max_property(VCardVersion version); +VCardParserResponse vcard_parse_text(const gchar* text, VCardVersion* version, GHashTable** vcard); +void destroy_hash_table(GHashTable* ht); -gboolean vcard_parse_text(); +G_END_DECLS #endif