add -i: add extra options at the right place in "diff" command line
authorJunio C Hamano <gitster@pobox.com>
Sun, 23 Jun 2013 19:19:05 +0000 (12:19 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sun, 23 Jun 2013 20:39:39 +0000 (13:39 -0700)
Appending "--diff-algorithm=histogram" at the end of canned command
line for various modes of "diff" is correct for most of them but not
for "stash" that has a non-option already wired in, like so:

'stash' => {
DIFF => 'diff-index -p HEAD',

Appending an extra option after non-option may happen to work due to
overly lax command line parser, but that is not something we should
rely on. Instead, splice in the extra argument immediately after the
command name (i.e. 'diff-index', 'diff-files', etc.).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-add--interactive.perl
index 531095916f959f47cc3fca38bafe9cbef604c0d9..75a991f7ec8a2e4926cb925ad9ff23be2f6aedeb 100755 (executable)
@@ -734,7 +734,7 @@ sub parse_diff {
        my ($path) = @_;
        my @diff_cmd = split(" ", $patch_mode_flavour{DIFF});
        if (defined $diff_algorithm) {
-               push @diff_cmd, "--diff-algorithm=${diff_algorithm}";
+               splice @diff_cmd, 1, 0, "--diff-algorithm=${diff_algorithm}";
        }
        if (defined $patch_mode_revision) {
                push @diff_cmd, $patch_mode_revision;