The conflib home page
Conflib is a C language library for handling simple or complex
and also flexible ascii configuration files. It has a rich set set of features.
Features
- very portable, automagically configured with
GNU autoconf.
- reasonable fast
- supports building as a shared library (whereever
GNU libtool
helps us).
- allows including of other configuration files.
- has a macro language
- can, if you wish, do interpretations on the values in the configuration
file, either at reading them or later whenever you choose to call the
interpreter. There's builtin support for:
- Environment variables: $NAME or $(NAME)
- C language escape sequences: \n, \007 etc
- tilde (~) interpretation: ~root or ~(root)
- conditionals ($[$TMP?$TMP:/etc]).
This list does not contain all possibilities :-), and anyway, you
can extend it easily.
- supports lots of data types, including
- strings.
- directory names (like strings, but always terminated with a slash).
- number.
- lists (the library will split up the input on certain configurable
separators).
- emurations (will accept only certain predefined values).
- bitfields (var=a|b|c)
- booleans
Documentation
It's written in
texinfo, but in it's current state not worth beeing printed on paper.
There's a HTML version, thanks
to texi2html.
Downloading conflib
The lastest release is
conflib-0.4.5.tar.gz.
Recent changes
- Version 0.4.5 - August 1998, Uwe Ohse
- a new type, bitfield, is supported.
- Stanzanames in brackets also work ([stanza]).
- "var ~= value" to force the interpretation of that value
(cl_getstanza and friends, not cl_assign oder cl_setvar).
- "append var = string-to-append" now supported, for strings
and directory names.
- "override var = new-value" now supported, for bitfields and lists
(otherwise the new value would be "or"ed or appended to the old
value).
- compiles on BeOS.
Future developement
- i want to get rid of the stupid limit of 1024 characters for
a input line.
- parts of the documentation still are written in the german
language, i should change that.
- write a decent documentation.