---
name: "vf_parse_init"
section: "3"
platform: "linux"
package: "libvformat-dev"
version: "1.13-12"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/vf_parse_init"
---

# vf\_parse\_init(3)

vf\_parse\_init()

## NAME

vf\_parse\_init - vf\_parse\_init()

## SYNOPSIS

**#include \<../vformat/vf\_iface.h\>**

**extern bool\_t vf\_parse\_init**\
 **(**\
\
 	**VF\_PARSER\_T \*\*pp\_parser,**\
\
 	**VF\_OBJECT\_T \*\*pp\_object**\
 **);**

## PARAMETERS

- **VF\_PARSER\_T \*\*pp\_parser**

  Ptr to allocated parser.

- **VF\_OBJECT\_T \*\*pp\_object**

  The object we're parsing into.

## DESCRIPTION

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) until the final call to vf\_parse\_end() =\> after a vf\_parse\_init() you \_must\_ vf\_parse\_end().

## RETURNS

TRUE iff parser allocated successfully.

## SEE ALSO

[vf\_parse\_text(3)](/vf_parse_text/3.md), [vf\_parse\_end(3)](/vf_parse_end/3.md), [vf\_read\_file(3)](/vf_read_file/3.md), [vf\_write\_file(3)](/vf_write_file/3.md), [vf\_get\_next\_object(3)](/vf_get_next_object/3.md), [vf\_create\_object(3)](/vf_create_object/3.md), [vf\_get\_object\_type(3)](/vf_get_object_type/3.md), [vf\_get\_property(3)](/vf_get_property/3.md), [vf\_get\_property\_ex(3)](/vf_get_property_ex/3.md), [vf\_get\_next\_property(3)](/vf_get_next_property/3.md), [vf\_get\_prop\_value(3)](/vf_get_prop_value/3.md), [vf\_set\_prop\_value(3)](/vf_set_prop_value/3.md), [vf\_get\_prop\_value\_string(3)](/vf_get_prop_value_string/3.md), [vf\_get\_prop\_name\_string(3)](/vf_get_prop_name_string/3.md), [vf\_set\_prop\_name\_string(3)](/vf_set_prop_name_string/3.md), [vf\_get\_prop\_name(3)](/vf_get_prop_name/3.md), [vf\_get\_prop\_value\_object(3)](/vf_get_prop_value_object/3.md), [vf\_set\_prop\_value\_object(3)](/vf_set_prop_value_object/3.md), [vf\_set\_prop\_value\_string(3)](/vf_set_prop_value_string/3.md), [vf\_set\_prop\_value\_base64(3)](/vf_set_prop_value_base64/3.md), [vf\_get\_prop\_value\_base64(3)](/vf_get_prop_value_base64/3.md), [vf\_set\_property\_from\_file(3)](/vf_set_property_from_file/3.md), [vf\_delete\_object(3)](/vf_delete_object/3.md), [vf\_delete\_prop(3)](/vf_delete_prop/3.md), [vf\_find\_prop\_qual\_index(3)](/vf_find_prop_qual_index/3.md), [vf\_is\_modified(3)](/vf_is_modified/3.md), [vf\_find\_charset(3)](/vf_find_charset/3.md), [vf\_date\_string\_to\_time(3)](/vf_date_string_to_time/3.md), [vf\_period\_string\_to\_time(3)](/vf_period_string_to_time/3.md), [vf\_period\_time\_to\_string(3)](/vf_period_time_to_string/3.md), [vf\_set\_prop\_value\_time(3)](/vf_set_prop_value_time/3.md), [vf\_get\_prop\_value\_time(3)](/vf_get_prop_value_time/3.md)
