Code

diff: parse separate options like -S foo
authorMatthieu Moy <Matthieu.Moy@imag.fr>
Thu, 5 Aug 2010 08:22:52 +0000 (10:22 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Aug 2010 16:14:22 +0000 (09:14 -0700)
commitdea007fb4c8170ea007b577698c7b44df6c318b9
tree387a6302089953a7c07c9396cdbd91a36b031c7a
parent64fdc08dac6694d1e754580e7acb82dfa4988bb9
diff: parse separate options like -S foo

Change the option parsing logic in revision.c to accept separate forms
like `-S foo' in addition to `-Sfoo'. The rest of git already accepted
this form, but revision.c still used its own option parsing.

Short options affected are -S<string>, -l<num> and -O<orderfile>, for
which an empty string wouldn't make sense, hence -<option> <arg> isn't
ambiguous.

This patch does not handle --stat-name-width and --stat-width, which are
special-cases where diff_long_opt do not apply. They are handled in a
separate patch to ease review.

Original patch by Matthieu Moy, plus refactoring by Jonathan Nieder.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
diff.h
t/t4013-diff-various.sh
t/t4013/diff.log_-S_F_master [new file with mode: 0644]
t/t4202-log.sh