Skip to content

Commit 1530ff3

Browse files
newrengitster
authored andcommitted
sparse-checkout: pass use_stdin as a parameter instead of as a global
add_patterns_from_input() has relied on a global variable, set_opts.use_stdin, which has been used by both the `set` and `add` subcommands of sparse-checkout. Once we introduce an add_opts.use_stdin, the hardcoding of set_opts.use_stdin will be incorrect. Pass the value as function parameter instead to allow us to make subsequent changes. Reviewed-by: Derrick Stolee <[email protected]> Reviewed-by: Victoria Dye <[email protected]> Signed-off-by: Elijah Newren <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent abe6bb3 commit 1530ff3

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

builtin/sparse-checkout.c

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,8 @@ static struct sparse_checkout_set_opts {
525525
} set_opts;
526526

527527
static void add_patterns_from_input(struct pattern_list *pl,
528-
int argc, const char **argv)
528+
int argc, const char **argv,
529+
int use_stdin)
529530
{
530531
int i;
531532
if (core_sparse_checkout_cone) {
@@ -535,7 +536,7 @@ static void add_patterns_from_input(struct pattern_list *pl,
535536
hashmap_init(&pl->parent_hashmap, pl_hashmap_cmp, NULL, 0);
536537
pl->use_cone_patterns = 1;
537538

538-
if (set_opts.use_stdin) {
539+
if (use_stdin) {
539540
struct strbuf unquoted = STRBUF_INIT;
540541
while (!strbuf_getline(&line, stdin)) {
541542
if (line.buf[0] == '"') {
@@ -559,7 +560,7 @@ static void add_patterns_from_input(struct pattern_list *pl,
559560
}
560561
}
561562
} else {
562-
if (set_opts.use_stdin) {
563+
if (use_stdin) {
563564
struct strbuf line = STRBUF_INIT;
564565

565566
while (!strbuf_getline(&line, stdin)) {
@@ -580,15 +581,16 @@ enum modify_type {
580581
};
581582

582583
static void add_patterns_cone_mode(int argc, const char **argv,
583-
struct pattern_list *pl)
584+
struct pattern_list *pl,
585+
int use_stdin)
584586
{
585587
struct strbuf buffer = STRBUF_INIT;
586588
struct pattern_entry *pe;
587589
struct hashmap_iter iter;
588590
struct pattern_list existing;
589591
char *sparse_filename = get_sparse_checkout_filename();
590592

591-
add_patterns_from_input(pl, argc, argv);
593+
add_patterns_from_input(pl, argc, argv, use_stdin);
592594

593595
memset(&existing, 0, sizeof(existing));
594596
existing.use_cone_patterns = core_sparse_checkout_cone;
@@ -614,17 +616,19 @@ static void add_patterns_cone_mode(int argc, const char **argv,
614616
}
615617

616618
static void add_patterns_literal(int argc, const char **argv,
617-
struct pattern_list *pl)
619+
struct pattern_list *pl,
620+
int use_stdin)
618621
{
619622
char *sparse_filename = get_sparse_checkout_filename();
620623
if (add_patterns_from_file_to_list(sparse_filename, "", 0,
621624
pl, NULL, 0))
622625
die(_("unable to load existing sparse-checkout patterns"));
623626
free(sparse_filename);
624-
add_patterns_from_input(pl, argc, argv);
627+
add_patterns_from_input(pl, argc, argv, use_stdin);
625628
}
626629

627-
static int modify_pattern_list(int argc, const char **argv, enum modify_type m)
630+
static int modify_pattern_list(int argc, const char **argv, int use_stdin,
631+
enum modify_type m)
628632
{
629633
int result;
630634
int changed_config = 0;
@@ -633,13 +637,13 @@ static int modify_pattern_list(int argc, const char **argv, enum modify_type m)
633637
switch (m) {
634638
case ADD:
635639
if (core_sparse_checkout_cone)
636-
add_patterns_cone_mode(argc, argv, pl);
640+
add_patterns_cone_mode(argc, argv, pl, use_stdin);
637641
else
638-
add_patterns_literal(argc, argv, pl);
642+
add_patterns_literal(argc, argv, pl, use_stdin);
639643
break;
640644

641645
case REPLACE:
642-
add_patterns_from_input(pl, argc, argv);
646+
add_patterns_from_input(pl, argc, argv, use_stdin);
643647
break;
644648
}
645649

@@ -675,7 +679,7 @@ static int sparse_checkout_set(int argc, const char **argv, const char *prefix,
675679
builtin_sparse_checkout_set_usage,
676680
PARSE_OPT_KEEP_UNKNOWN);
677681

678-
return modify_pattern_list(argc, argv, m);
682+
return modify_pattern_list(argc, argv, set_opts.use_stdin, m);
679683
}
680684

681685
static char const * const builtin_sparse_checkout_reapply_usage[] = {

0 commit comments

Comments
 (0)