summaryrefslogtreecommitdiff
path: root/src/diff_driver.c
Commit message (Collapse)AuthorAgeFilesLines
* Add config read fns with controlled error behaviorRussell Belfer2013-12-111-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | This adds `git_config__lookup_entry` which will look up a key in a config and return either the entry or NULL if the key was not present. Optionally, it can either suppress all errors or can return them (although not finding the key is not an error for this function). Unlike other accessors, this does not normalize the config key string, so it must only be used when the key is known to be in normalized form (i.e. all lower-case before the first dot and after the last dot, with no invalid characters). This also adds three high-level helper functions to look up config values with no errors and a fallback value. The three functions are for string, bool, and int values, and will resort to the fallback value for any error that arises. They are: * `git_config__get_string_force` * `git_config__get_bool_force` * `git_config__get_int_force` None of them normalize the config `key` either, so they can only be used for internal cases where the key is known to be in normal format.
* config: get_multivar -> get_multivar_foreachCarlos Martín Nieto2013-08-081-2/+2
| | | | | The plain function will return an iterator, so move this one out of the way.
* Fix warnings on Win64Russell Belfer2013-07-111-1/+1
|
* Diff hunk context off by one on long linesRussell Belfer2013-07-051-3/+4
| | | | | | | | | | | The diff hunk context string that is returned to xdiff need not be NUL terminated because the xdiff code just copies the number of bytes that you report directly into the output. There was an off by one in the diff driver code when the header context was longer than the output buffer size, the output buffer length included the NUL byte which was copied into the hunk header. Fixes #1710
* Fix Windows warningsRussell Belfer2013-06-121-2/+2
| | | | | This fixes problems with missing function prototypes and 64-bit data issues on Windows.
* Improvements to git_arrayRussell Belfer2013-06-121-1/+1
| | | | | | | This changes the size data to uint32_t, fixes the array growth logic to use a simple 1.5x multiplier, and uses a generic inline function for growing the array to make the git_array_alloc API feel more natural (i.e. it returns a pointer to the new item).
* Fix some diff driver memory leaksRussell Belfer2013-06-121-16/+20
|
* Add diff drivers tests (and fix bugs)Russell Belfer2013-06-111-25/+40
| | | | | This adds real tests for user-configured diff drivers and in the process found a bunch of bugs.
* Implement regex pattern diff driverRussell Belfer2013-06-111-46/+236
| | | | | | | This implements the loading of regular expression pattern lists for diff drivers that search for function context in that way. This also changes the way that diff drivers update options and interface with xdiff APIs to make them a little more flexible.
* start implementing diff driver registryRussell Belfer2013-06-101-4/+40
|
* Reorganize diff and add basic diff driverRussell Belfer2013-06-101-0/+160
This is a significant reorganization of the diff code to break it into a set of more clearly distinct files and to document the new organization. Hopefully this will make the diff code easier to understand and to extend. This adds a new `git_diff_driver` object that looks of diff driver information from the attributes and the config so that things like function content in diff headers can be provided. The full driver spec is not implemented in the commit - this is focused on the reorganization of the code and putting the driver hooks in place. This also removes a few #includes from src/repository.h that were overbroad, but as a result required extra #includes in a variety of places since including src/repository.h no longer results in pulling in the whole world.