summaryrefslogtreecommitdiffstats
path: root/ini/ini_parse_ut.c
Commit message (Collapse)AuthorAgeFilesLines
* Adding missing constDmitri Pal2011-01-031-1/+1
| | | | One liner to eliminate compilation warning.
* Correcting paths to test filesDmitri Pal2010-12-211-14/+6
| | | | | | | | The paths to test files did not work in parallel build or 'make diskcheck' cases. Now they are corrected. All temp files are created in the build directory and read from there.
* Allow merging valuesDmitri Pal2010-12-211-0/+203
| | | | | | | | | | | | | | | | This patch is the first pass at merging functionality. It implements merging of values that belong to the same section. Patch includes: * Definition of merge flags in doxy format * Definition of the masks in internal header * Changes to parser to handle the merging of values. * Also swithed parser to not use ini_config.h as I want to switch implementation of the current interface to new interface at some point. * New unit test was created. * New config file for this unit test was added to ini.d Main code changes are in ini_parse.c
* New copy and folding functionalityDmitri Pal2010-12-211-38/+91
| | | | | | | | | | | | | | | | * Added method to copy configuration. * Added unit test for it. * Added method to reset boandary for the whole configuration. * Added unit test for it. * Unit test now can read a file save it read again and save. Both saves produce same files! * Reworked the way the parser was dealing with empty lines. It was sutting off the value in the middle if the folded line consisted of just spaces.
* Fix overflow in ini_parse unit testSumit Bose2010-09-231-3/+2
|
* Introducing configuration file objectDmitri Pal2010-09-221-19/+24
| | | | | | | | The patch contains two major pieces of work: * The beginning of the new INI interface significantly re-thought and reworked. * The implementation of the file object. Parsing was adjusted to use this object.
* Starting to consolidate the new interface in one placeDmitri Pal2010-09-221-3/+2
| | | | | | | | | | I realized that the new high level interface should be defined in one file instead of being scattered in many headers. I would have to eventuallu eliminate ini_configobj.h too and move everything to the new interface in ini_config.h. This patch renames couple functions to be consistent with the naming convention and removes ini_parse.h header.
* New INI parserDmitri Pal2010-09-221-0/+209
The parser is added to the existing module. The old parsing functuion will be removed when we switch to the new interface. Parser logic: * There is one high level function that wraps the parser interface. It is at the bottom of the module. ini_parse_config(); * Internally it creates a perser object and then runs parser on it. * At the end parser object is destroyed. * This object stores the state of the parser. * The parser has an action queue * There are several actions that parser can perform - read line - inspect read line - record an error - process last comment in the file (POST) * Each action handler determines what to do next depending upon what has happened. * Read handler reads lines and enqueues inspection action in case of success or error action in case of failure. * Inspection action parses last read line and treats it either is a: * Comment * Section * New key + value * Continuation of the value In case of error the error action is enqueued. * Error can be fatal or non fatal. It depend on the error_level flag passed in. If the error is non fatal the read action is enqueued otherwise parser stops. * The POST action is a special action to handle comment at the bottom of the file. The comment is stored with the value it preceeds so in case there is a comment at the bottom of the file a special value needs to be created to hold just the comment.