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
Flag | Description | Default behaviour |
---|---|---|
CFG_IGNORE_MULTI | Ignore multiple arguments for single option. | Multiple argument for single option causes CFG_ERROR_MULTI error. |
CFG_IGNORE_UNKNOWN | Ignore unknown options. | Unknown option causes CFG_ERROR_UNKNOWN error. |
CFG_PROCESS_FIRST | Process also the first argument on command line. | Processing of the first argument on command line is skipped. |
CFG_ADVANCED_LEFTOVERS | Advanced leftover arguments. | Leftover arguments are posixly correct. |
CFG_STRICT_LEFTOVERS | Strict leftover arguments initialization in file. | Leftover arguments initialization in file are normal (as-is). |
CFG_FILE_LINE_POS_USAGE | Line 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.