![]() |
![]() |
![]() |
Camel Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#define CAMEL_FOLD_SIZE #define CAMEL_FOLD_MAX_SIZE #define CAMEL_UUDECODE_STATE_INIT #define CAMEL_UUDECODE_STATE_BEGIN #define CAMEL_UUDECODE_STATE_END #define CAMEL_UUDECODE_STATE_MASK enum CamelTransferEncoding; struct camel_header_references; char * camel_header_param (struct _camel_header_param *params, const char *name); CamelContentType; struct camel_header_raw; CamelContentDisposition; enum camel_header_address_t; struct camel_header_address; struct camel_header_newsgroup; struct _camel_header_address * camel_header_address_new (void); struct _camel_header_address * camel_header_address_new_name (const char *name, const char *addr); struct _camel_header_address * camel_header_address_new_group (const char *name); void camel_header_address_ref (struct _camel_header_address *addrlist); void camel_header_address_unref (struct _camel_header_address *addrlist); void camel_header_address_set_name (struct _camel_header_address *addrlist, const char *name); void camel_header_address_set_addr (struct _camel_header_address *addrlist, const char *addr); void camel_header_address_set_members (struct _camel_header_address *addrlist, struct _camel_header_address *group); void camel_header_address_add_member (struct _camel_header_address *addrlist, struct _camel_header_address *member); void camel_header_address_list_append_list (struct _camel_header_address **addrlistp, struct _camel_header_address **addrs); void camel_header_address_list_append (struct _camel_header_address **addrlistp, struct _camel_header_address *addr); void camel_header_address_list_clear (struct _camel_header_address **addrlistp); struct _camel_header_address * camel_header_address_decode (const char *in, const char *charset); struct _camel_header_address * camel_header_mailbox_decode (const char *in, const char *charset); char * camel_header_address_list_encode (struct _camel_header_address *addrlist); char * camel_header_address_list_format (struct _camel_header_address *addrlist); struct _camel_header_param * camel_header_param_list_decode (const char *in); struct _camel_header_param * camel_header_set_param (struct _camel_header_param **paramsp, const char *name, const char *value); void camel_header_param_list_format_append (GString *out, struct _camel_header_param *params); char * camel_header_param_list_format (struct _camel_header_param *params); void camel_header_param_list_free (struct _camel_header_param *params); CamelContentType * camel_content_type_new (const char *type, const char *subtype); CamelContentType * camel_content_type_decode (const char *in); void camel_content_type_unref (CamelContentType *content_type); void camel_content_type_ref (CamelContentType *content_type); const char * camel_content_type_param (CamelContentType *content_type, const char *name); void camel_content_type_set_param (CamelContentType *content_type, const char *name, const char *value); int camel_content_type_is (CamelContentType *content_type, const char *type, const char *subtype); char * camel_content_type_format (CamelContentType *content_type); char * camel_content_type_simple (CamelContentType *content_type); void camel_content_type_dump (CamelContentType *content_type); CamelContentDisposition * camel_content_disposition_decode (const char *in); void camel_content_disposition_ref (CamelContentDisposition *disposition); void camel_content_disposition_unref (CamelContentDisposition *disposition); char * camel_content_disposition_format (CamelContentDisposition *disposition); char * camel_content_transfer_encoding_decode (const char *in); void camel_header_raw_append (struct _camel_header_raw **list, const char *name, const char *value, int offset); void camel_header_raw_append_parse (struct _camel_header_raw **list, const char *header, int offset); const char * camel_header_raw_find (struct _camel_header_raw **list, const char *name, int *offset); const char * camel_header_raw_find_next (struct _camel_header_raw **list, const char *name, int *offset, const char *last); void camel_header_raw_replace (struct _camel_header_raw **list, const char *name, const char *value, int offset); void camel_header_raw_remove (struct _camel_header_raw **list, const char *name); void camel_header_raw_fold (struct _camel_header_raw **list); void camel_header_raw_clear (struct _camel_header_raw **list); char * camel_header_raw_check_mailing_list (struct _camel_header_raw **list); char * camel_header_address_fold (const char *in, size_t headerlen); char * camel_header_fold (const char *in, size_t headerlen); char * camel_header_unfold (const char *in); char * camel_header_token_decode (const char *in); int camel_header_decode_int (const char **in); char * camel_header_decode_string (const char *in, const char *default_charset); char * camel_header_encode_string (unsigned char *in); char * camel_header_format_ctext (const char *in, const char *default_charset); char * camel_header_encode_phrase (unsigned char *in); time_t camel_header_decode_date (const char *str, int *tz_offset); char * camel_header_format_date (time_t date, int tz_offset); char * camel_header_msgid_decode (const char *in); char * camel_header_contentid_decode (const char *in); char * camel_header_msgid_generate (void); struct _camel_header_references * camel_header_references_inreplyto_decode (const char *in); struct _camel_header_references * camel_header_references_decode (const char *in); void camel_header_references_list_clear (struct _camel_header_references **list); void camel_header_references_list_append_asis (struct _camel_header_references **list, char *ref); int camel_header_references_list_size (struct _camel_header_references **list); struct _camel_header_references * camel_header_references_dup (const struct _camel_header_references *list); char * camel_header_location_decode (const char *in); struct _camel_header_newsgroup * camel_header_newsgroups_decode (const char *in); void camel_header_newsgroups_free (struct _camel_header_newsgroup *ng); const char * camel_transfer_encoding_to_string (CamelTransferEncoding encoding); CamelTransferEncoding camel_transfer_encoding_from_string (const char *string); void camel_header_mime_decode (const char *in, int *maj, int *min); size_t camel_base64_decode_step (unsigned char *in, size_t len, unsigned char *out, int *state, unsigned int *save); size_t camel_base64_encode_step (unsigned char *in, size_t inlen, gboolean break_lines, unsigned char *out, int *state, int *save); size_t camel_base64_encode_close (unsigned char *in, size_t inlen, gboolean break_lines, unsigned char *out, int *state, int *save); size_t camel_uudecode_step (unsigned char *in, size_t inlen, unsigned char *out, int *state, guint32 *save); size_t camel_uuencode_step (unsigned char *in, size_t len, unsigned char *out, unsigned char *uubuf, int *state, guint32 *save); size_t camel_uuencode_close (unsigned char *in, size_t len, unsigned char *out, unsigned char *uubuf, int *state, guint32 *save); size_t camel_quoted_decode_step (unsigned char *in, size_t len, unsigned char *out, int *savestate, int *saveme); size_t camel_quoted_encode_step (unsigned char *in, size_t len, unsigned char *out, int *state, int *save); size_t camel_quoted_encode_close (unsigned char *in, size_t len, unsigned char *out, int *state, int *save); char * camel_base64_encode_simple (const char *data, size_t len); size_t camel_base64_decode_simple (char *data, size_t len); #define camel_mime_is_ctrl (x) #define camel_mime_is_lwsp (x) #define camel_mime_is_tspecial (x) #define camel_mime_is_type (x, t) #define camel_mime_is_ttoken (x) #define camel_mime_is_atom (x) #define camel_mime_is_dtext (x) #define camel_mime_is_fieldname (x) #define camel_mime_is_qpsafe (x) #define camel_mime_is_especial (x) #define camel_mime_is_psafe (x) #define camel_mime_is_attrchar (x)
#define CAMEL_UUDECODE_STATE_MASK (CAMEL_UUDECODE_STATE_BEGIN | CAMEL_UUDECODE_STATE_END)
typedef enum _CamelTransferEncoding { CAMEL_TRANSFER_ENCODING_DEFAULT, CAMEL_TRANSFER_ENCODING_7BIT, CAMEL_TRANSFER_ENCODING_8BIT, CAMEL_TRANSFER_ENCODING_BASE64, CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE, CAMEL_TRANSFER_ENCODING_BINARY, CAMEL_TRANSFER_ENCODING_UUENCODE, CAMEL_TRANSFER_NUM_ENCODINGS } CamelTransferEncoding;
struct camel_header_references { struct _camel_header_references *next; char *id; };
char * camel_header_param (struct _camel_header_param *params, const char *name);
Searches params
for a param named name
and gets the value.
|
parameters |
|
name of param to find |
Returns : |
the value of the name param
|
typedef struct { char *type; char *subtype; struct _camel_header_param *params; unsigned int refcount; } CamelContentType;
struct camel_header_raw { struct _camel_header_raw *next; char *name; char *value; int offset; /* in file, if known */ };
typedef struct { char *disposition; struct _camel_header_param *params; unsigned int refcount; } CamelContentDisposition;
typedef enum _camel_header_address_t { CAMEL_HEADER_ADDRESS_NONE, /* uninitialised */ CAMEL_HEADER_ADDRESS_NAME, CAMEL_HEADER_ADDRESS_GROUP } camel_header_address_t;
struct camel_header_address { struct _camel_header_address *next; camel_header_address_t type; char *name; union { char *addr; struct _camel_header_address *members; } v; unsigned int refcount; };
struct camel_header_newsgroup { struct _camel_header_newsgroup *next; char *newsgroup; };
struct _camel_header_address * camel_header_address_new (void);
Returns : |
struct _camel_header_address * camel_header_address_new_name (const char *name, const char *addr);
|
|
|
|
Returns : |
struct _camel_header_address * camel_header_address_new_group (const char *name);
|
|
Returns : |
void camel_header_address_ref (struct _camel_header_address *addrlist);
|
void camel_header_address_unref (struct _camel_header_address *addrlist);
|
void camel_header_address_set_name (struct _camel_header_address *addrlist, const char *name);
|
|
|
void camel_header_address_set_addr (struct _camel_header_address *addrlist, const char *addr);
|
|
|
void camel_header_address_set_members (struct _camel_header_address *addrlist, struct _camel_header_address *group);
|
|
|
void camel_header_address_add_member (struct _camel_header_address *addrlist, struct _camel_header_address *member);
|
|
|
void camel_header_address_list_append_list (struct _camel_header_address **addrlistp, struct _camel_header_address **addrs);
|
|
|
void camel_header_address_list_append (struct _camel_header_address **addrlistp, struct _camel_header_address *addr);
|
|
|
void camel_header_address_list_clear (struct _camel_header_address **addrlistp);
|
struct _camel_header_address * camel_header_address_decode (const char *in, const char *charset);
|
|
|
|
Returns : |
struct _camel_header_address * camel_header_mailbox_decode (const char *in, const char *charset);
|
|
|
|
Returns : |
char * camel_header_address_list_encode (struct _camel_header_address *addrlist);
|
|
Returns : |
char * camel_header_address_list_format (struct _camel_header_address *addrlist);
|
|
Returns : |
struct _camel_header_param * camel_header_param_list_decode (const char *in);
|
|
Returns : |
struct _camel_header_param * camel_header_set_param (struct _camel_header_param **paramsp, const char *name, const char *value);
Set a parameter in the list.
|
poinetr to a list of params |
|
name of param to set |
|
value to set |
Returns : |
the set param |
void camel_header_param_list_format_append (GString *out, struct _camel_header_param *params);
|
|
|
char * camel_header_param_list_format (struct _camel_header_param *params);
|
|
Returns : |
void camel_header_param_list_free (struct _camel_header_param *params);
Free the list of params.
|
a list of params |
CamelContentType * camel_content_type_new (const char *type, const char *subtype);
Create a new CamelContentType.
|
the major type of the new content-type |
|
the subtype |
Returns : |
the new CamelContentType |
CamelContentType * camel_content_type_decode (const char *in);
|
|
Returns : |
void camel_content_type_unref (CamelContentType *content_type);
Unrefs, and potentially frees, the content type.
|
a CamelContentType |
void camel_content_type_ref (CamelContentType *content_type);
Refs the content type.
|
a CamelContentType |
const char * camel_content_type_param (CamelContentType *content_type, const char *name);
Searches the params on s CamelContentType for a param named name
and gets the value.
|
a CamelContentType |
|
name of param to find |
Returns : |
the value of the name param
|
void camel_content_type_set_param (CamelContentType *content_type, const char *name, const char *value);
Set a parameter on content_type
.
|
a CamelContentType |
|
name of param to set |
|
value of param to set |
int camel_content_type_is (CamelContentType *content_type, const char *type, const char *subtype);
The subtype of "*" will match any subtype. If ct
is NULL
, then
it will match the type "text/plain".
|
A content type specifier, or NULL .
|
|
A type to check against. |
|
A subtype to check against, or "*" to match any subtype. |
Returns : |
TRUE if the content type ct is of type type /subtype or
FALSE otherwise
|
char * camel_content_type_format (CamelContentType *content_type);
|
|
Returns : |
char * camel_content_type_simple (CamelContentType *content_type);
|
|
Returns : |
void camel_content_type_dump (CamelContentType *content_type);
|
CamelContentDisposition * camel_content_disposition_decode (const char *in);
|
|
Returns : |
void camel_content_disposition_ref (CamelContentDisposition *disposition);
|
void camel_content_disposition_unref (CamelContentDisposition *disposition);
|
char * camel_content_disposition_format (CamelContentDisposition *disposition);
|
|
Returns : |
char * camel_content_transfer_encoding_decode (const char *in);
|
|
Returns : |
void camel_header_raw_append (struct _camel_header_raw **list, const char *name, const char *value, int offset);
|
|
|
|
|
|
|
void camel_header_raw_append_parse (struct _camel_header_raw **list, const char *header, int offset);
|
|
|
|
|
const char * camel_header_raw_find (struct _camel_header_raw **list, const char *name, int *offset);
|
|
|
|
|
|
Returns : |
const char * camel_header_raw_find_next (struct _camel_header_raw **list, const char *name, int *offset, const char *last);
|
|
|
|
|
|
|
|
Returns : |
void camel_header_raw_replace (struct _camel_header_raw **list, const char *name, const char *value, int offset);
|
|
|
|
|
|
|
void camel_header_raw_remove (struct _camel_header_raw **list, const char *name);
|
|
|
char * camel_header_raw_check_mailing_list (struct _camel_header_raw **list);
|
|
Returns : |
char * camel_header_address_fold (const char *in, size_t headerlen);
|
|
|
|
Returns : |
char * camel_header_fold (const char *in, size_t headerlen);
|
|
|
|
Returns : |
char * camel_header_token_decode (const char *in);
Gets the first token in the string according to the rules of rfc0822.
|
input string |
Returns : |
a new string containing the first token in in
|
int camel_header_decode_int (const char **in);
Extracts an integer token from in
and updates the pointer to point
to after the end of the integer token (sort of like strtol).
|
pointer to input string |
Returns : |
the int value |
char * camel_header_decode_string (const char *in, const char *default_charset);
Decodes rfc2047 encoded-word tokens
|
input header value string |
|
default charset to use if improperly encoded |
Returns : |
a string containing the UTF-8 version of the decoded header value |
char * camel_header_encode_string (unsigned char *in);
Encodes a 'text' header according to the rules of rfc2047.
|
input string |
Returns : |
the rfc2047 encoded header |
char * camel_header_format_ctext (const char *in, const char *default_charset);
Decodes a header which contains rfc2047 encoded-word tokens that may or may not be within a comment.
|
input header value string |
|
default charset to use if improperly encoded |
Returns : |
a string containing the UTF-8 version of the decoded header value |
char * camel_header_encode_phrase (unsigned char *in);
Encodes a 'phrase' header according to the rules in rfc2047.
|
header to encode |
Returns : |
the encoded 'phrase' |
time_t camel_header_decode_date (const char *str, int *tz_offset);
Decodes the rfc822 date string and saves the GMT offset into
tz_offset
if non-NULL.
|
input date string |
|
timezone offset |
Returns : |
the time_t representation of the date string specified by
str or (time_t) 0 on error. If tz_offset is non-NULL, the value
of the timezone offset will be stored.
|
char * camel_header_format_date (time_t date, int tz_offset);
Allocates a string buffer containing the rfc822 formatted date
string represented by time
and tz_offset
.
|
time_t date representation |
|
Timezone offset |
Returns : |
a valid string representation of the date. |
char * camel_header_msgid_decode (const char *in);
Extract a message-id token from in
.
|
input string |
Returns : |
the msg-id |
char * camel_header_contentid_decode (const char *in);
Extract a content-id from in
.
|
input string |
Returns : |
the extracted content-id |
struct _camel_header_references * camel_header_references_inreplyto_decode (const char *in);
|
|
Returns : |
struct _camel_header_references * camel_header_references_decode (const char *in);
|
|
Returns : |
void camel_header_references_list_clear (struct _camel_header_references **list);
|
void camel_header_references_list_append_asis (struct _camel_header_references **list, char *ref);
|
|
|
int camel_header_references_list_size (struct _camel_header_references **list);
|
|
Returns : |
struct _camel_header_references * camel_header_references_dup (const struct _camel_header_references *list);
|
|
Returns : |
char * camel_header_location_decode (const char *in);
|
|
Returns : |
struct _camel_header_newsgroup * camel_header_newsgroups_decode (const char *in);
|
|
Returns : |
void camel_header_newsgroups_free (struct _camel_header_newsgroup *ng);
|
const char * camel_transfer_encoding_to_string (CamelTransferEncoding encoding);
|
|
Returns : |
CamelTransferEncoding camel_transfer_encoding_from_string (const char *string);
|
|
Returns : |
void camel_header_mime_decode (const char *in, int *maj, int *min);
|
|
|
|
|
size_t camel_base64_decode_step (unsigned char *in, size_t len, unsigned char *out, int *state, unsigned int *save);
camel_base64_decode_step
is deprecated and should not be used in newly-written code.
Decodes a chunk of base64 encoded data
|
input stream |
|
max length of data to decode |
|
output stream |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been decoded |
Returns : |
the number of bytes decoded (which have been dumped in out )
|
size_t camel_base64_encode_step (unsigned char *in, size_t inlen, gboolean break_lines, unsigned char *out, int *state, int *save);
camel_base64_encode_step
is deprecated and should not be used in newly-written code.
Base64 encodes a chunk of data. Performs an 'encode step', only encodes blocks of 3 characters to the output at a time, saves left-over state in state and save (initialise to 0 on first invocation).
|
input stream |
|
length of the input |
|
break long lines |
|
output string |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been encoded |
Returns : |
the number of bytes encoded |
size_t camel_base64_encode_close (unsigned char *in, size_t inlen, gboolean break_lines, unsigned char *out, int *state, int *save);
camel_base64_encode_close
is deprecated and should not be used in newly-written code.
Base64 encodes the input stream to the output stream. Call this when finished encoding data with camel_base64_encode_step to flush off the last little bit.
|
input stream |
|
length of the input |
|
whether or not to break long lines |
|
output string |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been encoded |
Returns : |
the number of bytes encoded |
size_t camel_uudecode_step (unsigned char *in, size_t inlen, unsigned char *out, int *state, guint32 *save);
Uudecodes a chunk of data. Performs a 'decode step' on a chunk of uuencoded data. Assumes the "begin mode filename" line has been stripped off.
|
input stream |
|
max length of data to decode |
|
output stream |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been decoded |
Returns : |
the number of bytes decoded |
size_t camel_uuencode_step (unsigned char *in, size_t len, unsigned char *out, unsigned char *uubuf, int *state, guint32 *save);
Uuencodes a chunk of data. Performs an 'encode step', only encodes
blocks of 45 characters to the output at a time, saves left-over
state in uubuf
, state
and save
(initialize to 0 on first
invocation).
|
input stream |
|
input stream length |
|
output stream |
|
temporary buffer of 60 bytes |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been encoded |
Returns : |
the number of bytes encoded |
size_t camel_uuencode_close (unsigned char *in, size_t len, unsigned char *out, unsigned char *uubuf, int *state, guint32 *save);
Uuencodes a chunk of data. Call this when finished encoding data with camel_uuencode_step to flush off the last little bit.
|
input stream |
|
input stream length |
|
output stream |
|
temporary buffer of 60 bytes |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been encoded |
Returns : |
the number of bytes encoded |
size_t camel_quoted_decode_step (unsigned char *in, size_t len, unsigned char *out, int *savestate, int *saveme);
Decodes a block of quoted-printable encoded data. Performs a 'decode step' on a chunk of QP encoded data.
|
input stream |
|
max length of data to decode |
|
output stream |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been decoded |
Returns : |
the number of bytes decoded |
size_t camel_quoted_encode_step (unsigned char *in, size_t len, unsigned char *out, int *state, int *save);
Quoted-printable encodes a block of text. Performs an 'encode step', saves left-over state in state and save (initialise to -1 on first invocation).
|
input stream |
|
length of the input |
|
output string |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been encoded |
Returns : |
the number of bytes encoded |
size_t camel_quoted_encode_close (unsigned char *in, size_t len, unsigned char *out, int *state, int *save);
Quoted-printable encodes a block of text. Call this when finished encoding data with camel_quoted_encode_step to flush off the last little bit.
|
input stream |
|
length of the input |
|
output string |
|
holds the number of bits that are stored in save
|
|
leftover bits that have not yet been encoded |
Returns : |
the number of bytes encoded |
char * camel_base64_encode_simple (const char *data, size_t len);
camel_base64_encode_simple
is deprecated and should not be used in newly-written code.
Base64 encodes a block of memory.
|
binary stream of data to encode |
|
length of data |
Returns : |
a string containing the base64 encoded data |
size_t camel_base64_decode_simple (char *data, size_t len);
camel_base64_decode_simple
is deprecated and should not be used in newly-written code.
Base64 decodes data
inline (overwrites data
with the decoded version).
|
data to decode |
|
length of data |
Returns : |
the new length of data
|
#define camel_mime_is_ctrl(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_CTRL) != 0)
|
#define camel_mime_is_lwsp(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_LWSP) != 0)
|
#define camel_mime_is_tspecial(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_TSPECIAL) != 0)
|
#define camel_mime_is_type(x, t) ((camel_mime_special_table[(unsigned char)(x)] & (t)) != 0)
|
|
|
#define camel_mime_is_ttoken(x) ((camel_mime_special_table[(unsigned char)(x)] & (CAMEL_MIME_IS_TSPECIAL|CAMEL_MIME_IS_LWSP|CAMEL_MIME_IS_CTRL)) == 0)
|
#define camel_mime_is_atom(x) ((camel_mime_special_table[(unsigned char)(x)] & (CAMEL_MIME_IS_SPECIAL|CAMEL_MIME_IS_SPACE|CAMEL_MIME_IS_CTRL)) == 0)
|
#define camel_mime_is_dtext(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_DSPECIAL) == 0)
|
#define camel_mime_is_fieldname(x) ((camel_mime_special_table[(unsigned char)(x)] & (CAMEL_MIME_IS_CTRL|CAMEL_MIME_IS_SPACE)) == 0)
|
#define camel_mime_is_qpsafe(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_QPSAFE) != 0)
|
#define camel_mime_is_especial(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_ESPECIAL) != 0)
|
#define camel_mime_is_psafe(x) ((camel_mime_special_table[(unsigned char)(x)] & CAMEL_MIME_IS_PSAFE) != 0)
|