


confuse						     confuse.h(3)



NAME
     confuse.h - A configuration file parser library.

SYNOPSIS
     #include <stdio.h>
     #include <stdarg.h>


  Data Structures
     struct cfg_t
	 Data structure	holding	information about a 'section'.
     union cfg_value_t
	 Data structure	holding	the value of a fundamental option
	 value.
     struct cfg_defvalue_t
	 Data structure	holding	the default value given	by the
	 initialization	macros.
     struct cfg_opt_t
	 Data structure	holding	information about an option.

  Defines
     #define CFGF_NONE	 0
	 Flags.
     #define CFGF_MULTI	  1
	 option	may be specified multiple times	(only applies to
	 sections)
     #define CFGF_LIST	 2
	 option	is a list
     #define CFGF_NOCASE   4
	 configuration file is case insensitive
     #define CFGF_TITLE	  8
	 option	has a title (only applies to sections)
     #define CFGF_NODEFAULT   16
	 option	has no default value
     #define CFGF_NO_TITLE_DUPES   32
	 multiple section titles must be unique	(duplicates
	 raises	an error, only applies to sections)
     #define CFG_SUCCESS   0
	 Return	codes from cfg_parse().
     #define CFG_STR(name, def,	flags)	 __CFG_STR(name, def,
	 flags,	0, 0)
	 Initialize a string option.
     #define CFG_STR_LIST(name,	def, flags)
	 __CFG_STR_LIST(name, def, flags, 0, 0)
	 Initialize a string list option.
     #define CFG_STR_CB(name, def, flags, cb)	__CFG_STR(name,
	 def, flags, 0,	cb)
	 Initialize a string option with a value parsing
	 callback.
     #define CFG_STR_LIST_CB(name, def,	flags, cb)
	 __CFG_STR_LIST(name, def, flags, 0, cb)
	 Initialize a string list option with a	value parsing



Version	2.6	    Last change: 29 Dec	2007			1






confuse						     confuse.h(3)



	 callback.
     #define CFG_SIMPLE_STR(name, svalue)   __CFG_STR(name, 0,
	 CFGF_NONE, svalue, 0)
	 Initialize a 'simple' string option.
     #define CFG_INT(name, def,	flags)	 __CFG_INT(name, def,
	 flags,	0, 0)
	 Initialize an integer option.
     #define CFG_INT_LIST(name,	def, flags)
	 __CFG_INT_LIST(name, def, flags, 0, 0)
	 Initialize an integer list option.
     #define CFG_INT_CB(name, def, flags, cb)	__CFG_INT(name,
	 def, flags, 0,	cb)
	 Initialize an integer option with a value parsing
	 callback.
     #define CFG_INT_LIST_CB(name, def,	flags, cb)
	 __CFG_INT_LIST(name, def, flags, 0, cb)
	 Initialize an integer list option with	a value	parsing
	 callback.
     #define CFG_SIMPLE_INT(name, svalue)   __CFG_INT(name, 0,
	 CFGF_NONE, svalue, 0)
	 Initialize a 'simple' integer option (see documentation
	 for CFG_SIMPLE_STR for	more information).
     #define CFG_FLOAT(name, def, flags)   __CFG_FLOAT(name, def,
	 flags,	0, 0)
	 Initialize a floating point option.
     #define CFG_FLOAT_LIST(name, def, flags)
	 __CFG_FLOAT_LIST(name,	def, flags, 0, 0)
	 Initialize a floating point list option.
     #define CFG_FLOAT_CB(name,	def, flags, cb)
	 __CFG_FLOAT(name, def,	flags, 0, cb)
	 Initialize a floating point option with a value parsing
	 callback.
     #define CFG_FLOAT_LIST_CB(name, def, flags, cb)
	 __CFG_FLOAT_LIST(name,	def, flags, 0, cb)
	 Initialize a floating point list option with a	value
	 parsing callback.
     #define CFG_SIMPLE_FLOAT(name, svalue)   __CFG_FLOAT(name,
	 0, CFGF_NONE, svalue, 0)
	 Initialize a 'simple' floating	point option (see
	 documentation for CFG_SIMPLE_STR for more information).
     #define CFG_BOOL(name, def, flags)	  __CFG_BOOL(name, def,
	 flags,	0, 0)
	 Initialize a boolean option.
     #define CFG_BOOL_LIST(name, def, flags)
	 __CFG_BOOL_LIST(name, def, flags, 0, 0)
	 Initialize a boolean list option.
     #define CFG_BOOL_CB(name, def, flags, cb)	 __CFG_BOOL(name,
	 def, flags, 0,	cb)
	 Initialize a boolean option with a value parsing
	 callback.
     #define CFG_BOOL_LIST_CB(name, def, flags,	cb)
	 __CFG_BOOL_LIST(name, def, flags, 0, cb)



Version	2.6	    Last change: 29 Dec	2007			2






