## EVCard

EVCard — Contact data in the VCard format.

## Synopsis

                EVCard;
    enum        EVCardFormat;
                EVCardAttribute;
                EVCardAttributeParam;
    void        e_vcard_construct               (EVCard *evc,
                                                 const char *str);
    EVCard*     e_vcard_new                     (void);
    EVCard*     e_vcard_new_from_string         (const char *str);
    char*       e_vcard_to_string               (EVCard *evc,
                                                 EVCardFormat format);
    void        e_vcard_dump_structure          (EVCard *evc);
    EVCardAttribute* e_vcard_attribute_new      (const char *attr_group,
                                                 const char *attr_name);
    void        e_vcard_attribute_free          (EVCardAttribute *attr);
    EVCardAttribute* e_vcard_attribute_copy     (EVCardAttribute *attr);
    void        e_vcard_remove_attributes       (EVCard *evcard,
                                                 const char *attr_group,
                                                 const char *attr_name);
    void        e_vcard_remove_attribute        (EVCard *evcard,
                                                 EVCardAttribute *attr);
    void        e_vcard_add_attribute           (EVCard *evcard,
                                                 EVCardAttribute *attr);
    void        e_vcard_add_attribute_with_value
                                                (EVCard *evcard,
                                                 EVCardAttribute *attr,
                                                 const char *value);
    void        e_vcard_add_attribute_with_values
                                                (EVCard *evcard,
                                                 EVCardAttribute *attr,
                                                 ...);
    void        e_vcard_attribute_add_value     (EVCardAttribute *attr,
                                                 const char *value);
    void        e_vcard_attribute_add_value_decoded
                                                (EVCardAttribute *attr,
                                                 const char *value,
                                                 int len);
    void        e_vcard_attribute_add_values    (EVCardAttribute *attr,
                                                 ...);
    void        e_vcard_attribute_remove_values (EVCardAttribute *attr);
    void        e_vcard_attribute_remove_params (EVCardAttribute *attr);
    EVCardAttributeParam* e_vcard_attribute_param_new
                                                (const char *param_name);
    void        e_vcard_attribute_param_free    (EVCardAttributeParam *param);
    EVCardAttributeParam* e_vcard_attribute_param_copy
                                                (EVCardAttributeParam *param);
    void        e_vcard_attribute_add_param     (EVCardAttribute *attr,
                                                 EVCardAttributeParam *param);
    void        e_vcard_attribute_add_param_with_value
                                                (EVCardAttribute *attr,
                                                 EVCardAttributeParam *param,
                                                 const char *value);
    void        e_vcard_attribute_add_param_with_values
                                                (EVCardAttribute *attr,
                                                 EVCardAttributeParam *param,
                                                 ...);
    void        e_vcard_attribute_param_add_value
                                                (EVCardAttributeParam *param,
                                                 const char *value);
    void        e_vcard_attribute_param_add_values
                                                (EVCardAttributeParam *param,
                                                 ...);
    void        e_vcard_attribute_param_remove_values
                                                (EVCardAttributeParam *param);
    GList*      e_vcard_get_attributes          (EVCard *evcard);
    const char* e_vcard_attribute_get_group     (EVCardAttribute *attr);
    const char* e_vcard_attribute_get_name      (EVCardAttribute *attr);
    GList*      e_vcard_attribute_get_values    (EVCardAttribute *attr);
    GList*      e_vcard_attribute_get_values_decoded
                                                (EVCardAttribute *attr);
    GList*      e_vcard_attribute_get_params    (EVCardAttribute *attr);
    const char* e_vcard_attribute_param_get_name
                                                (EVCardAttributeParam *param);
    GList*      e_vcard_attribute_param_get_values
                                                (EVCardAttributeParam *param);
    #define     EVC_ADR
    #define     EVC_BDAY
    #define     EVC_CALURI
    #define     EVC_CATEGORIES
    #define     EVC_EMAIL
    #define     EVC_ENCODING
    #define     EVC_FBURL
    #define     EVC_FN
    #define     EVC_ICSCALENDAR
    #define     EVC_LABEL
    #define     EVC_LOGO
    #define     EVC_MAILER
    #define     EVC_NICKNAME
    #define     EVC_N
    #define     EVC_NOTE
    #define     EVC_ORG
    #define     EVC_PHOTO
    #define     EVC_PRODID
    #define     EVC_QUOTEDPRINTABLE
    #define     EVC_REV
    #define     EVC_ROLE
    #define     EVC_TEL
    #define     EVC_TITLE
    #define     EVC_TYPE
    #define     EVC_UID
    #define     EVC_URL
    #define     EVC_VALUE
    #define     EVC_VERSION
    #define     EVC_X_AIM
    #define     EVC_X_ANNIVERSARY
    #define     EVC_X_ASSISTANT
    #define     EVC_X_BIRTHDAY
    #define     EVC_X_BLOG_URL
    #define     EVC_X_FILE_AS
    #define     EVC_X_ICQ
    #define     EVC_X_JABBER
    #define     EVC_X_LIST_SHOW_ADDRESSES
    #define     EVC_X_LIST
    #define     EVC_X_MANAGER
    #define     EVC_X_MSN
    #define     EVC_X_SPOUSE
    #define     EVC_X_WANTS_HTML
    #define     EVC_X_YAHOO

