diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-11-06 13:11:21 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-11-06 13:11:21 +0900 |
commit | 22ddc4bf29160d04eaff78d1acb04ca153ec5dde (patch) | |
tree | df2853c7a517ec21a30d46b43460264eb5a265a4 /builtin/describe.c | |
parent | Merge branch 'ma/lockfile-fixes' (diff) | |
parent | merge-ours: do not use cmd_*() as a subroutine (diff) | |
download | tgif-22ddc4bf29160d04eaff78d1acb04ca153ec5dde.tar.xz |
Merge branch 'jc/no-cmd-as-subroutine'
Calling cmd_foo() as if it is a general purpose helper function is
a no-no. Correct two instances of such to set an example.
* jc/no-cmd-as-subroutine:
merge-ours: do not use cmd_*() as a subroutine
describe: do not use cmd_*() as a subroutine
Diffstat (limited to 'builtin/describe.c')
-rw-r--r-- | builtin/describe.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/builtin/describe.c b/builtin/describe.c index 29075dbd0f..979556d9fb 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -7,12 +7,12 @@ #include "builtin.h" #include "exec_cmd.h" #include "parse-options.h" +#include "revision.h" #include "diff.h" #include "hashmap.h" #include "argv-array.h" #include "run-command.h" -#define SEEN (1u << 0) #define MAX_TAGS (FLAG_BITS - 1) static const char * const describe_usage[] = { @@ -543,7 +543,9 @@ int cmd_describe(int argc, const char **argv, const char *prefix) } } else if (dirty) { static struct lock_file index_lock; - int fd; + struct rev_info revs; + struct argv_array args = ARGV_ARRAY_INIT; + int fd, result; read_cache_preload(NULL); refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, @@ -552,8 +554,13 @@ int cmd_describe(int argc, const char **argv, const char *prefix) if (0 <= fd) update_index_if_able(&the_index, &index_lock); - if (!cmd_diff_index(ARRAY_SIZE(diff_index_args) - 1, - diff_index_args, prefix)) + init_revisions(&revs, prefix); + argv_array_pushv(&args, diff_index_args); + if (setup_revisions(args.argc, args.argv, &revs, NULL) != 1) + BUG("malformed internal diff-index command line"); + result = run_diff_index(&revs, 0); + + if (!diff_result_code(&revs.diffopt, result)) suffix = NULL; else suffix = dirty; |