9
#include "refs.h"
10
#include "string-list.h"
11
#include "sha1-array.h"
12
+#include "argv-array.h"
13
14
static struct string_list config_name_for_path;
15
static struct string_list config_fetch_recurse_submodules_for_name;
389
sha1_array_append(&ref_tips_after_fetch, new_sha1);
390
}
391
391
-struct argv_array {
392
- const char **argv;
393
- unsigned int argc;
394
- unsigned int alloc;
395
-};
396
-
397
-static void init_argv(struct argv_array *array)
398
-{
399
- array->argv = NULL;
400
- array->argc = 0;
401
- array->alloc = 0;
402
-}
403
-
404
-static void push_argv(struct argv_array *array, const char *value)
405
-{
406
- ALLOC_GROW(array->argv, array->argc + 2, array->alloc);
407
- array->argv[array->argc++] = xstrdup(value);
408
- array->argv[array->argc] = NULL;
409
-}
410
-
411
-static void clear_argv(struct argv_array *array)
412
-{
413
- int i;
414
- for (i = 0; i < array->argc; i++)
415
- free((char **)array->argv[i]);
416
- free(array->argv);
417
- init_argv(array);
418
-}
419
-
392
static void add_sha1_to_argv(const unsigned char sha1[20], void *data)
393
{
422
- push_argv(data, sha1_to_hex(sha1));
394
+ argv_array_push(data, sha1_to_hex(sha1));
395
}
396
397
static void calculate_changed_submodule_paths(void)
398
{
399
struct rev_info rev;
400
struct commit *commit;
429
- struct argv_array argv;
401
+ struct argv_array argv = ARGV_ARRAY_INIT;
402
403
init_revisions(&rev, NULL);
432
- init_argv(&argv);
433
- push_argv(&argv, "--"); /* argv[0] program name */
404
+ argv_array_push(&argv, "--"); /* argv[0] program name */
405
sha1_array_for_each_unique(&ref_tips_after_fetch,
406
add_sha1_to_argv, &argv);
436
- push_argv(&argv, "--not");
407
+ argv_array_push(&argv, "--not");
408
sha1_array_for_each_unique(&ref_tips_before_fetch,
409
add_sha1_to_argv, &argv);
410
setup_revisions(argv.argc, argv.argv, &rev, NULL);
431
}
432
}
433
463
- clear_argv(&argv);
434
+ argv_array_clear(&argv);
435
sha1_array_clear(&ref_tips_before_fetch);
436
sha1_array_clear(&ref_tips_after_fetch);
437
initialized_fetch_ref_tips = 0;