## Object Hierarchy

      GObject
       +----EVCard
             +----EContact

## Description

Does the low-level parsing work for contact information. This data is more conveniently accessed through the EContact object.

## Details

### EVCard

    typedef struct _EVCard EVCard;

### enum EVCardFormat

    typedef enum {
    	EVC_FORMAT_VCARD_21,
    	EVC_FORMAT_VCARD_30
    } EVCardFormat;

### EVCardAttribute

    typedef struct _EVCardAttribute EVCardAttribute;

### EVCardAttributeParam

    typedef struct _EVCardAttributeParam EVCardAttributeParam;

### e_vcard_construct ()

    void        e_vcard_construct               (EVCard *evc,
                                                 const char *str);

`evc` : |
`str` : |

### e_vcard_new ()

    EVCard*     e_vcard_new                     (void);

Returns : |

### e_vcard_new_from_string ()

    EVCard*     e_vcard_new_from_string         (const char *str);

`str` : |
Returns : |

### e_vcard_to_string ()

    char*       e_vcard_to_string               (EVCard *evc,
                                                 EVCardFormat format);

`evc` : |
`format` : |
Returns : |

### e_vcard_dump_structure ()

    void        e_vcard_dump_structure          (EVCard *evc);

`evc` : |

### e_vcard_attribute_new ()

    EVCardAttribute* e_vcard_attribute_new      (const char *attr_group,
                                                 const char *attr_name);

`attr_group` : |
`attr_name` : |
Returns : |

### e_vcard_attribute_free ()

    void        e_vcard_attribute_free          (EVCardAttribute *attr);

`attr` : |

### e_vcard_attribute_copy ()

    EVCardAttribute* e_vcard_attribute_copy     (EVCardAttribute *attr);

`attr` : |
Returns : |

### e_vcard_remove_attributes ()

    void        e_vcard_remove_attributes       (EVCard *evcard,
                                                 const char *attr_group,
                                                 const char *attr_name);

Removes all the attributes with group name and attribute name equal to passed in values. If passed in group name is NULL or empty string, it removes all the attributes with passed in name irrespective of their group names

`evcard` : |
`attr_group` : | group name of attributes to be removed
`attr_name` : | name of the arributes to be removed

### e_vcard_remove_attribute ()

    void        e_vcard_remove_attribute        (EVCard *evcard,
                                                 EVCardAttribute *attr);

`evcard` : |
`attr` : |

### e_vcard_add_attribute ()

    void        e_vcard_add_attribute           (EVCard *evcard,
                                                 EVCardAttribute *attr);

`evcard` : |
`attr` : |

### e_vcard_add_attribute_with_value ()

    void        e_vcard_add_attribute_with_value
                                                (EVCard *evcard,
                                                 EVCardAttribute *attr,
                                                 const char *value);

`evcard` : |
`attr` : |
`value` : |

### e_vcard_add_attribute_with_values ()

    void        e_vcard_add_attribute_with_values
                                                (EVCard *evcard,
                                                 EVCardAttribute *attr,
                                                 ...);