confuse						     confuse.h(3)



	 Initialize a boolean list option with a value parsing
	 callback.
     #define CFG_SIMPLE_BOOL(name, svalue)   __CFG_BOOL(name,
	 cfg_false, CFGF_NONE, svalue, 0)
	 Initialize a 'simple' boolean option (see documentation
	 for CFG_SIMPLE_STR for	more information).
     #define CFG_SEC(name, opts, flags)
	 {name,CFGT_SEC,0,0,flags,opts,{0,0,cfg_false,0,0},0,0,0,0,0,0}
	 Initialize a section.
     #define CFG_FUNC(name, func)
	 {name,CFGT_FUNC,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},func,0,0,0,0,0}
	 Initialize a function.
     #define CFG_PTR_CB(name, def, flags, parsecb, freecb)
	 __CFG_PTR(name, def, flags, 0,	parsecb, freecb)
	 Initialize a user-defined option.
     #define CFG_PTR_LIST_CB(name, def,	flags, parsecb,	freecb)
	 __CFG_PTR(name, def, flags | CFGF_LIST, 0, parsecb,
	 freecb)
	 Initialize a list of user-defined options.
     #define CFG_END()
	 {0,CFGT_NONE,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},0,0,0,0,0,0}
	 Terminate list	of options.

  Typedefs
     typedef int(*) cfg_func_t (cfg_t *cfg, cfg_opt_t *opt, int
	 argc, const char **argv)
	 Function prototype used by CFGT_FUNC options.
     typedef void(*) cfg_print_func_t (cfg_opt_t *opt, unsigned
	 int index, FILE *fp)
	 Function prototype used by the	cfg_print_ functions.
     typedef int(*) cfg_callback_t (cfg_t *cfg,	cfg_opt_t *opt,
	 const char *value, void *result)
	 Value parsing callback	prototype.
     typedef int(*) cfg_validate_callback_t (cfg_t *cfg,
	 cfg_opt_t *opt)
	 Validating callback prototype.
     typedef void(*) cfg_free_func_t (void *value)
	 User-defined memory release function for CFG_PTR values.
     typedef void(*) cfg_errfunc_t (cfg_t *cfg,	const char *fmt,
	 va_list ap)
	 Error reporting function.

  Enumerations
     enum cfg_type_t { , CFGT_INT, CFGT_FLOAT, CFGT_STR,
	 CFGT_BOOL, CFGT_SEC, CFGT_FUNC, CFGT_PTR }
	 Fundamental option types.
     enum cfg_bool_t
	 Boolean values.

  Functions
     DLLIMPORT cfg_t *__export cfg_init	(cfg_opt_t *opts,
	 cfg_flag_t flags)



Version	2.6	    Last change: 29 Dec	2007			3






confuse						     confuse.h(3)



	 Create	and initialize a cfg_t structure.
     DLLIMPORT int __export cfg_parse (cfg_t *cfg, const char
	 *filename)
	 Parse a configuration file.
     DLLIMPORT int __export cfg_parse_fp (cfg_t	*cfg, FILE *fp)
	 Same as cfg_parse() above, but	takes an already opened
	 file as argument.
     DLLIMPORT int __export cfg_parse_buf (cfg_t *cfg, const char
	 *buf)
	 Same as cfg_parse() above, but	takes a	character buffer
	 as argument.
     DLLIMPORT void __export cfg_free_value (cfg_opt_t *opt)
	 Free the memory allocated for the values of a given
	 option.
     DLLIMPORT void __export cfg_free (cfg_t *cfg)
	 Free a	cfg_t context.
     DLLIMPORT cfg_errfunc_t __export cfg_set_error_function
	 (cfg_t	*cfg, cfg_errfunc_t errfunc)
	 Install a user-defined	error reporting	function.
     DLLIMPORT void __export cfg_error (cfg_t *cfg, const char
	 *fmt,...)
	 Show a	parser error.
     DLLIMPORT signed long __export cfg_opt_getnint (cfg_opt_t
	 *opt, unsigned	int index)
	 Returns the value of an integer option, given a
	 cfg_opt_t pointer.
     DLLIMPORT long int	__export cfg_getnint (cfg_t *cfg, const
	 char *name, unsigned int index)
	 Indexed version of cfg_getint(), used for lists.
     DLLIMPORT long int	__export cfg_getint (cfg_t *cfg, const
	 char *name)
	 Returns the value of an integer option.
     DLLIMPORT double __export cfg_opt_getnfloat (cfg_opt_t *opt,
	 unsigned int index)
	 Returns the value of a	floating point option, given a
	 cfg_opt_t pointer.
     DLLIMPORT double __export cfg_getnfloat (cfg_t *cfg, const
	 char *name, unsigned int index)
	 Indexed version of cfg_getfloat(), used for lists.
     DLLIMPORT double __export cfg_getfloat (cfg_t *cfg, const
	 char *name)
	 Returns the value of a	floating point option.
     DLLIMPORT char *__export cfg_opt_getnstr (cfg_opt_t *opt,
	 unsigned int index)
	 Returns the value of a	string option, given a cfg_opt_t
	 pointer.
     DLLIMPORT char *__export cfg_getnstr (cfg_t *cfg, const char
	 *name,	unsigned int index)
	 Indexed version of cfg_getstr(), used for lists.
     DLLIMPORT char *__export cfg_getstr (cfg_t	*cfg, const char
	 *name)
	 Returns the value of a	string option.



Version	2.6	    Last change: 29 Dec	2007			4






