From: Johannes Schindelin Date: Tue, 3 Apr 2018 16:28:14 +0000 (+0200) Subject: config --replace-all: avoid extra line breaks X-Git-Tag: v2.18.0-rc0~100^2~11 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/46fc89ce74b46e88764c796b3ab20d5ab90a5e96 config --replace-all: avoid extra line breaks When replacing multiple config entries at once, we did not re-set the flag that indicates whether we need to insert a new-line before the new entry. As a consequence, an extra new-line was inserted under certain circumstances. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/config.c b/config.c index 4c8571ab33..c55d6a564e 100644 --- a/config.c +++ b/config.c @@ -2617,6 +2617,7 @@ int git_config_set_multivar_in_file_gently(const char *config_filename, store.seen = 1; for (i = 0, copy_begin = 0; i < store.seen; i++) { + new_line = 0; if (store.offset[i] == 0) { store.offset[i] = copy_end = contents_sz; } else if (store.state != KEY_SEEN) { diff --git a/t/t1300-config.sh b/t/t1300-config.sh index cef816325b..8f37ffadb1 100755 --- a/t/t1300-config.sh +++ b/t/t1300-config.sh @@ -1588,7 +1588,7 @@ test_expect_success '--local requires a repo' ' test_expect_code 128 nongit git config --local foo.bar ' -test_expect_failure '--replace-all does not invent newlines' ' +test_expect_success '--replace-all does not invent newlines' ' q_to_tab >.git/config <<-\EOF && [abc]key QkeepSection