X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=ll-merge.c;h=d65a8971db732782822feede96e02f86d336e547;hb=59b19bcd9ff8193c3197fb9e2f18ce85e4f86335;hp=5b8d46aedee72aab8b027cf4310b4234268965b6;hpb=968eecbd01e06aa8cae6c7fd8bf0a7b9bbd3b1fc;p=thirdparty%2Fgit.git diff --git a/ll-merge.c b/ll-merge.c index 5b8d46aede..d65a8971db 100644 --- a/ll-merge.c +++ b/ll-merge.c @@ -32,6 +32,20 @@ struct ll_merge_driver { char *cmdline; }; +static struct attr_check *merge_attributes; +static struct attr_check *load_merge_attributes(void) +{ + if (!merge_attributes) + merge_attributes = attr_check_initl("merge", "conflict-marker-size", NULL); + return merge_attributes; +} + +void reset_merge_attributes(void) +{ + attr_check_free(merge_attributes); + merge_attributes = NULL; +} + /* * Built-in low-levels */ @@ -354,7 +368,7 @@ int ll_merge(mmbuffer_t *result_buf, struct index_state *istate, const struct ll_merge_options *opts) { - static struct attr_check *check; + struct attr_check *check = load_merge_attributes(); static const struct ll_merge_options default_opts; const char *ll_driver_name = NULL; int marker_size = DEFAULT_CONFLICT_MARKER_SIZE; @@ -369,9 +383,6 @@ int ll_merge(mmbuffer_t *result_buf, normalize_file(theirs, path, istate); } - if (!check) - check = attr_check_initl("merge", "conflict-marker-size", NULL); - git_check_attr(istate, path, check); ll_driver_name = check->items[0].value; if (check->items[1].value) {