confuse						     confuse.h(3)



     DLLIMPORT cfg_bool_t __export cfg_opt_getnbool (cfg_opt_t
	 *opt, unsigned	int index)
	 Returns the value of a	boolean	option,	given a	cfg_opt_t
	 pointer.
     DLLIMPORT cfg_bool_t __export cfg_getnbool	(cfg_t *cfg,
	 const char *name, unsigned int	index)
	 Indexed version of cfg_getbool(), used	for lists.
     DLLIMPORT cfg_bool_t __export cfg_getbool (cfg_t *cfg, const
	 char *name)
	 Returns the value of a	boolean	option.
     DLLIMPORT void *__export cfg_getptr (cfg_t	*cfg, const char
	 *name)
	 Returns the value of a	user-defined option (void
	 pointer).
     DLLIMPORT cfg_t *__export cfg_opt_getnsec (cfg_opt_t *opt,
	 unsigned int index)
	 Returns the value of a	section	option,	given a	cfg_opt_t
	 pointer.
     DLLIMPORT cfg_t *__export cfg_getnsec (cfg_t *cfg,	const
	 char *name, unsigned int index)
	 Indexed version of cfg_getsec(), used for sections with
	 the CFGF_MULTI	flag set.
     DLLIMPORT cfg_t *__export cfg_opt_gettsec (cfg_opt_t *opt,
	 const char *title)
	 Returns the value of a	section	option,	given a	cfg_opt_t
	 pointer and the title.
     DLLIMPORT cfg_t *__export cfg_gettsec (cfg_t *cfg,	const
	 char *name, const char	*title)
	 Return	a section given	the title, used	for section with
	 the CFGF_TITLE	flag set.
     DLLIMPORT cfg_t *__export cfg_getsec (cfg_t *cfg, const char
	 *name)
	 Returns the value of a	section	option.
     DLLIMPORT unsigned	int __export cfg_opt_size (cfg_opt_t
	 *opt)
	 Return	the number of values this option has.
     DLLIMPORT unsigned	int __export cfg_size (cfg_t *cfg, const
	 char *name)
	 Return	the number of values this option has.
     DLLIMPORT const char *__export cfg_title (cfg_t *cfg)
	 Return	the title of a section.
     DLLIMPORT const char *__export cfg_name (cfg_t *cfg)
	 Return	the name of a section.
     DLLIMPORT const char *__export cfg_opt_name (cfg_opt_t *opt)
	 Return	the name of an option.
     DLLIMPORT int __export cfg_include	(cfg_t *cfg, cfg_opt_t
	 *opt, int argc, const char **argv)
	 Predefined include-function.
     DLLIMPORT char *__export cfg_tilde_expand (const char
	 *filename)
	 Does tilde expansion (~ -> $HOME) on the filename.
     DLLIMPORT int __export cfg_parse_boolean (const char *s)



Version	2.6	    Last change: 29 Dec	2007			5






confuse						     confuse.h(3)



	 Parse a boolean option	string.
     DLLIMPORT cfg_opt_t *__export cfg_getopt (cfg_t *cfg, const
	 char *name)
	 Return	an option given	it's name.
     DLLIMPORT void __export cfg_opt_setnint (cfg_opt_t	*opt,
	 long int value, unsigned int index)
	 Set a value of	an integer option.
     DLLIMPORT void __export cfg_setint	(cfg_t *cfg, const char
	 *name,	long int value)
	 Set the value of an integer option given its name.
     DLLIMPORT void __export cfg_setnint (cfg_t	*cfg, const char
	 *name,	long int value,	unsigned int index)
	 Set a value of	an integer option given	its name and
	 index.
     DLLIMPORT void __export cfg_opt_setnfloat (cfg_opt_t *opt,
	 double	value, unsigned	int index)
	 Set a value of	a floating point option.
     DLLIMPORT void __export cfg_setfloat (cfg_t *cfg, const char
	 *name,	double value)
	 Set the value of a floating point option given	its name.
     DLLIMPORT void __export cfg_setnfloat (cfg_t *cfg,	const
	 char *name, double value, unsigned int	index)
	 Set a value of	a floating point option	given its name
	 and index.
     DLLIMPORT void __export cfg_opt_setnbool (cfg_opt_t *opt,
	 cfg_bool_t value, unsigned int	index)
	 Set a value of	a boolean option.
     DLLIMPORT void __export cfg_setbool (cfg_t	*cfg, const char
	 *name,	cfg_bool_t value)
	 Set the value of a boolean option given its name.
     DLLIMPORT void __export cfg_setnbool (cfg_t *cfg, const char
	 *name,	cfg_bool_t value, unsigned int index)
	 Set a value of	a boolean option given its name	and
	 index.
     DLLIMPORT void __export cfg_opt_setnstr (cfg_opt_t	*opt,
	 const char *value, unsigned int index)
	 Set a value of	a string option.
     DLLIMPORT void __export cfg_setstr	(cfg_t *cfg, const char
	 *name,	const char *value)
	 Set the value of a string option given	its name.
     DLLIMPORT void __export cfg_setnstr (cfg_t	*cfg, const char
	 *name,	const char *value, unsigned int	index)
	 Set a value of	a boolean option given its name	and
	 index.
     DLLIMPORT void __export cfg_setlist (cfg_t	*cfg, const char
	 *name,	unsigned int nvalues,...)
	 Set values for	a list option.
     DLLIMPORT void __export cfg_addlist (cfg_t	*cfg, const char
	 *name,	unsigned int nvalues,...)
	 Add values for	a list option.
     DLLIMPORT void __export cfg_opt_nprint_var	(cfg_opt_t *opt,
	 unsigned int index, FILE *fp)



Version	2.6	    Last change: 29 Dec	2007			6






confuse						     confuse.h(3)



	 Default value print function.
     DLLIMPORT void __export cfg_opt_print_indent (cfg_opt_t
	 *opt, FILE *fp, int indent)
	 Print an option and its value to a file.
     DLLIMPORT void __export cfg_opt_print (cfg_opt_t *opt, FILE
	 *fp)
	 Print an option and its value to a file.
     DLLIMPORT void __export cfg_print_indent (cfg_t *cfg, FILE
	 *fp, int indent)
	 Print the options and values to a file.
     DLLIMPORT void __export cfg_print (cfg_t *cfg, FILE *fp)
	 Print the options and values to a file.
     DLLIMPORT cfg_print_func_t	__export cfg_opt_set_print_func
	 (cfg_opt_t *opt, cfg_print_func_t pf)
	 Set a print callback function for an option.
     DLLIMPORT cfg_print_func_t	__export cfg_set_print_func
	 (cfg_t	*cfg, const char *name,	cfg_print_func_t pf)
	 Set a print callback function for an option given its
	 name.
     DLLIMPORT cfg_validate_callback_t __export
	 cfg_set_validate_func (cfg_t *cfg, const char *name,
	 cfg_validate_callback_t vf)
	 Register a validating callback	function for an	option.