`evcard` : |
`attr` : |
`...` : |

### e_vcard_attribute_add_value ()

    void        e_vcard_attribute_add_value     (EVCardAttribute *attr,
                                                 const char *value);

`attr` : |
`value` : |

### e_vcard_attribute_add_value_decoded ()

    void        e_vcard_attribute_add_value_decoded
                                                (EVCardAttribute *attr,
                                                 const char *value,
                                                 int len);

`attr` : |
`value` : |
`len` : |

### e_vcard_attribute_add_values ()

    void        e_vcard_attribute_add_values    (EVCardAttribute *attr,
                                                 ...);

`attr` : |
`...` : |

### e_vcard_attribute_remove_values ()

    void        e_vcard_attribute_remove_values (EVCardAttribute *attr);

`attr` : |

### e_vcard_attribute_remove_params ()

    void        e_vcard_attribute_remove_params (EVCardAttribute *attr);

`attr` : |

### e_vcard_attribute_param_new ()

    EVCardAttributeParam* e_vcard_attribute_param_new
                                                (const char *param_name);

`param_name` : |
Returns : |

### e_vcard_attribute_param_free ()

    void        e_vcard_attribute_param_free    (EVCardAttributeParam *param);

`param` : |

### e_vcard_attribute_param_copy ()

    EVCardAttributeParam* e_vcard_attribute_param_copy
                                                (EVCardAttributeParam *param);

`param` : |
Returns : |

### e_vcard_attribute_add_param ()

    void        e_vcard_attribute_add_param     (EVCardAttribute *attr,
                                                 EVCardAttributeParam *param);

`attr` : |
`param` : |

### e_vcard_attribute_add_param_with_value ()

    void        e_vcard_attribute_add_param_with_value
                                                (EVCardAttribute *attr,
                                                 EVCardAttributeParam *param,
                                                 const char *value);

`attr` : |
`param` : |
`value` : |

### e_vcard_attribute_add_param_with_values ()

    void        e_vcard_attribute_add_param_with_values
                                                (EVCardAttribute *attr,
                                                 EVCardAttributeParam *param,
                                                 ...);

`attr` : |
`param` : |
`...` : |

### e_vcard_attribute_param_add_value ()

    void        e_vcard_attribute_param_add_value
                                                (EVCardAttributeParam *param,
                                                 const char *value);

`param` : |
`value` : |

### e_vcard_attribute_param_add_values ()

    void        e_vcard_attribute_param_add_values
                                                (EVCardAttributeParam *param,
                                                 ...);

`param` : |
`...` : |

### e_vcard_attribute_param_remove_values ()

    void        e_vcard_attribute_param_remove_values
                                                (EVCardAttributeParam *param);

`param` : |

### e_vcard_get_attributes ()

    GList*      e_vcard_get_attributes          (EVCard *evcard);

`evcard` : |
Returns : |

### e_vcard_attribute_get_group ()

    const char* e_vcard_attribute_get_group     (EVCardAttribute *attr);

`attr` : |
Returns : |

### e_vcard_attribute_get_name ()

    const char* e_vcard_attribute_get_name      (EVCardAttribute *attr);

`attr` : |
Returns : |

### e_vcard_attribute_get_values ()

    GList*      e_vcard_attribute_get_values    (EVCardAttribute *attr);

`attr` : |
Returns : |

### e_vcard_attribute_get_values_decoded ()

    GList*      e_vcard_attribute_get_values_decoded
                                                (EVCardAttribute *attr);

`attr` : |
Returns : |

### e_vcard_attribute_get_params ()

    GList*      e_vcard_attribute_get_params    (EVCardAttribute *attr);

`attr` : |
Returns : |

### e_vcard_attribute_param_get_name ()

    const char* e_vcard_attribute_param_get_name
                                                (EVCardAttributeParam *param);

`param` : |
Returns : |

### e_vcard_attribute_param_get_values ()

    GList*      e_vcard_attribute_param_get_values
                                                (EVCardAttributeParam *param);

`param` : |
Returns : |

### EVC_ADR

    #define EVC_ADR             "ADR"

### EVC_BDAY

    #define EVC_BDAY            "BDAY"

Birthday

