diff options
-rw-r--r-- | Documentation/technical/api-string-list.txt | 5 | ||||
-rw-r--r-- | builtin/commit.c | 3 | ||||
-rw-r--r-- | merge-recursive.c | 9 | ||||
-rw-r--r-- | string-list.c | 6 | ||||
-rw-r--r-- | string-list.h | 2 | ||||
-rw-r--r-- | submodule.c | 5 | ||||
-rw-r--r-- | transport.c | 4 |
7 files changed, 19 insertions, 15 deletions
diff --git a/Documentation/technical/api-string-list.txt b/Documentation/technical/api-string-list.txt index f1add51efe..d51a6579c8 100644 --- a/Documentation/technical/api-string-list.txt +++ b/Documentation/technical/api-string-list.txt @@ -68,6 +68,11 @@ Functions * General ones (works with sorted and unsorted lists as well) +`string_list_init`:: + + Initialize the members of the string_list, set `strdup_strings` + member according to the value of the second parameter. + `filter_string_list`:: Apply a function to each item in a list, retaining only the diff --git a/builtin/commit.c b/builtin/commit.c index f2d7979deb..5ed60364ce 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -420,8 +420,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, die(_("cannot do a partial commit during a cherry-pick.")); } - memset(&partial, 0, sizeof(partial)); - partial.strdup_strings = 1; + string_list_init(&partial, 1); if (list_paths(&partial, !current_head ? NULL : "HEAD", prefix, &pathspec)) exit(1); diff --git a/merge-recursive.c b/merge-recursive.c index 5814d056ff..1d332b8bbb 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2059,12 +2059,9 @@ void init_merge_options(struct merge_options *o) if (o->verbosity >= 5) o->buffer_output = 0; strbuf_init(&o->obuf, 0); - memset(&o->current_file_set, 0, sizeof(struct string_list)); - o->current_file_set.strdup_strings = 1; - memset(&o->current_directory_set, 0, sizeof(struct string_list)); - o->current_directory_set.strdup_strings = 1; - memset(&o->df_conflict_file_set, 0, sizeof(struct string_list)); - o->df_conflict_file_set.strdup_strings = 1; + string_list_init(&o->current_file_set, 1); + string_list_init(&o->current_directory_set, 1); + string_list_init(&o->df_conflict_file_set, 1); } int parse_merge_opt(struct merge_options *o, const char *s) diff --git a/string-list.c b/string-list.c index aabb25ef4c..db38b62b46 100644 --- a/string-list.c +++ b/string-list.c @@ -1,6 +1,12 @@ #include "cache.h" #include "string-list.h" +void string_list_init(struct string_list *list, int strdup_strings) +{ + memset(list, 0, sizeof(*list)); + list->strdup_strings = strdup_strings; +} + /* if there is no exact match, point to the index where the entry could be * inserted */ static int get_entry_index(const struct string_list *list, const char *string, diff --git a/string-list.h b/string-list.h index dd5e294465..494eb5d95d 100644 --- a/string-list.h +++ b/string-list.h @@ -18,6 +18,8 @@ struct string_list { #define STRING_LIST_INIT_NODUP { NULL, 0, 0, 0, NULL } #define STRING_LIST_INIT_DUP { NULL, 0, 0, 1, NULL } +void string_list_init(struct string_list *list, int strdup_strings); + void print_string_list(const struct string_list *p, const char *text); void string_list_clear(struct string_list *list, int free_util); diff --git a/submodule.c b/submodule.c index 48e3b44e21..c3a61e70f9 100644 --- a/submodule.c +++ b/submodule.c @@ -544,10 +544,7 @@ static int push_submodule(const char *path) int push_unpushed_submodules(unsigned char new_sha1[20], const char *remotes_name) { int i, ret = 1; - struct string_list needs_pushing; - - memset(&needs_pushing, 0, sizeof(struct string_list)); - needs_pushing.strdup_strings = 1; + struct string_list needs_pushing = STRING_LIST_INIT_DUP; if (!find_unpushed_submodules(new_sha1, remotes_name, &needs_pushing)) return 1; diff --git a/transport.c b/transport.c index 3e425709fd..80ed1262c2 100644 --- a/transport.c +++ b/transport.c @@ -1176,10 +1176,8 @@ int transport_push(struct transport *transport, if ((flags & (TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND | TRANSPORT_RECURSE_SUBMODULES_CHECK)) && !is_bare_repository()) { struct ref *ref = remote_refs; - struct string_list needs_pushing; + struct string_list needs_pushing = STRING_LIST_INIT_DUP; - memset(&needs_pushing, 0, sizeof(struct string_list)); - needs_pushing.strdup_strings = 1; for (; ref; ref = ref->next) if (!is_null_sha1(ref->new_sha1) && find_unpushed_submodules(ref->new_sha1, |