Detailed Description
     A configuration file parser library.



Define Documentation
  #define CFG_END()
     {0,CFGT_NONE,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},0,0,0,0,0,0}
     Terminate list of options.

     This must be the last initializer in the option list.

     Examples:
	 ftpconf.c, reread.c, and simple.c.

  #define CFG_FUNC(name, func)
     {name,CFGT_FUNC,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},func,0,0,0,0,0}
     Initialize	a function.

     Parameters:
	 name The name of the option
	 func The callback function.

     See also:
	 cfg_func_t

     Examples:
	 ftpconf.c.



Version	2.6	    Last change: 29 Dec	2007			7






confuse						     confuse.h(3)



  #define CFG_PTR_CB(name, def,	flags, parsecb,	freecb)
     __CFG_PTR(name, def, flags, 0, parsecb, freecb)
     Initialize	a user-defined option.

     CFG_PTR options can only be used together with a value
     parsing callback.

     Parameters:
	 name The name of the option
	 def Default value
	 flags Flags
	 parsecb Value parsing callback
	 freecb	Memory release function

     See also:
	 cfg_callback_t, cfg_free_func_t

  #define CFG_SEC(name,	opts, flags)
     {name,CFGT_SEC,0,0,flags,opts,{0,0,cfg_false,0,0},0,0,0,0,0,0}
     Initialize	a section.

     Parameters:
	 name The name of the option
	 opts Array of options that are	valid within this section
	 flags Flags, specify CFGF_MULTI if it should be possible
	 to have multiples of the same section,	and CFGF_TITLE if
	 the section(s)	must have a title (which can be	used in
	 the cfg_gettsec() function)

     Examples:
	 ftpconf.c, and	reread.c.

  #define CFG_SIMPLE_STR(name, svalue)	 __CFG_STR(name, 0,
     CFGF_NONE,	svalue,	0)
     Initialize	a 'simple' string option.

     As	of version 2.2,	libConfuse can now return the values of
     simple options with the cfg_get functions.	This allows using
     the new cfg_print function	with simple options.

     libConfuse	doesn't	support	handling default values	for
     'simple' options. They are	assumed	to be set by the calling
     application before	cfg_parse is called.

     Parameters:
	 name name of the option
	 svalue	pointer	to a character pointer (a char **). This
	 value must be initalized either to NULL or to a
	 malloc()'ed string. You can't use

	  char *user = 'joe';
	  ...



Version	2.6	    Last change: 29 Dec	2007			8






