OSDN Git Service

config: create a function to format section headers
authorSahil Dua <sahildua2305@gmail.com>
Sun, 18 Jun 2017 21:16:31 +0000 (23:16 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 19 Jun 2017 04:47:47 +0000 (21:47 -0700)
Factor out the logic which creates section headers in the config file,
e.g. the 'branch.foo' key will be turned into '[branch "foo"]'.

This introduces no function changes, but is needed for a later change
which adds support for copying branch sections in the config file.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Sahil Dua <sahildua2305@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.c

index 146cb34..856e42e 100644 (file)
--- a/config.c
+++ b/config.c
@@ -2169,10 +2169,10 @@ static int write_error(const char *filename)
        return 4;
 }
 
-static int store_write_section(int fd, const char *key)
+static struct strbuf store_create_section(const char *key)
 {
        const char *dot;
-       int i, success;
+       int i;
        struct strbuf sb = STRBUF_INIT;
 
        dot = memchr(key, '.', store.baselen);
@@ -2188,6 +2188,15 @@ static int store_write_section(int fd, const char *key)
                strbuf_addf(&sb, "[%.*s]\n", store.baselen, key);
        }
 
+       return sb;
+}
+
+static int store_write_section(int fd, const char *key)
+{
+       int success;
+
+       struct strbuf sb = store_create_section(key);
+
        success = write_in_full(fd, sb.buf, sb.len) == sb.len;
        strbuf_release(&sb);