summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Casey <drafnel@gmail.com>2011-05-26 13:43:21 -0700
committerJunio C Hamano <gitster@pobox.com>2011-05-29 13:00:10 -0700
commit000f97bd11e94fa8ede7fcdb43f5633997fed672 (patch)
treee38c37f3bb280af092b5c34072cb51f39dbc7061
parent95b9f9f927a7d9ea2bc2849b6ae624335e98362f (diff)
downloadgit-000f97bd11e94fa8ede7fcdb43f5633997fed672.tar.gz
builtin/commit.c: set status_format _after_ option parsing
'git status' should use --porcelain output format when -z is given. It was not doing so since the _effect_ of using -z, namely that null_termination would be set, was being checked _before_ option parsing was performed. So, move the check so that it is performed after option parsing. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-commit.c7
-rwxr-xr-xt/t7508-status.sh2
2 files changed, 5 insertions, 4 deletions
diff --git a/builtin-commit.c b/builtin-commit.c
index f2fd0a4580..9e7208f729 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -1039,14 +1039,15 @@ int cmd_status(int argc, const char **argv, const char *prefix)
OPT_END(),
};
- if (null_termination && status_format == STATUS_FORMAT_LONG)
- status_format = STATUS_FORMAT_PORCELAIN;
-
wt_status_prepare(&s);
git_config(git_status_config, &s);
argc = parse_options(argc, argv, prefix,
builtin_status_options,
builtin_status_usage, 0);
+
+ if (null_termination && status_format == STATUS_FORMAT_LONG)
+ status_format = STATUS_FORMAT_PORCELAIN;
+
handle_untracked_files_arg(&s);
if (*argv)
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index 9bc9817f28..d4844abf13 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -364,7 +364,7 @@ test_expect_success 'status submodule summary (clean submodule)' '
test_cmp expect output
'
-test_expect_failure 'status -z implies porcelain' '
+test_expect_success 'status -z implies porcelain' '
git status --porcelain |
perl -pe "s/\012/\000/g" >expect &&
git status -z >output &&