Browse Source

git-check-attr: Fix command-line handling to match docs

According to the git-check-attr synopsis, if the '--stdin' option is
used then no pathnames are expected on the command line.  Change the
behavior to match this description; namely, if '--stdin' is used but
not '--', then treat all command-line arguments as attribute names.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Michael Haggerty 14 years ago committed by Junio C Hamano
parent
commit
ca64d061e0
  1. 7
      Documentation/git-check-attr.txt
  2. 15
      builtin/check-attr.c
  3. 1
      t/t0003-attributes.sh

7
Documentation/git-check-attr.txt

@ -33,8 +33,11 @@ OPTIONS @@ -33,8 +33,11 @@ OPTIONS

\--::
Interpret all preceding arguments as attributes and all following
arguments as path names. If not supplied, only the first argument will
be treated as an attribute.
arguments as path names.

If none of `--stdin`, `--all`, or `--` is used, the first argument
will be treated as an attribute and the rest of the arguments as
pathnames.

OUTPUT
------

15
builtin/check-attr.c

@ -111,15 +111,18 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix) @@ -111,15 +111,18 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
} else if (doubledash == 0) {
error_with_usage("No attribute specified");
} else if (doubledash < 0) {
/*
* There is no double dash; treat the first
* argument as an attribute.
*/
if (!argc)
error_with_usage("No attribute specified");

cnt = 1;
filei = 1;
if (stdin_paths) {
/* Treat all arguments as attribute names. */
cnt = argc;
filei = argc;
} else {
/* Treat exactly one argument as an attribute name. */
cnt = 1;
filei = 1;
}
} else {
cnt = doubledash;
filei = doubledash + 1;

1
t/t0003-attributes.sh

@ -70,7 +70,6 @@ test_expect_success 'command line checks' ' @@ -70,7 +70,6 @@ test_expect_success 'command line checks' '
echo "f" | test_must_fail git check-attr --stdin &&
echo "f" | test_must_fail git check-attr --stdin -- f &&
echo "f" | test_must_fail git check-attr --stdin test -- f &&
echo "f" | test_must_fail git check-attr --stdin test f &&
test_must_fail git check-attr "" -- f

'

Loading…
Cancel
Save