static int git_blame_config(const char *var, const char *value, void *cb) { if (!strcmp(var, "blame.showroot")) { show_root = git_config_bool(var, value); return 0; } if (!strcmp(var, "blame.blankboundary")) { blank_boundary = git_config_bool(var, value); return 0; } if (!strcmp(var, "blame.showemail")) { int *output_option = cb; if (git_config_bool(var, value)) *output_option |= OUTPUT_SHOW_EMAIL; else *output_option &= ~OUTPUT_SHOW_EMAIL; return 0; } if (!strcmp(var, "blame.date")) { if (!value) return config_error_nonbool(var); parse_date_format(value, &blame_date_mode); return 0; } if (git_diff_heuristic_config(var, value, cb) < 0) return -1; if (userdiff_config(var, value) < 0) return -1; return git_default_config(var, value, cb); }
/* * Read the configuration file once and store it in * the grep_defaults template. */ int grep_config(const char *var, const char *value, void *cb) { struct grep_opt *opt = &grep_defaults; char *color = NULL; if (userdiff_config(var, value) < 0) return -1; if (!strcmp(var, "grep.extendedregexp")) { if (git_config_bool(var, value)) opt->extended_regexp_option = 1; else opt->extended_regexp_option = 0; return 0; } if (!strcmp(var, "grep.patterntype")) { opt->pattern_type_option = parse_pattern_type_arg(var, value); return 0; } if (!strcmp(var, "grep.linenumber")) { opt->linenum = git_config_bool(var, value); return 0; } if (!strcmp(var, "grep.fullname")) { opt->relative = !git_config_bool(var, value); return 0; } if (!strcmp(var, "color.grep")) opt->color = git_config_colorbool(var, value); else if (!strcmp(var, "color.grep.context")) color = opt->color_context; else if (!strcmp(var, "color.grep.filename")) color = opt->color_filename; else if (!strcmp(var, "color.grep.function")) color = opt->color_function; else if (!strcmp(var, "color.grep.linenumber")) color = opt->color_lineno; else if (!strcmp(var, "color.grep.match")) color = opt->color_match; else if (!strcmp(var, "color.grep.selected")) color = opt->color_selected; else if (!strcmp(var, "color.grep.separator")) color = opt->color_sep; if (color) { if (!value) return config_error_nonbool(var); return color_parse(value, color); } return 0; }
static int grep_config(const char *var, const char *value, void *cb) { struct grep_opt *opt = cb; char *color = NULL; switch (userdiff_config(var, value)) { case 0: break; case -1: return -1; default: return 0; } if (!strcmp(var, "grep.extendedregexp")) { if (git_config_bool(var, value)) opt->regflags |= REG_EXTENDED; else opt->regflags &= ~REG_EXTENDED; return 0; } if (!strcmp(var, "grep.linenumber")) { opt->linenum = git_config_bool(var, value); return 0; } if (!strcmp(var, "color.grep")) opt->color = git_config_colorbool(var, value, -1); else if (!strcmp(var, "color.grep.context")) color = opt->color_context; else if (!strcmp(var, "color.grep.filename")) color = opt->color_filename; else if (!strcmp(var, "color.grep.function")) color = opt->color_function; else if (!strcmp(var, "color.grep.linenumber")) color = opt->color_lineno; else if (!strcmp(var, "color.grep.match")) color = opt->color_match; else if (!strcmp(var, "color.grep.selected")) color = opt->color_selected; else if (!strcmp(var, "color.grep.separator")) color = opt->color_sep; else return git_color_default_config(var, value, cb); if (color) { if (!value) return config_error_nonbool(var); color_parse(value, var, color); } return 0; }
static int grep_config(const char *var, const char *value, void *cb) { struct grep_opt *opt = cb; switch (userdiff_config(var, value)) { case 0: break; case -1: return -1; default: return 0; } if (!strcmp(var, "color.grep")) { opt->color = git_config_colorbool(var, value, -1); return 0; } if (!strcmp(var, "color.grep.match")) { if (!value) return config_error_nonbool(var); color_parse(value, var, opt->color_match); return 0; } return git_color_default_config(var, value, cb); }