Merge branch 'ta/string-list-init'
authorJunio C Hamano <gitster@pobox.com>
Wed, 23 Jul 2014 18:35:54 +0000 (11:35 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Jul 2014 18:35:54 +0000 (11:35 -0700)
* ta/string-list-init:
replace memset with string-list initializers
string-list: add string_list initializer helper function

Documentation/technical/api-string-list.txt
builtin/commit.c
merge-recursive.c
string-list.c
string-list.h
submodule.c
transport.c
index f1add51efeefb31e1da96a5ee62871e239819ebf..d51a6579c85f7417708f918cf9807447b1508e3c 100644 (file)
@@ -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
index f2d7979deb9438ab388e2cefff613b1f8d6d3c56..5ed60364ce5eb1f458e1f5155d76abd7341d24ea 100644 (file)
@@ -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);
 
index 5814d056ff9fdfad6de5a748806cf307b1e5d388..1d332b8bbbf076b819e2052c84874fb0728dae02 100644 (file)
@@ -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)
index aabb25ef4c1040dde015d6ac37b8213d9bc958ea..db38b62b46fd15d849ed405f0b60cb7c72eaee40 100644 (file)
@@ -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,
index dd5e2944658cce2428cef34a6f920d63a4bd3628..494eb5d95de0e5e8d69705f7a6f4fe2efcb232ad 100644 (file)
@@ -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);
 
index 48e3b44e219dffec6f435f0f25f1b74409fa29a9..c3a61e70f9f72eced2530d425717972881b947c8 100644 (file)
@@ -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;
index 3e425709fded6e384add10aeff7f19455259ff46..80ed1262c29e8e3ec1443e06383c4ee9b7d14173 100644 (file)
@@ -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,