Allocate and initialise a parser. To parse a VCARD (or any vObject)
a user allocates a parser, pushes data through it using vf_parse_text()
and finally calls vf_parse_end():
VF_PARSER_T *p_parser;
if (vf_parse_init(&p_parser, pp_object))
{
do
{
char buffer[...];
Int numchars;
numchars = get_chars_from_somewhere(buffer, ...);
Ret = vf_parse_text(p_parser, buffer, numchars);
}
while (ret && (0 < charsread))
;
if (!vf_parse_end(p_parser))
{
ret = FALSE;
}
}
A parser allocated by vf_parse_init(), must be deallocated by calling
vf_parse_end() whether or not parsing succeeds. Also, parsing may not
be complete (ie. Values may be held buffered and not evaluated fully
or assigned to a VF_OBJECT_T) untill the final call to vf_parse_end()
=> after a vf_parse_init() you _must_ vf_parse_end().