Canfigger is a lightweight C language library designed to parse configuration files. It provides functionality to read them and represent their contents as a linked list of key-value pairs, along with associated attributes for each pair.
The following config file example represents the format handled by canfigger:
foo = bar
blue = color, shiny
statement = hello world, obvious
# An option with no value or attributes
FeatureFooEnabled
# key, value with 2 attributes
dhcp-range = 192.168.0.50, 192.168.0.150, 12
# key, value with 9 attributes
solar_system = sun, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Neptune, Uranus, Pluto
You can change the attribute delimiter character by passing it as the second argument:
canfigger_parse_file(filename_ptr, ':');
Canfigger provides helpers for locating standard per-user paths on Linux (XDG), macOS, and Windows:
canfigger_config_dir(appname)— returns the per-application config directory ($XDG_CONFIG_HOME/appnameor$HOME/.config/appname)canfigger_data_dir(appname)— returns the per-application data directory ($XDG_DATA_HOME/appnameor$HOME/.local/share/appname)canfigger_config_file(filename)— returns a path directly under the base config directory, without an application subdirectory ($XDG_CONFIG_HOME/filenameor$HOME/.config/filename); useful when the config file lives at the config root rather than in a per-application subdirectorycanfigger_path_join(dir, file)— joins a directory and filename with the platform separator
See the API documentation for details.
None
meson setup _build
cd _build
ninja
For configuration options, use meson configure (see the Meson
docs for detailed usage).
meson test (-v)
Example programs will be built when you run ninja. If you want to try them
with a different config file, give them the name of a config file as an
argument.