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 <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2018-04-03 18:28:14 +02:00 committed by Junio C Hamano
parent e9313952bf
commit 46fc89ce74
2 changed files with 2 additions and 1 deletions

View File

@ -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) {

View File

@ -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