Context flags

For setting particular context flages there are these functions:

#include <cfg+.h>

void cfg_set_context_flag(const CFG_CONTEXT con, int flag);

void cfg_clear_context_flag(const CFG_CONTEXT con, int flag);

int cfg_get_context_flag(const CFG_CONTEXT con, int flag);

int cfg_is_context_flag(const CFG_CONTEXT con, int flag);

void cfg_set_context_flags(const CFG_CONTEXT con, int flags);

int cfg_get_context_flags(const CFG_CONTEXT con, int flags);

These functions and macros manipulate with context flags. The function cfg_set_context_flag() sets one particular context flag. Similary, function cfg_clear_context_flag() clears one context flags. Functions cfg_get_context_flag() and its macro alias cfg_is_context_flag() which is indentical in every way, detect if particular context flag is set.

Remaining two functions cfg_set_context_flags() and cfg_get_context_flags() can set and get all flags in one call. Note that when you set flags with cfg_set_context_flags() current flag state of context is overwritten by flags parameter passed to this function.

List of setable context flags described in following table.

Table 2-3. Context flags

FlagDescriptionDefault behaviour
CFG_IGNORE_MULTIIgnore multiple arguments for single option.Multiple argument for single option causes CFG_ERROR_MULTI error.
CFG_IGNORE_UNKNOWNIgnore unknown options.Unknown option causes CFG_ERROR_UNKNOWN error.
CFG_PROCESS_FIRSTProcess also the first argument on command line.Processing of the first argument on command line is skipped.
CFG_ADVANCED_LEFTOVERSAdvanced leftover arguments.Leftover arguments are posixly correct.
CFG_STRICT_LEFTOVERSStrict leftover arguments initialization in file.Leftover arguments initialization in file are normal (as-is).
CFG_FILE_LINE_POS_USAGELine type position usage in file.Byte type position usage in file.

If you have flag set and want to get again default behaviour, simply clear flag with cfg_clear_context_flag() function.