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)); return; } for (i = 0; i < ARRAY_SIZE(all_strategy); i++) if (all_strategy[i].attr & attr) append_strategy(&all_strategy[i]); }
static int option_parse_strategy(const struct option *opt, const char *name, int unset) { if (unset) return 0; append_strategy(get_strategy(name)); return 0; }
static int option_parse_strategy(const struct option *opt, const char *name, int unset) { int i; struct strategy *s; if (unset) return 0; s = get_strategy(name); if (s) append_strategy(s); else { struct strbuf err; strbuf_init(&err, 0); for (i = 0; i < ARRAY_SIZE(all_strategy); i++) strbuf_addf(&err, " %s", all_strategy[i].name); fprintf(stderr, "Could not find merge strategy '%s'.\n", name); fprintf(stderr, "Available strategies are:%s.\n", err.buf); exit(1); } return 0; }