@deftypefn Function void parser_data_delete (snv_pointer a@var{address})
@fnindex parser_data_delete


The memory associated with @var{address} is released.

This is a sample delete function which can be used with
@code{parser_data_set()} to delete data which was created with a single
memory allocation;  that is, the memory at @var{address} contains no
pointers to other allocated memory which should be recycled and
is not itself statically allocated.

@end deftypefn

@deftypefn Function int printfv_ffunction_register (unsigned s@var{spec}, int t@var{type}, printfv_ffunction *f@var{func})
@fnindex printfv_function_register


Register @var{func} to be called when @var{spec} is encountered in a format
string.


Returns SNV_OK if @var{func} was successfuly registered, SNV_ERROR
otherwise.

@end deftypefn

@deftypefn Function void printfv_argttype_renew (int t@var{type}, int **pargttypes, int *p@var{pargc}, int a@var{argindex})
@fnindex printfv_argtype_renew


Helper function which will ensure that @var{pargtypes} has been allocated
enough elements to accomodate @var{argindex} by reallocating if necessary.
@var{pargtypes} can be a pointer to a NULL pointer when calling this
function, and the @var{argindex} numbered element will be set to @var{type},
and @var{pargc} adjusted to reflect the new size of @var{pargtypes} on return.

@end deftypefn

@deftypefn Function snv_pointer* parser_data_get (printfv_parser *p@var{pparser}, const char *k@var{key})
@fnindex parser_data_get


This function will attempt to retrieve data previously stored in
@var{pparser} under @var{key}.


If there is no data associated with @var{key}, NULL is returned, otherwise
the address of the stored data is returned (so that 0 valued data can
be distinguished from a NULL return).

@end deftypefn

@deftypefn Function void parser_ddata_set (printfv_parser *p@var{pparser}, const char *k@var{key}, snv_pointer d@var{data}, parser_ddelete_func *d@var{delete_func})
@fnindex parser_data_set


This function will store the arbitrary stae information, @var{data}, in
@var{pparser} so that it can be shared with the other handler functions
which implement the format string parsing fsm.  @var{data} is stored with
an associated @var{key} for later retrieval.  @var{key} is copied into @var{pparser}.
so it is safe to pass static strings or recycle the original.  Any
stale @var{data} already stored against @var{key} in @var{pparser} is passed to the
stale @var{delete_func} for recycling, before the new @var{data} and @var{delete_func}
are used to overwrite the stale values.

@end deftypefn

@deftypefn Function char* parser_error (printfv_parser *p@var{pparser}, const char *e@var{error_message})
@fnindex parser_error


The contents of @var{error_message} are appended to the @var{pparser} internal
error string, so it is safe to pass static strings or recycle the
original when this function returns.


The address of the full accumulated error message in @var{pparser} is
returned.

@end deftypefn

