]> git.datanom.net - vcard-parser.git/blobdiff - src/vcard-parser.h
Completed initialization
[vcard-parser.git] / src / vcard-parser.h
index 9884abbcb5ecd9d71081062fe34f88e3d9b9c684..0eb4670425d35fe8a951c002d6bbe97aab80a34d 100644 (file)
  * MA 02110-1301, USA.
  */
 
-#ifndef __VCARD_H__
-#define __VCARD_H__
+#ifndef __VCARD_PARSER_H__
+#define __VCARD_PARSER_H__
 
 #include <glib.h>
 
 G_BEGIN_DECLS
 
+#include <globals.h>
+
 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
This page took 0.040404 seconds and 5 git commands to generate.