diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-09-08 21:35:58 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-09-08 21:35:58 -0700 |
commit | 24c88ad8d10c36f4cd2473e6199f901ac485d74e (patch) | |
tree | a3282fa401d31149bd9b34ccfb0951e9c7c8c342 | |
parent | Merge branch 'ls/packet-line-protocol-doc-fix' into maint (diff) | |
parent | merge: use string_list_split() in add_strategies() (diff) | |
download | tgif-24c88ad8d10c36f4cd2473e6199f901ac485d74e.tar.xz |
Merge branch 'rs/merge-add-strategies-simplification' into maint
A small code clean-up.
* rs/merge-add-strategies-simplification:
merge: use string_list_split() in add_strategies()
-rw-r--r-- | builtin/merge.c | 44 |
1 files changed, 10 insertions, 34 deletions
diff --git a/builtin/merge.c b/builtin/merge.c index b555a1bf9c..6ec3126db1 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -30,6 +30,7 @@ #include "fmt-merge-msg.h" #include "gpg-interface.h" #include "sequencer.h" +#include "string-list.h" #define DEFAULT_TWOHEAD (1<<0) #define DEFAULT_OCTOPUS (1<<1) @@ -712,42 +713,17 @@ static int count_unmerged_entries(void) return ret; } -static void split_merge_strategies(const char *string, struct strategy **list, - int *nr, int *alloc) -{ - char *p, *q, *buf; - - if (!string) - return; - - buf = xstrdup(string); - q = buf; - for (;;) { - p = strchr(q, ' '); - if (!p) { - ALLOC_GROW(*list, *nr + 1, *alloc); - (*list)[(*nr)++].name = xstrdup(q); - free(buf); - return; - } else { - *p = '\0'; - ALLOC_GROW(*list, *nr + 1, *alloc); - (*list)[(*nr)++].name = xstrdup(q); - q = ++p; - } - } -} - static void add_strategies(const char *string, unsigned attr) { - struct strategy *list = NULL; - int list_alloc = 0, list_nr = 0, i; - - memset(&list, 0, sizeof(list)); - split_merge_strategies(string, &list, &list_nr, &list_alloc); - if (list) { - for (i = 0; i < list_nr; i++) - append_strategy(get_strategy(list[i].name)); + int i; + + if (string) { + struct string_list list = STRING_LIST_INIT_DUP; + struct string_list_item *item; + string_list_split(&list, string, ' ', -1); + for_each_string_list_item(item, &list) + append_strategy(get_strategy(item->string)); + string_list_clear(&list, 0); return; } for (i = 0; i < ARRAY_SIZE(all_strategy); i++) |