confuse						     confuse.h(3)



	  cfg_opt_t opts[] = {
	      CFG_SIMPLE_STR('user', &user),
	  ...


	  since	libConfuse will	try to free the	static string
	 'joe' (which is an error) when	a 'user' option	is found.
	 Rather, use the following code	snippet:

	  char *user = strdup('joe');
	  ...
	  cfg_opt_t opts[] = {
	       CFG_SIMPLE_STR('user', &user),
	  ...


	  Alternatively, the default value can be set after the
	 opts struct is	defined, as in:

	  char *user = 0;
	  ...
	  cfg_opt_t opts[] = {
	       CFG_SIMPLE_STR('user', &user),
	  ...
	  user = strdup('joe');
	  cfg =	cfg_init(opts, 0);
	  cfg_parse(cfg, filename);


     Examples:
	 simple.c.

Typedef	Documentation
  typedef int(*) cfg_callback_t(cfg_t *cfg, cfg_opt_t *opt, const
     char *value, void *result)
     Value parsing callback prototype.

     This is a callback	function (different from the one
     registered	with the CFG_FUNC initializer) used to parse a
     value. This can be	used to	override the internal parsing of
     a value.

     Suppose you want an integer option	that only can have
     certain values, for example 1, 2 and 3, and these should be
     written in	the configuration file as 'yes', 'no' and
     'maybe'. The callback function would be called with the
     found value ('yes', 'no' or 'maybe') as a string, and the
     result should be stored in	the result parameter.

     Parameters:
	 cfg The configuration file context.
	 opt The option.



Version	2.6	    Last change: 29 Dec	2007			9






confuse						     confuse.h(3)



	 value The value found in the configuration file.
	 result	Pointer	to storage for the result, cast	to a void
	 pointer.

     Returns:
	 On success, 0 should be returned. All other values
	 indicates an error, and the parsing is	aborted. The
	 callback function should notify the error itself, for
	 example by calling cfg_error().

  typedef void(*) cfg_free_func_t(void *value)
     User-defined memory release function for CFG_PTR values.

     This callback is used to free memory allocated in a value
     parsing callback function.	Especially useful for CFG_PTR
     options, since libConfuse will not	itself release such
     values. If	the values are simply allocated	with a malloc(3),
     one can use the standard free(3) function here.

  typedef int(*) cfg_func_t(cfg_t *cfg,	cfg_opt_t *opt,	int argc,
     const char	**argv)
     Function prototype	used by	CFGT_FUNC options.

     This is a callback	function, registered with the CFG_FUNC
     initializer. Each time libConfuse finds a function, the
     registered	callback function is called (parameters	are
     passed as strings,	any conversion to other	types should be
     made in the callback function). libConfuse	does not support
     any storage of the	data found; these are passed as
     parameters	to the callback, and it's the responsibility of
     the callback function to do whatever it should do with the
     data.

     Parameters:
	 cfg The configuration file context.
	 opt The option.
	 argc Number of	arguments passed. The callback function
	 is responsible	for checking that the correct number of
	 arguments are passed.
	 argv Arguments	as an array of character strings.

     Returns:
	 On success, 0 should be returned. All other values
	 indicates an error, and the parsing is	aborted. The
	 callback function should notify the error itself, for
	 example by calling cfg_error().

     See also:
	 CFG_FUNC

  typedef void(*) cfg_print_func_t(cfg_opt_t *opt, unsigned int
     index, FILE *fp)



Version	2.6	    Last change: 29 Dec	2007		       10






confuse						     confuse.h(3)



     Function prototype	used by	the cfg_print_ functions.

     This callback function is used to print option values. For
     options with a value parsing callback, this is often
     required, especially if a string is mapped	to an integer by
     the callback. This	print callback must then map the integer
     back to the appropriate string.

     Except for	functions, the print callback function should
     only print	the value of the option, not the name and the
     equal sign	(that is handled by the	cfg_opt_print function).
     For function options however, the name and	the parenthesis
     must be printed by	this function. The value to print can be
     accessed with the cfg_opt_get functions.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 index Index of	the value to get. Zero based.
	 fp File stream	to print to, use stdout	to print to the
	 screen.

     See also:
	 cfg_print, cfg_set_print_func

  typedef int(*) cfg_validate_callback_t(cfg_t *cfg, cfg_opt_t
     *opt)
     Validating	callback prototype.

     This callback function is called after an option has been
     parsed and	set. The function is called for	both fundamental
     values (strings, integers etc) as well as lists and
     sections. This can	for example be used to validate	that all
     required options in a section has been set	to sane	values.

     Returns:
	 On success, 0 should be returned. All other values
	 indicates an error, and the parsing is	aborted. The
	 callback function should notify the error itself, for
	 example by calling cfg_error().

     See also:
	 cfg_set_validate_func

Enumeration Type Documentation
  enum cfg_type_t
     Fundamental option	types.

     Enumerator:

     CFGT_INT
	  integer



Version	2.6	    Last change: 29 Dec	2007		       11






confuse						     confuse.h(3)



     CFGT_FLOAT
	  floating point number

     CFGT_STR
	  string

     CFGT_BOOL
	  boolean value

     CFGT_SEC
	  section

     CFGT_FUNC
	  function

     CFGT_PTR
	  pointer to user-defined value

Function Documentation
  DLLIMPORT void __export cfg_addlist (cfg_t * cfg, const char *
     name, unsigned int	nvalues,  ...)
     Add values	for a list option.

     The new values are	appended to any	current	values in the
     list.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 nvalues Number	of values to add.

  DLLIMPORT void __export cfg_error (cfg_t * cfg, const	char *
     fmt,  ...)
     Show a parser error.

     Any user-defined error reporting function is called.

     See also:
	 cfg_set_error_function

     Examples:
	 ftpconf.c.

  DLLIMPORT void __export cfg_free (cfg_t * cfg)
     Free a cfg_t context.

     All memory	allocated by the cfg_t context structure are
     freed, and	can't be used in any further cfg_* calls.

     Examples:
	 ftpconf.c, reread.c, and simple.c.




Version	2.6	    Last change: 29 Dec	2007		       12






confuse						     confuse.h(3)



  DLLIMPORT void __export cfg_free_value (cfg_opt_t * opt)
     Free the memory allocated for the values of a given option.

     Only the values are freed,	not the	option itself (it is
     freed by cfg_free()).

     See also:
	 cfg_free()

  DLLIMPORT cfg_bool_t __export	cfg_getbool (cfg_t * cfg, const
     char * name)
     Returns the value of a boolean option.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 The requested value is	returned. If the option	was not
	 set in	the configuration file,	the default value given
	 in the	corresponding cfg_opt_t	structure is returned. It
	 is an error to	try to get an option that isn't	declared.

     Examples:
	 ftpconf.c.

  DLLIMPORT double __export cfg_getfloat (cfg_t	* cfg, const char
     * name)
     Returns the value of a floating point option.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 The requested value is	returned. If the option	was not
	 set in	the configuration file,	the default value given
	 in the	corresponding cfg_opt_t	structure is returned. It
	 is an error to	try to get an option that isn't	declared.

  DLLIMPORT long int __export cfg_getint (cfg_t	* cfg, const char
     * name)
     Returns the value of an integer option.

     This is the same as calling cfg_getnint with index	0.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 The requested value is	returned. If the option	was not



Version	2.6	    Last change: 29 Dec	2007		       13






confuse						     confuse.h(3)



	 set in	the configuration file,	the default value given
	 in the	corresponding cfg_opt_t	structure is returned. It
	 is an error to	try to get an option that isn't	declared.

     Examples:
	 ftpconf.c, and	reread.c.

  DLLIMPORT cfg_bool_t __export	cfg_getnbool (cfg_t * cfg, const
     char * name, unsigned int index)
     Indexed version of	cfg_getbool(), used for	lists.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getbool

  DLLIMPORT double __export cfg_getnfloat (cfg_t * cfg,	const
     char * name, unsigned int index)
     Indexed version of	cfg_getfloat(),	used for lists.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getfloat

  DLLIMPORT long int __export cfg_getnint (cfg_t * cfg,	const
     char * name, unsigned int index)
     Indexed version of	cfg_getint(), used for lists.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getint

  DLLIMPORT cfg_t* __export cfg_getnsec	(cfg_t * cfg, const char
     * name, unsigned int index)
     Indexed version of	cfg_getsec(), used for sections	with the
     CFGF_MULTI	flag set.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 index Index of	the section to get. Zero based.



Version	2.6	    Last change: 29 Dec	2007		       14






confuse						     confuse.h(3)



     See also:
	 cfg_getsec

     Examples:
	 ftpconf.c, and	reread.c.

  DLLIMPORT char* __export cfg_getnstr (cfg_t *	cfg, const char	*
     name, unsigned int	index)
     Indexed version of	cfg_getstr(), used for lists.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getstr

     Examples:
	 ftpconf.c.

  DLLIMPORT cfg_opt_t* __export	cfg_getopt (cfg_t * cfg, const
     char * name)
     Return an option given it's name.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 Returns a pointer to the option. If the option	isn't
	 declared, libConfuse will print an error message and
	 return	0.

  DLLIMPORT void* __export cfg_getptr (cfg_t * cfg, const char *
     name)
     Returns the value of a user-defined option	(void pointer).

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 The requested value is	returned. If the option	was not
	 set in	the configuration file,	the default value given
	 in the	corresponding cfg_opt_t	structure is returned. It
	 is an error to	try to get an option that isn't	declared.

  DLLIMPORT cfg_t* __export cfg_getsec (cfg_t *	cfg, const char	*
     name)
     Returns the value of a section option.




Version	2.6	    Last change: 29 Dec	2007		       15






confuse						     confuse.h(3)



     The returned value	is another cfg_t structure that	can be
     used in following calls to	cfg_getint, cfg_getstr or other
     get-functions.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 The requested section is returned. If no section is
	 found with that name, 0 is returned. There can	only be
	 default values	for section without the	CFGF_MULTI flag
	 set. It is an error to	try to get a section that isn't
	 declared.

  DLLIMPORT char* __export cfg_getstr (cfg_t * cfg, const char *
     name)
     Returns the value of a string option.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Returns:
	 The requested value is	returned. If the option	was not
	 set in	the configuration file,	the default value given
	 in the	corresponding cfg_opt_t	structure is returned. It
	 is an error to	try to get an option that isn't	declared.

     Examples:
	 ftpconf.c, and	reread.c.

  DLLIMPORT cfg_t* __export cfg_gettsec	(cfg_t * cfg, const char
     * name, const char	* title)
     Return a section given the	title, used for	section	with the
     CFGF_TITLE	flag set.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 title The title of this section. The CFGF_TITLE flag
	 must have been	set for	this option.

     See also:
	 cfg_getsec

  DLLIMPORT int	__export cfg_include (cfg_t * cfg, cfg_opt_t *
     opt, int argc, const char ** argv)
     Predefined	include-function.

     This function can be used in the options passed to
     cfg_init()	to specify a function for including other



Version	2.6	    Last change: 29 Dec	2007		       16






confuse						     confuse.h(3)



     configuration files in the	parsing. For example:
     CFG_FUNC('include', &cfg_include)

     Examples:
	 ftpconf.c.

  DLLIMPORT cfg_t* __export cfg_init (cfg_opt_t	* opts,
     cfg_flag_t	flags)
     Create and	initialize a cfg_t structure.

     This should be the	first function called when setting up the
     parsing of	a configuration	file. The options passed in the
     first parameter is	initialized using the CFG_* initializers.
     The last option in	the option array must be CFG_END(),
     unless you	like segmentation faults.

     The options must no longer	be defined in the same scope as
     where the cfg_xxx functions are used (since version 2.3).

     Parameters:
	 opts An arrary	of options
	 flags One or more flags (bitwise or'ed	together).
	 Currently only	CFGF_NOCASE is available. Use 0	if no
	 flags are needed.

     Returns:
	 A configuration context structure. This pointer is
	 passed	to almost all other functions as the first
	 parameter.

     Examples:
	 ftpconf.c, reread.c, and simple.c.

  DLLIMPORT const char*	__export cfg_name (cfg_t * cfg)
     Return the	name of	a section.

     Parameters:
	 cfg The configuration file context.

     Returns:
	 Returns the title, or 0 if there is no	title. This
	 string	should not be modified.

     Examples:
	 ftpconf.c.

  DLLIMPORT cfg_bool_t __export	cfg_opt_getnbool (cfg_opt_t *
     opt, unsigned int index)
     Returns the value of a boolean option, given a cfg_opt_t
     pointer.





Version	2.6	    Last change: 29 Dec	2007		       17






confuse						     confuse.h(3)



     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getnbool

  DLLIMPORT double __export cfg_opt_getnfloat (cfg_opt_t * opt,
     unsigned int index)
     Returns the value of a floating point option, given a
     cfg_opt_t pointer.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getnfloat

  DLLIMPORT signed long	__export cfg_opt_getnint (cfg_opt_t *
     opt, unsigned int index)
     Returns the value of an integer option, given a cfg_opt_t
     pointer.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getnint

     Examples:
	 ftpconf.c.

  DLLIMPORT cfg_t* __export cfg_opt_getnsec (cfg_opt_t * opt,
     unsigned int index)
     Returns the value of a section option, given a cfg_opt_t
     pointer.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getnsec

     Examples:
	 ftpconf.c.



Version	2.6	    Last change: 29 Dec	2007		       18






confuse						     confuse.h(3)



  DLLIMPORT char* __export cfg_opt_getnstr (cfg_opt_t *	opt,
     unsigned int index)
     Returns the value of a string option, given a cfg_opt_t
     pointer.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 index Index of	the value to get. Zero based.

     See also:
	 cfg_getnstr

  DLLIMPORT cfg_t* __export cfg_opt_gettsec (cfg_opt_t * opt,
     const char	* title)
     Returns the value of a section option, given a cfg_opt_t
     pointer and the title.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 title The title of this section. The CFGF_TITLE flag
	 must have been	set for	this option.

     See also:
	 cfg_gettsec

  DLLIMPORT const char*	__export cfg_opt_name (cfg_opt_t * opt)
     Return the	name of	an option.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())

     Returns:
	 Returns the title, or 0 if there is no	title. This
	 string	should not be modified.

     Examples:
	 ftpconf.c.

  DLLIMPORT void __export cfg_opt_nprint_var (cfg_opt_t	* opt,
     unsigned int index, FILE *	fp)
     Default value print function.

     Print only	the value of a given option. Does not handle
     sections or functions. Use	cfg_opt_print to print the whole
     assignment	('option = value'), or cfg_print to print the
     whole config file.

     Parameters:
	 opt The option	structure (eg, as returned from



Version	2.6	    Last change: 29 Dec	2007		       19






confuse						     confuse.h(3)



	 cfg_getopt())
	 index The index in the	option value array that	should be
	 printed
	 fp File stream	to print to.

     See also:
	 cfg_print, cfg_opt_print

  DLLIMPORT void __export cfg_opt_print	(cfg_opt_t * opt, FILE *
     fp)
     Print an option and its value to a	file.

     If	a print	callback function is specified for the option, it
     is	used instead of	cfg_opt_nprint_var.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 fp File stream	to print to.

     See also:
	 cfg_print_func_t

  DLLIMPORT void __export cfg_opt_print_indent (cfg_opt_t * opt,
     FILE * fp,	int indent)
     Print an option and its value to a	file.

     Same as cfg_opt_print, but	with the indentation level
     specified.

     See also:
	 cfg_opt_print

  DLLIMPORT cfg_print_func_t __export cfg_opt_set_print_func
     (cfg_opt_t	* opt, cfg_print_func_t	pf)
     Set a print callback function for an option.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 pf The	print function callback.

     See also:
	 cfg_print_func_t

  DLLIMPORT void __export cfg_opt_setnbool (cfg_opt_t *	opt,
     cfg_bool_t	value, unsigned	int index)
     Set a value of a boolean option.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())



Version	2.6	    Last change: 29 Dec	2007		       20






confuse						     confuse.h(3)



	 value The value to set.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_opt_setnfloat (cfg_opt_t * opt,
     double value, unsigned int	index)
     Set a value of a floating point option.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 value The value to set.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_opt_setnint (cfg_opt_t * opt, long
     int value,	unsigned int index)
     Set a value of an integer option.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 value The value to set.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_opt_setnstr (cfg_opt_t * opt, const
     char * value, unsigned int	index)
     Set a value of a string option.

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())
	 value The value to set. Memory	for the	string is
	 allocated and the value is copied. Any	previous string
	 value is freed.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT unsigned int __export cfg_opt_size (cfg_opt_t * opt)
     Return the	number of values this option has.

     If	no default value is given for the option and no	value was
     found in the config file, 0 will be returned (ie, the option



Version	2.6	    Last change: 29 Dec	2007		       21






confuse						     confuse.h(3)



     value is not set at all).

     Parameters:
	 opt The option	structure (eg, as returned from
	 cfg_getopt())

     Examples:
	 ftpconf.c.

  DLLIMPORT int	__export cfg_parse (cfg_t * cfg, const char *
     filename)
     Parse a configuration file.

     Tilde expansion is	performed on the filename before it is
     opened. After a configuration file	has been initialized
     (with cfg_init()) and parsed (with	cfg_parse()), the values
     can be read with the cfg_getXXX functions.

     Parameters:
	 cfg The configuration file context as returned	from
	 cfg_init().
	 filename The name of the file to parse.

     Returns:
	 On success, CFG_SUCCESS is returned. If the file
	 couldn't be opened for	reading, CFG_FILE_ERROR	is
	 returned. On all other	errors,	CFG_PARSE_ERROR	is
	 returned and cfg_error() was called with a descriptive
	 error message.

     Examples:
	 ftpconf.c, reread.c, and simple.c.

  DLLIMPORT int	__export cfg_parse_boolean (const char * s)
     Parse a boolean option string.

     Accepted 'true' values are	'true',	'on' and 'yes',	and
     accepted 'false' values are 'false', 'off'	and 'no'.

     Returns:
	 Returns 1 or 0	(true/false) if	the string was parsed
	 correctly, or -1 if an	error occurred.

  DLLIMPORT int	__export cfg_parse_buf (cfg_t *	cfg, const char	*
     buf)
     Same as cfg_parse() above,	but takes a character buffer as
     argument.

     Parameters:
	 cfg The configuration file context as returned	from
	 cfg_init().
	 buf A zero-terminated string with configuration



Version	2.6	    Last change: 29 Dec	2007		       22






confuse						     confuse.h(3)



	 directives.

     See also:
	 cfg_parse()

     Examples:
	 reread.c.

  DLLIMPORT int	__export cfg_parse_fp (cfg_t * cfg, FILE * fp)
     Same as cfg_parse() above,	but takes an already opened file
     as	argument.

     Reading begins at the current position. After parsing, the
     position is not reset. The	caller is responsible for closing
     the file.

     Parameters:
	 cfg The configuration file context as returned	from
	 cfg_init().
	 fp An open file stream.

     See also:
	 cfg_parse()

  DLLIMPORT void __export cfg_print (cfg_t * cfg, FILE * fp)
     Print the options and values to a file.

     Note that options in any included file are	expanded and
     printed directly to the file. Option values given with
     environment variables in the parsed input are also	printed
     expanded. This means that if you parse a configuration file
     you can't expect that the output from this	function is
     identical to the initial file.

     Parameters:
	 cfg The configuration file context.
	 fp File stream	to print to, use stdout	to print to the
	 screen.

     See also:
	 cfg_print_func_t, cfg_set_print_func

     Examples:
	 simple.c.

  DLLIMPORT void __export cfg_print_indent (cfg_t * cfg, FILE *
     fp, int indent)
     Print the options and values to a file.

     Same as cfg_print,	but with the indentation level specified.





Version	2.6	    Last change: 29 Dec	2007		       23






confuse						     confuse.h(3)



     See also:
	 cfg_print

  DLLIMPORT cfg_errfunc_t __export cfg_set_error_function (cfg_t
     * cfg, cfg_errfunc_t errfunc)
     Install a user-defined error reporting function.

     Returns:
	 The old error reporting function is returned.

  DLLIMPORT cfg_print_func_t __export cfg_set_print_func (cfg_t	*
     cfg, const	char * name, cfg_print_func_t pf)
     Set a print callback function for an option given its name.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 pf The	print callback function.

     See also:
	 cfg_print_func_t

  DLLIMPORT cfg_validate_callback_t __export
     cfg_set_validate_func (cfg_t * cfg, const char * name,
     cfg_validate_callback_t vf)
     Register a	validating callback function for an option.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 vf The	validating callback function.

     See also:
	 cfg_validate_callback_t

     Examples:
	 ftpconf.c.

  DLLIMPORT void __export cfg_setbool (cfg_t * cfg, const char *
     name, cfg_bool_t value)
     Set the value of a	boolean	option given its name.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set. If the	option is a list (the
	 CFGF_LIST flag	is set), only the first	value (with index
	 0) is set.

  DLLIMPORT void __export cfg_setfloat (cfg_t *	cfg, const char	*
     name, double value)




Version	2.6	    Last change: 29 Dec	2007		       24






confuse						     confuse.h(3)



     Set the value of a	floating point option given its	name.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set. If the	option is a list (the
	 CFGF_LIST flag	is set), only the first	value (with index
	 0) is set.

  DLLIMPORT void __export cfg_setint (cfg_t * cfg, const char *
     name, long	int value)
     Set the value of an integer option	given its name.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set. If the	option is a list (the
	 CFGF_LIST flag	is set), only the first	value (with index
	 0) is set.

  DLLIMPORT void __export cfg_setlist (cfg_t * cfg, const char *
     name, unsigned int	nvalues,  ...)
     Set values	for a list option.

     All existing values are replaced with the new ones.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 nvalues Number	of values to set.

  DLLIMPORT void __export cfg_setnbool (cfg_t *	cfg, const char	*
     name, cfg_bool_t value, unsigned int index)
     Set a value of a boolean option given its name and	index.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_setnfloat	(cfg_t * cfg, const char
     * name, double value, unsigned int	index)
     Set a value of a floating point option given its name and
     index.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.



Version	2.6	    Last change: 29 Dec	2007		       25






confuse						     confuse.h(3)



	 value The value to set.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_setnint (cfg_t * cfg, const char *
     name, long	int value, unsigned int	index)
     Set a value of an integer option given its	name and index.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_setnstr (cfg_t * cfg, const char *
     name, const char *	value, unsigned	int index)
     Set a value of a boolean option given its name and	index.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set. Memory	for the	string is
	 allocated and the value is copied. Any	privious string
	 value is freed.
	 index The index in the	option value array that	should be
	 modified. It is an error to set values	with indices
	 larger	than 0 for options without the CFGF_LIST flag
	 set.

  DLLIMPORT void __export cfg_setstr (cfg_t * cfg, const char *
     name, const char *	value)
     Set the value of a	string option given its	name.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.
	 value The value to set. Memory	for the	string is
	 allocated and the value is copied. Any	previous string
	 value is freed. If the	option is a list (the CFGF_LIST
	 flag is set), only the	first value (with index	0) is
	 set.

     Examples:
	 simple.c.

  DLLIMPORT unsigned int __export cfg_size (cfg_t * cfg, const
     char * name)



Version	2.6	    Last change: 29 Dec	2007		       26






confuse						     confuse.h(3)



     Return the	number of values this option has.

     If	no default value is given for the option and no	value was
     found in the config file, 0 will be returned (ie, the option
     value is not set at all).

     Note that there is	no way to *not*	specify	a default value
     for integers, floats and booleans.	Ie, they always	have
     default values (since 0 or	NULL is	a valid
     integer/float/boolean value). Only	strings	and lists may
     have no default value.

     Parameters:
	 cfg The configuration file context.
	 name The name of the option.

     Examples:
	 ftpconf.c, and	reread.c.

  DLLIMPORT char* __export cfg_tilde_expand (const char	*
     filename)
     Does tilde	expansion (~ ->	$HOME) on the filename.

     Returns:
	 The expanded filename is returned. If a ~user was not
	 found,	the original filename is returned. In any case,	a
	 dynamically allocated string is returned, which should
	 be free()'d by	the caller.

  DLLIMPORT const char*	__export cfg_title (cfg_t * cfg)
     Return the	title of a section.

     Parameters:
	 cfg The configuration file context.

     Returns:
	 Returns the title, or 0 if there is no	title. This
	 string	should not be modified.

Author
     Generated automatically by	Doxygen	for confuse from the
     source code.

ATTRIBUTES
     See attributes(5) for descriptions	of the following
     attributes:









Version	2.6	    Last change: 29 Dec	2007		       27






confuse						     confuse.h(3)



     _______________________________________
    |	ATTRIBUTE TYPE	 |  ATTRIBUTE VALUE|
    |_______________________________________
    | Availability	 |  SUNWlibconfuse |
    |_______________________________________
    | Interface	Stability|  Uncommitted	   |
    |____________________|_________________|

NOTES
     Source for	libconfuse is available	at http://opensolaris.org
     and http://www.nongnu.org/confuse.












































Version	2.6	    Last change: 29 Dec	2007		       28



