summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinquize <linquize@yahoo.com.hk>2014-07-16 21:09:53 +0800
committerVicent Marti <tanoku@gmail.com>2014-08-05 02:09:29 +0200
commit190fe0726cd918a9650c73eddcf7b407304f7b6f (patch)
treeb271e1dbf7ccc0fc8ab158b2cf041953ec8d8bde
parentace6567146699af1524dcb9df397c14798be655a (diff)
downloadlibgit2-190fe0726cd918a9650c73eddcf7b407304f7b6f.tar.gz
Make sure \n is at the end of config file before a new section is written
-rw-r--r--src/config_file.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/config_file.c b/src/config_file.c
index 56271144..393a0b54 100644
--- a/src/config_file.c
+++ b/src/config_file.c
@@ -1522,6 +1522,9 @@ static int config_write(diskfile_backend *cfg, const char *key, const regex_t *p
git_filebuf_write(&file, reader->buffer.ptr, reader->buffer.size);
+ if (reader->buffer.size > 0 && *(reader->buffer.ptr + reader->buffer.size - 1) != '\n')
+ git_filebuf_write(&file, "\n", 1);
+
/* And now if we just need to add a variable */
if (!section_matches && write_section(&file, section) < 0)
goto rewrite_fail;
@@ -1536,9 +1539,6 @@ static int config_write(diskfile_backend *cfg, const char *key, const regex_t *p
}
/* If we are here, there is at least a section line */
- if (reader->buffer.size > 0 && *(reader->buffer.ptr + reader->buffer.size - 1) != '\n')
- git_filebuf_write(&file, "\n", 1);
-
q = quotes_for_value(value);
git_filebuf_printf(&file, "\t%s = %s%s%s\n", name, q, value, q);
}