diff: tweak a _copy_ of diff_options with word-diff
authorThomas Rast <trast@student.ethz.ch>
Wed, 14 Mar 2012 18:24:09 +0000 (19:24 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Mar 2012 21:41:20 +0000 (14:41 -0700)
commit6440d3417c1d51a20014d4b6fc6c59bacfa87dab
tree9f8622f346cea445bf7a2840980c3a82f761dd06
parent77d1a520fb5b8ad8cc86228023f16a44b75c05d1
diff: tweak a _copy_ of diff_options with word-diff

When using word diff, the code sets the word_regex from various
defaults if it was not set already.  The problem is that it does this
on the original diff_options, which will also be used in subsequent
diffs.

This means that when the word_regex is not given on the command line,
only the first diff for which a setting for word_regex (either from
attributes or diff.wordRegex) ever takes effect.  This value then
propagates to the rest of the diff runs and in particular prevents
further attribute lookups.

Fix the problem of changing diff state once and for all, by working
with a _copy_ of the diff_options.

Noticed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
t/t4034-diff-words.sh