mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-09 05:28:34 +00:00
diff: allow asking for diffs with no context
Previously, 0 meant default. This is problematic, as asking for 0 context lines is a valid thing to do. Change GIT_DIFF_OPTIONS_INIT to default to three and stop treating 0 as a magic value. In case no options are provided, make sure the options in the diff object default to 3.
This commit is contained in:
parent
0887b580bf
commit
1aa5318a9e
@ -289,7 +289,7 @@ typedef struct {
|
||||
} git_diff_options;
|
||||
|
||||
#define GIT_DIFF_OPTIONS_VERSION 1
|
||||
#define GIT_DIFF_OPTIONS_INIT {GIT_DIFF_OPTIONS_VERSION}
|
||||
#define GIT_DIFF_OPTIONS_INIT {GIT_DIFF_OPTIONS_VERSION, GIT_DIFF_NORMAL, 3}
|
||||
|
||||
/**
|
||||
* When iterating over a diff, callback that will be made per file.
|
||||
|
@ -291,8 +291,11 @@ static git_diff_list *git_diff_list_alloc(
|
||||
* - diff.noprefix
|
||||
*/
|
||||
|
||||
if (opts == NULL)
|
||||
if (opts == NULL) {
|
||||
/* Make sure we default to 3 lines */
|
||||
diff->opts.context_lines = 3;
|
||||
return diff;
|
||||
}
|
||||
|
||||
memcpy(&diff->opts, opts, sizeof(git_diff_options));
|
||||
|
||||
|
@ -202,7 +202,7 @@ static void setup_xdiff_options(
|
||||
memset(param, 0, sizeof(xpparam_t));
|
||||
|
||||
cfg->ctxlen =
|
||||
(!opts || !opts->context_lines) ? 3 : opts->context_lines;
|
||||
(!opts) ? 3 : opts->context_lines;
|
||||
cfg->interhunkctxlen =
|
||||
(!opts) ? 0 : opts->interhunk_lines;
|
||||
|
||||
|
@ -10,6 +10,8 @@ static diff_expects expect;
|
||||
void test_diff_tree__initialize(void)
|
||||
{
|
||||
GIT_INIT_STRUCTURE(&opts, GIT_DIFF_OPTIONS_VERSION);
|
||||
/* The default context lines is set by _INIT which we can't use here */
|
||||
opts.context_lines = 3;
|
||||
|
||||
memset(&expect, 0, sizeof(expect));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user