Browse Source

Support config variable diff.external

We had the diff.external variable in the documentation of the config
file since its conception, but failed to respect it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Johannes Schindelin 17 years ago committed by Junio C Hamano
parent
commit
cbe021004f
  1. 7
      diff.c

7
diff.c

@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
static int diff_detect_rename_default;
static int diff_rename_limit_default = 100;
static int diff_use_color_default;
static const char *external_diff_cmd_cfg;
int diff_auto_refresh_index = 1;

static char diff_colors[][COLOR_MAXLEN] = {
@ -163,6 +164,10 @@ int git_diff_ui_config(const char *var, const char *value) @@ -163,6 +164,10 @@ int git_diff_ui_config(const char *var, const char *value)
diff_auto_refresh_index = git_config_bool(var, value);
return 0;
}
if (!strcmp(var, "diff.external")) {
external_diff_cmd_cfg = xstrdup(value);
return 0;
}
if (!prefixcmp(var, "diff.")) {
const char *ep = strrchr(var, '.');

@ -209,6 +214,8 @@ static const char *external_diff(void) @@ -209,6 +214,8 @@ static const char *external_diff(void)
if (done_preparing)
return external_diff_cmd;
external_diff_cmd = getenv("GIT_EXTERNAL_DIFF");
if (!external_diff_cmd)
external_diff_cmd = external_diff_cmd_cfg;
done_preparing = 1;
return external_diff_cmd;
}

Loading…
Cancel
Save