- 23 Apr, 2015 1 commit
-
-
Edward Thomson committed
-
- 20 Apr, 2015 2 commits
-
-
Don't assume that comment chars are comment chars, they may be (an attempt to be escaped). If so, \; is not a valid escape sequence, complain.
Edward Thomson committed -
Combine unquoting and multiline detection to avoid ambiguity when parsing.
Edward Thomson committed
-
- 10 Apr, 2015 1 commit
-
-
The regcomp function returns a non-zero value if compilation of a regular expression fails. In most places we only check for negative values, but positive values indicate an error, as well. Fix this tree-wide, fixing a segmentation fault when calling git_config_iterator_glob_new with an invalid regexp.
Patrick Steinhardt committed
-
- 03 Mar, 2015 1 commit
-
-
This changes the get_entry() method to return a refcounted version of the config entry, which you have to free when you're done. This allows us to avoid freeing the memory in which the entry is stored on a refresh, which may happen at any time for a live config. For this reason, get_string() has been forbidden on live configs and a new function get_string_buf() has been added, which stores the string in a git_buf which the user then owns. The functions which parse the string value takea advantage of the borrowing to parse safely and then release the entry.
Carlos Martín Nieto committed
-
- 14 Jan, 2015 1 commit
-
-
Carlos Martín Nieto committed
-
- 11 Dec, 2013 1 commit
-
-
This changes the behavior of callbacks so that the callback error code is not converted into GIT_EUSER and instead we propagate the return value through to the caller. Instead of using the giterr_capture and giterr_restore functions, we now rely on all functions to pass back the return value from a callback. To avoid having a return value with no error message, the user can call the public giterr_set_str or some such function to set an error message. There is a new helper 'giterr_set_callback' that functions can invoke after making a callback which ensures that some error message was set in case the callback did not set one. In places where the sign of the callback return value is meaningful (e.g. positive to skip, negative to abort), only the negative values are returned back to the caller, obviously, since the other values allow for continuing the loop. The hardest parts of this were in the checkout code where positive return values were overloaded as meaningful values for checkout. I fixed this by adding an output parameter to many of the internal checkout functions and removing the overload. This added some code, but it is probably a better implementation. There is some funkiness in the network code where user provided callbacks could be returning a positive or a negative value and we want to rely on that to cancel the loop. There are still a couple places where an user error might get turned into GIT_EUSER there, I think, though none exercised by the tests.
Russell Belfer committed
-
- 14 Nov, 2013 1 commit
-
-
Ben Straub committed
-
- 01 Oct, 2013 2 commits
- 07 Sep, 2013 1 commit
-
-
When two or more variables of the same name exist and the user asks for a scalar, we must return the latest value assign to it.
Carlos Martín Nieto committed
-
- 12 Aug, 2013 2 commits
-
-
Carlos Martín Nieto committed
-
As the name suggests, it iterates over all the entries
Carlos Martín Nieto committed
-
- 07 Aug, 2013 1 commit
-
-
Parse config headers that have the last quote on the line quoted instead of walking off the end.
Edward Thomson committed
-
- 07 May, 2013 1 commit
-
-
When a repository is initialised, we need to probe to see if there is a global config to load. If this is not the case, the user isn't able to write to the global config without creating the backend and adding it themselves, which is inconvenient and overly complex. Unconditionally create and add a backend for the global config file regardless of whether it exists as a convenience for users. To enable this, we allow creating backends to files that do not exist yet, changing the semantics somewhat, and making some tests invalid.
Carlos Martín Nieto committed
-
- 25 Jan, 2013 1 commit
-
-
Replaced all cl_assert(!strcmp()) or semantically equivalent forms by cl_assert_equal_s().
Sebastian Bauer committed
-
- 03 Jan, 2013 3 commits
-
-
Vicent Marti committed
-
Ben Straub committed
-
Ben Straub committed
-
- 18 Nov, 2012 2 commits
-
-
Michael Schubert committed
-
nulltoken committed
-
- 13 Nov, 2012 3 commits
-
-
Returning NULL for the string when we haven't signaled an error condition is counter-intuitive and causes unnecessary edge cases. Return an empty string when asking for a string value for a configuration variable such as '[section] var' to avoid these edge cases. If the distinction between no value and an empty value is needed, this can be retrieved from the entry directly. As a side-effect, this change stops the int parsing functions from segfaulting on such a variable.
Carlos Martín Nieto committed -
'[section] variable' and '[section] variable =' behave differently when parsed as booleans, so we need to store that distinction internally.
Carlos Martín Nieto committed -
We're already in the git_config namespace, there is no need to repeat it.
Carlos Martín Nieto committed
-
- 23 Oct, 2012 1 commit
-
-
Added `struct git_config_entry`: a git_config_entry contains the key, the value, and the config file level from which a config element was found. Added `git_config_open_level`: build a single-level focused config object from a multi-level one. We are now storing `git_config_entry`s in the khash of the config_file
yorah committed
-
- 12 Aug, 2012 1 commit
-
-
The config file parser was not working right if there was no whitespace between the value name and the equals sign. This fixes that.
Russell Belfer committed
-
- 04 Aug, 2012 1 commit
-
-
This updates all the `foreach()` type functions across the library that take callbacks from the user to have a consistent behavior. The rules are: * A callback terminates the loop by returning any non-zero value * Once the callback returns non-zero, it will not be called again (i.e. the loop stops all iteration regardless of state) * If the callback returns non-zero, the parent fn returns GIT_EUSER * Although the parent returns GIT_EUSER, no error will be set in the library and `giterr_last()` will return NULL if called. This commit makes those changes across the library and adds tests for most of the iteration APIs to make sure that they follow the above rules.
Russell Belfer committed
-
- 11 Jul, 2012 1 commit
-
-
Adding a new config iteration function that let's you iterate over just the config entries that match a particular regular expression. The old foreach becomes a simple use of this with an empty pattern. This also fixes an apparent bug in the existing `git_config_foreach` where returning a non-zero value from the iteration callback was not correctly aborting the iteration and the returned value was not being propogated back to the caller of foreach. Added to tests to cover all these changes.
Russell Belfer committed
-
- 17 May, 2012 1 commit
-
-
Vicent Martí committed
-
- 02 May, 2012 1 commit
-
-
Vicent Martí committed
-
- 25 Apr, 2012 1 commit
-
-
This limitation was a misparsing of the documentation.
Carlos Martín Nieto committed
-
- 01 Apr, 2012 1 commit
-
-
Ben Straub committed
-
- 25 Jan, 2012 1 commit
-
-
Clay is the name of a programming language on the makings, and we want to avoid confusions. Sorry for the huge diff!
Vicent Martí committed
-
- 26 Nov, 2011 1 commit
-
-
The ownership semantics have been changed all over the library to be consistent. There are no more "borrowed" or duplicated references. Main changes: - `git_repository_open2` and `3` have been dropped. - Added setters and getters to hotswap all the repository owned objects: `git_repository_index` `git_repository_set_index` `git_repository_odb` `git_repository_set_odb` `git_repository_config` `git_repository_set_config` `git_repository_workdir` `git_repository_set_workdir` Now working directories/index files/ODBs and so on can be hot-swapped after creating a repository and between operations. - All these objects now have proper ownership semantics with refcounting: they all require freeing after they are no longer needed (the repository always keeps its internal reference). - Repository open and initialization has been updated to keep in mind the configuration files. Bare repositories are now always detected, and a default config file is created on init. - All the tests affected by these changes have been dropped from the old test suite and ported to the new one.
Vicent Marti committed
-