summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinquize <linquize@yahoo.com.hk>2013-04-19 22:36:01 +0800
committerRussell Belfer <rb@github.com>2013-04-23 12:57:30 -0700
commita5df71c11fef996d67593546fa1edb2865e6a5d9 (patch)
tree278f59dc07ff30a0b03e62fd64b0c8997b7a87ce
parentbd0a07f4bb0b83a84127589f7385eb2309910b66 (diff)
downloadlibgit2-a5df71c11fef996d67593546fa1edb2865e6a5d9.tar.gz
Support diff.context config
-rw-r--r--src/diff.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/diff.c b/src/diff.c
index 37c89f3f1..e6f5374e7 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -267,6 +267,16 @@ static int config_bool(git_config *cfg, const char *name, int defvalue)
return val;
}
+static int config_int(git_config *cfg, const char *name, int defvalue)
+{
+ int val = defvalue;
+
+ if (git_config_get_int32(&val, cfg, name) < 0)
+ giterr_clear();
+
+ return val;
+}
+
static git_diff_list *git_diff_list_alloc(
git_repository *repo, const git_diff_options *opts)
{
@@ -306,7 +316,8 @@ static git_diff_list *git_diff_list_alloc(
if (opts == NULL) {
/* Make sure we default to 3 lines */
- diff->opts.context_lines = 3;
+ int context = config_int(cfg, "diff.context", 3);
+ diff->opts.context_lines = max(context, 0);
return diff;
}