summaryrefslogtreecommitdiffstats
path: root/ini
Commit message (Collapse)AuthorAgeFilesLines
* INI: Remove dead codeOndrej Kos2013-04-051-6/+1
| | | | | | | | https://fedorahosted.org/sssd/ticket/1857 Discovered by coverity The code was inaccessibile, if no key is present, the error will occur before this check.
* Remove spurious castJakub Hrozek2013-03-291-1/+1
|
* Expose collected stat dataDmitri Pal2013-01-283-0/+45
| | | | | Added a new top level interface funtion and a unit test for it.
* Check is the stats we collectedDmitri Pal2013-01-283-0/+45
| | | | | This patch corrects a problem related to stats being accessed and evaluated without being initialized.
* Unit test for parsing flags.Dmitri Pal2013-01-242-0/+88
| | | | Added unit test.
* More interface refactoringDmitri Pal2013-01-246-174/+171
| | | | | | | | | | | | | | | | | I also realized that error list processing should not be bound to the file object. This patch corrects that by moving the error_list and corresponding count from file object to the config object. Things updated by the patch: 1. The internal variables are moved from file obj to config obj. 2. The external header is updated to reflect the change 3. Functions are moved from file obj module to config obj module. 4. Parser code is updated because error validation was in the wrong place 5. Unit test is adjusted to get error list from the right object. I had to adjust the copy function for the config object. Copy function does not copy over the error list.
* Introducing parsing flagsDmitri Pal2013-01-244-65/+187
| | | | | | | | | | | | | | | | 1. Added definition of the parsing flags to the header. 2. Added new argument to the parser. 3. Added function to check the correctness of the line. 4. Added new constants and strings for errors. 5. Refactored function that handles spaces. 6. Moved handle_space since it now calls handle_kvp. 7. Updated handle_kvp to trim spaces at the beginning. 8. Adjusted line inspection to handle any space character. 9. Adjusted exising unit tests. Added parameter to the call. 10. Found couple places where there was a space at the end of the line and cleaned them. The additional unit tests will be added in the follow up patch.
* Refactor interface a bitDmitri Pal2013-01-246-90/+89
| | | | | | | | | | | | | | | | | After some evaluation it became apparent that error level and collision flags should not be a part of the fileobj but rather passed directly to the parser function. This way the interface is more clean and logical. This patch: 1) Removes the error level and collision flags from the fileobj 2) Moves validation function from ini_fileobj.c to ini_configobj.c where it belongs. 3) Moves error level and collision flags arguments from file open function to the parser function. 4) The internals of the file obj are cleaned 5) Validation of the arguments is moved to parser function. 6) Unit tests are updated.
* Replacing sprintf with snprintfDmitri Pal2013-01-244-50/+68
| | | | | | | | Replaced sprintf in the unit test. Defined constants for sizes and used them. Wrpapped lines where noticed that they are longer than 80. Added comments to the places where sprintf is still used but it is safe to use.
* Fixing headersDmitri Pal2013-01-2419-44/+19
| | | | | | | Move GNU_SOUCE definition to configure.ac Change all headers to use config.h. Move config.h to the top. Remove errno.h if it is not needed.
* Use ENOMEM instead of errnoDmitri Pal2013-01-245-41/+18
| | | | | Reviewed all uses or errno. Cleaned places that needed cleaning. Did not remove <errno.h> yet where it is not needed.
* Converting errors to enumDmitri Pal2013-01-241-32/+25
| | | | | Patch converts error and error level to enum instead of defines.
* Add INI_GET_LAST_VALUEDmitri Pal2013-01-073-8/+44
| | | | | Refactored the defines to enum. Added support for fetching last value from the section.
* Fix CLANG errors in unit testDmitri Pal2013-01-073-9/+7
|
* Fixing coverity issue 13105Dmitri Pal2012-12-121-2/+2
|
* Update unit testsDmitri Pal2012-12-061-6/+368
| | | | | | The parser unit test have been updated to execute the changes in the parser code. A new test was added to execute merge code in all possible modes.
* Update files used in the unit testDmitri Pal2012-12-064-105/+655
|
* Update comments in the public interfaceDmitri Pal2012-12-061-2/+7
|
* Improve parserDmitri Pal2012-12-065-34/+98
| | | | | | | | | | | | | | | | | | 1. Move the last comment into the config object Last comment in the file was previously treated as a special value in the last section in the configuration object. That created difficulties while merging. Storing an orphan comment as part of the config object is a better approach 2. Since the structure of the config object changed the internal header and serialization required update. 3. Parser code was updated to: - deal with the last comment on the top level - make sure the right error codes are returned in different modes - pass right information through the layers which caused some refactoring of the internal calls - prevent using an already used configuration object as an input to parser.
* Ability to merge configurationsDmitri Pal2012-12-061-5/+581
| | | | This patch adds capability to merge two configuration objects.
* Fix trace messageDmitri Pal2012-12-061-1/+1
|
* Merge comments from different valuesDmitri Pal2012-12-063-35/+134
| | | | | Patch allows merging comments that are part of the two different value objects. The values are not merged.
* Merge and serialize commentsDmitri Pal2012-12-063-2/+246
| | | | | | Patch adds ability to combine two different comments into one. It includes changes to the comment API, header file and unit test. It also fixes an invalid free in one of the error cases.
* Remove code that allows dup sectionsDmitri Pal2012-12-065-201/+30
| | | | | | | | | | | | Duplicate sections in the config tree is a bad idea. After more evaluation I decided to not allow more than one section with the same name to be acceptable in the resulting object. All duplicate sections need to be processed so that only one section is left as a result. The collision flags control that. It is OK to remove it as this code has not been released yet. I also spotted that unit test does not exit if the system() call was successful but the command it invoked was not. Fixed that. Also fixed couple spelling mistakes here and there.
* Clean doxygen configurationsDmitri Pal2012-10-241-34/+1
| | | | | The doxygen files contained some deprecated values and typos. This patch cleans them for all interfaces exposed by ding libs.
* Fix doxygen warnings for the interfaceDmitri Pal2012-10-241-49/+50
| | | | This patch fixes the doxygen warnings in the new interface.
* Fixing coverity issue 11089Dmitri Pal2012-10-171-1/+1
| | | | Pointer was not initialized before being read.
* Build docs for new interfaceDmitri Pal2012-10-171-1/+1
| | | | | This patch stops building interface docs for the old interface and starts generating description for the new interface.
* Added new tests for the multi value keysDmitri Pal2012-10-172-0/+1136
|
* The implementation of the new interfaceDmitri Pal2012-10-173-0/+1319
| | | | | | | | | The three files in the patch implement the functions of the new interface. It is mostly inspired by the old interface except that the string value is replaced with the value object that hides all the metadata about the value itself. The main function to get value now allows more than one value per key.
* Add a search state to the config objectDmitri Pal2012-10-172-0/+40
| | | | | | | The search state allows one to search a configuration object for the same key in the cases when a key permits more than one value scattered across the config file. The state needs to be stored, initialized and properly cleaned.
* Definition of the new INI interfaceDmitri Pal2012-10-171-206/+789
| | | | | | | | Some time ago I started the new INI interface that exists in parallel to the existing interface but uses value object to store value rather than just strings. The header has all the details about the new interface.
* Adding couple functions to value objectDmitri Pal2012-10-173-1/+85
| | | | | | | | | The patch adds function to get the length of the concatenated value. It also adds a convenince print function that is convenint in debugging the values inside configuration object. Patch also add checkes for input values that can be passed by pointer.
* Fix permission checking unit testStephen Gallagher2012-10-173-38/+159
| | | | | | | | | The unit test was broken. The wrong function was used. To make sure everything is correct I also added a convenience function to print the internals if the file context object. The unit test is fixed to use relative paths consitently. Also added nice statements at the beggining and the end of the unit test functions where they were missing.
* Properly handle file permissions for ini_parse_ut startup_test()Stephen Gallagher2012-05-151-17/+6
|
* Fix issue when running make distcheckStephen Gallagher2012-05-152-11/+5
| | | | | | | | When running 'make distcheck', all files in the $srcdir are set to read-only, to ensure that the build does not modify the source. However, this broke our ability to test file permissions. We will now copy the file to the builddir and do the tests there, where we have control.
* Exposing functionsDmitri Pal2012-04-053-2/+10
| | | | | This patch makes two internal functions resusable from different source modules.
* Initialize variables in loopsDmitri Pal2012-04-053-1/+8
| | | | | | | | | It occured to me that one of the issues that Coverity did not like (and I could not understand what it is complaining about) is related to intializing the variables in the loop. This patch adds initialization in the loops. Also there was an initialization missing in the ini_configobj.c
* Rename error print functionDmitri Pal2012-04-053-10/+6
| | | | | | | | | | All config file processing functions start with "ini_config". The only function that does not comply is ini_print_errors. We can't rename it since it is a part of the current active interface. I marked that function needs to be removed when we remove old interface and created a copy with the correct name. I also updated unit test accordingly.
* Tests for access and changesDmitri Pal2012-04-051-0/+283
| | | | | Patch adds two functions. One tests permissions, another validates if the file has changed or not.
* Function to check for changesDmitri Pal2012-04-052-2/+36
| | | | Added function to detect changes to the configuration file.
* Check access functionDmitri Pal2012-04-052-0/+110
| | | | | | Added check access constants and the check access function. The function is effectively copied from ini_metadata.c The flags are copied from ini_config.h
* Metadata collection is goneDmitri Pal2012-04-053-77/+76
| | | | | | | | | | | | After some more thinking I decided not to use metadata collection. It seems to be an overhead. Patch does following: * Replaces metadata collection in file context structure with standard file stats * Removes all operations against old metadata collection * Defines new flags for data to collect * Creates a function that consolidates common operations between open and reopen functions.
* Function to reopen fileDmitri Pal2012-04-052-0/+89
| | | | | This patch would allow to reopen file and create a new context based on the old one.
* Separate close and destroyDmitri Pal2012-04-053-12/+31
| | | | Allow closing file without destroying the context.
* Fix indentention in the switch statementDmitri Pal2012-04-051-11/+20
| | | | Spotted style violation.
* Test for all section merge modesDmitri Pal2012-04-051-13/+201
| | | | | | New test reads smerge.conf in all possible modes and compares the combined result with the sexpect.conf function.
* Test DETECT mode and use new fileDmitri Pal2012-04-051-7/+23
| | | | | | Patch adds smerge.conf file to the list of files to test and adds test for the DETECT mode for inidividual values.
* New test files for section mergeDmitri Pal2012-04-052-0/+677
| | | | | | | smerge.conf - test file sexpect.conf - file contains output of the smerge.conf processed in different merge modes for sections and values
* Return error in DETECT modeDmitri Pal2012-04-051-0/+11
| | | | | If in merge DETECT mode and there were no parsing errors return error if there were merge collisions.