### EVC_CALURI

    #define EVC_CALURI          "CALURI"

Calendar URL

### EVC_CATEGORIES

    #define EVC_CATEGORIES      "CATEGORIES"

Categories

### EVC_EMAIL

    #define EVC_EMAIL           "EMAIL"

Email address

### EVC_ENCODING

    #define EVC_ENCODING        "ENCODING"

### EVC_FBURL

    #define EVC_FBURL           "FBURL"

### EVC_FN

    #define EVC_FN              "FN"

### EVC_ICSCALENDAR

    #define EVC_ICSCALENDAR     "ICSCALENDAR" /* XXX should this be X-EVOLUTION-ICSCALENDAR? */

### EVC_LABEL

    #define EVC_LABEL           "LABEL"

### EVC_LOGO

    #define EVC_LOGO            "LOGO"

### EVC_MAILER

    #define EVC_MAILER          "MAILER"

### EVC_NICKNAME

    #define EVC_NICKNAME        "NICKNAME"

Nickname

### EVC_N

    #define EVC_N               "N"

### EVC_NOTE

    #define EVC_NOTE            "NOTE"

### EVC_ORG

    #define EVC_ORG             "ORG"

Organisation

### EVC_PHOTO

    #define EVC_PHOTO           "PHOTO"

Photo

### EVC_PRODID

    #define EVC_PRODID          "PRODID"

### EVC_QUOTEDPRINTABLE

    #define EVC_QUOTEDPRINTABLE "QUOTED-PRINTABLE"

### EVC_REV

    #define EVC_REV             "REV"

### EVC_ROLE

    #define EVC_ROLE            "ROLE"

Role

### EVC_TEL

    #define EVC_TEL             "TEL"

Telephone

### EVC_TITLE

    #define EVC_TITLE           "TITLE"

Title

### EVC_TYPE

    #define EVC_TYPE            "TYPE"

### EVC_UID

    #define EVC_UID             "UID"

Unique ID

### EVC_URL

    #define EVC_URL             "URL"

Home page URL

### EVC_VALUE

    #define EVC_VALUE           "VALUE"

### EVC_VERSION

    #define EVC_VERSION         "VERSION"

### EVC_X_AIM

    #define EVC_X_AIM              "X-AIM"

AIM ID

### EVC_X_ANNIVERSARY

    #define EVC_X_ANNIVERSARY      "X-EVOLUTION-ANNIVERSARY"

Wedding anniversary

### EVC_X_ASSISTANT

    #define EVC_X_ASSISTANT        "X-EVOLUTION-ASSISTANT"

Assistant

### EVC_X_BIRTHDAY

    #define EVC_X_BIRTHDAY         "X-EVOLUTION-BIRTHDAY"

Birthday

### EVC_X_BLOG_URL

    #define EVC_X_BLOG_URL         "X-EVOLUTION-BLOG-URL"

Blog URL

### EVC_X_FILE_AS

    #define EVC_X_FILE_AS          "X-EVOLUTION-FILE-AS"

File As

### EVC_X_ICQ

    #define EVC_X_ICQ              "X-ICQ"

ICQ number

### EVC_X_JABBER

    #define EVC_X_JABBER           "X-JABBER"

Jabber ID

### EVC_X_LIST_SHOW_ADDRESSES

    #define EVC_X_LIST_SHOW_ADDRESSES "X-EVOLUTION-LIST-SHOW_ADDRESSES"

### EVC_X_LIST

    #define EVC_X_LIST          	"X-EVOLUTION-LIST"

### EVC_X_MANAGER

    #define EVC_X_MANAGER       	"X-EVOLUTION-MANAGER"

Mananger

### EVC_X_MSN

    #define EVC_X_MSN           	"X-MSN"

MSN ID

### EVC_X_SPOUSE

    #define EVC_X_SPOUSE        	"X-EVOLUTION-SPOUSE"

Spouse

### EVC_X_WANTS_HTML

    #define EVC_X_WANTS_HTML    	"X-MOZILLA-HTML"

Wants HTML mail

### EVC_X_YAHOO

    #define EVC_X_YAHOO         	"X-YAHOO"

Yahoo ID

## See Also

e-contact