Merge branch 'jk/save-getenv-result'
There were many places the code relied on the string returned from getenv() to be non-volatile, which is not true, that have been corrected. * jk/save-getenv-result: builtin_diff(): read $GIT_DIFF_OPTS closer to use merge-recursive: copy $GITHEAD strings init: make a copy of $GIT_DIR string config: make a copy of $GIT_CONFIG string commit: copy saved getenv() result get_super_prefix(): copy getenv() result
This commit is contained in:
5
diff.c
5
diff.c
@ -3544,7 +3544,7 @@ static void builtin_diff(const char *name_a,
|
||||
o->found_changes = 1;
|
||||
} else {
|
||||
/* Crazy xdl interfaces.. */
|
||||
const char *diffopts = getenv("GIT_DIFF_OPTS");
|
||||
const char *diffopts;
|
||||
const char *v;
|
||||
xpparam_t xpp;
|
||||
xdemitconf_t xecfg;
|
||||
@ -3587,12 +3587,15 @@ static void builtin_diff(const char *name_a,
|
||||
xecfg.flags |= XDL_EMIT_FUNCCONTEXT;
|
||||
if (pe)
|
||||
xdiff_set_find_func(&xecfg, pe->pattern, pe->cflags);
|
||||
|
||||
diffopts = getenv("GIT_DIFF_OPTS");
|
||||
if (!diffopts)
|
||||
;
|
||||
else if (skip_prefix(diffopts, "--unified=", &v))
|
||||
xecfg.ctxlen = strtoul(v, NULL, 10);
|
||||
else if (skip_prefix(diffopts, "-u", &v))
|
||||
xecfg.ctxlen = strtoul(v, NULL, 10);
|
||||
|
||||
if (o->word_diff)
|
||||
init_diff_words_data(&ecbdata, o, one, two);
|
||||
if (xdi_diff_outf(&mf1, &mf2, NULL, fn_out_consume,
|
||||
|
Reference in New Issue
Block a user