From: Junio C Hamano Date: Tue, 28 Apr 2015 07:08:02 GMT Subject: Re: [PATCH] blame: add blame.showemail config option Message-ID: In-Reply-To: Eric Sunshine writes: > Right. Rather than having a separate global 'show_email' variable and > consulting that variable in parallel with OUTPUT_SHOW_EMAIL throughout > the code, instead set the OUTPUT_SHOW_EMAIL bit in git_blame_config(). > To do this, take advantage of the "callback data" argument of > git_config(), which will arrive in git_blame_config() as its 'void > *cb' argument. So, for instance, something like this: > > static int git_blame_config(var, value, void *cb) > { > ... > if (!strcmp(var, "blame.showemail")) { > if (git_config_bool(var, value)) { > int *output_options = cb; > *output_options |= OUTPUT_SHOW_EMAIL; > } Don't forget to clear the bit when the bool is set to false, too. > return 0; > } > ... > } > > int cmd_blame(...) > { > ... > git_config(git_blame_config, &output_options); > ... > parse_options(...); > ... > }