## CamelInternetAddress

CamelInternetAddress

## Synopsis

                        CamelInternetAddress;
    CamelInternetAddress * camel_internet_address_new       (void);
    gint                camel_internet_address_add          (CamelInternetAddress *addr,
                                                             const gchar *name,
                                                             const gchar *address);
    gboolean            camel_internet_address_get          (CamelInternetAddress *addr,
                                                             gint index,
                                                             const gchar **namep,
                                                             const gchar **addressp);
    gint                camel_internet_address_find_name    (CamelInternetAddress *addr,
                                                             const gchar *name,
                                                             const gchar **addressp);
    gint                camel_internet_address_find_address (CamelInternetAddress *addr,
                                                             const gchar *address,
                                                             const gchar **namep);
    gchar *             camel_internet_address_encode_address
                                                            (gint *len,
                                                             const gchar *name,
                                                             const gchar *addr);
    gchar *             camel_internet_address_format_address
                                                            (const gchar *name,
                                                             const gchar *addr);

## Object Hierarchy

      GObject
       +----CamelObject
             +----CamelAddress
                   +----CamelInternetAddress

## Description

## Details

### CamelInternetAddress

    typedef struct _CamelInternetAddress CamelInternetAddress;

### camel_internet_address_new ()

    CamelInternetAddress * camel_internet_address_new       (void);

Create a new CamelInternetAddress object.

Returns : | a new CamelInternetAddress object

### camel_internet_address_add ()

    gint                camel_internet_address_add          (CamelInternetAddress *addr,
                                                             const gchar *name,
                                                             const gchar *address);

Add a new internet address to `addr`.

`addr` : | a CamelInternetAddress object
`name` : | name associated with the new address
`address` : | routing address associated with the new address
Returns : | the index of added entry

### camel_internet_address_get ()

    gboolean            camel_internet_address_get          (CamelInternetAddress *addr,
                                                             gint index,
                                                             const gchar **namep,
                                                             const gchar **addressp);

Get the address at `index`.

`addr` : | a CamelInternetAddress object
`index` : | address's array index
`namep` : | holder for the returned name, or `NULL`, if not required.
`addressp` : | holder for the returned address, or `NULL`, if not required.
Returns : | `TRUE` if such an address exists, or `FALSE` otherwise

### camel_internet_address_find_name ()

    gint                camel_internet_address_find_name    (CamelInternetAddress *addr,
                                                             const gchar *name,
                                                             const gchar **addressp);

Find address by real name.

`addr` : | a CamelInternetAddress object
`name` : | name to lookup
`addressp` : | holder for address part, or `NULL`, if not required.
Returns : | the index of the address matching the name, or `-1` if no match was found

### camel_internet_address_find_address ()

    gint                camel_internet_address_find_address (CamelInternetAddress *addr,
                                                             const gchar *address,
                                                             const gchar **namep);

Find an address by address.

`addr` : | a CamelInternetAddress object
`address` : | address to lookup
`namep` : | holder for the matching name, or `NULL`, if not required.
Returns : | the index of the address, or `-1` if not found

### camel_internet_address_encode_address ()

    gchar *             camel_internet_address_encode_address
                                                            (gint *len,
                                                             const gchar *name,
                                                             const gchar *addr);

Encode a single address ready for internet usage. Header folding as per rfc822 is also performed, based on the length *`len`. If `len` is `NULL`, then no folding will occur.

Note: The value at *`in` will be updated based on any linewrapping done

`len` : | the length of the line the address is being appended to
`name` : | the unencoded real name associated with the address
`addr` : | the routing address
Returns : | the encoded address

### camel_internet_address_format_address ()

    gchar *             camel_internet_address_format_address
                                                            (const gchar *name,
                                                             const gchar *addr);

Function to format a single address, suitable for display.

`name` : | a name, quotes may be stripped from it
`addr` : | an rfc822 routing address
Returns : | a nicely formatted string containing the rfc822 address