summaryrefslogtreecommitdiff
path: root/diff-no-index.c
diff options
context:
space:
mode:
authorThomas Gummerer <t.gummerer@gmail.com>2013-12-11 10:58:42 +0100
committerJunio C Hamano <gitster@pobox.com>2013-12-12 12:23:02 -0800
commit470faf96544c1844ad775c695dfa370fe0ef3756 (patch)
tree10c0f69aefbb9320e5702e894064a611a7b93457 /diff-no-index.c
parentd2446dfd7f3b3f8948142cfb07a0270e2497d93f (diff)
downloadgit-470faf96544c1844ad775c695dfa370fe0ef3756.tar.gz
diff: move no-index detection to builtin/diff.c
Currently the --no-index option is parsed in diff_no_index(). Move the detection if a no-index diff should be executed to builtin/diff.c, where we can use it for executing diff_no_index() conditionally. This will also allow us to execute other operations conditionally, which will be done in the next patch. There are no functional changes. Helped-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff-no-index.c')
-rw-r--r--diff-no-index.c44
1 files changed, 1 insertions, 43 deletions
diff --git a/diff-no-index.c b/diff-no-index.c
index 00a8eefde9..33e5982a1c 100644
--- a/diff-no-index.c
+++ b/diff-no-index.c
@@ -183,54 +183,12 @@ static int queue_diff(struct diff_options *o,
void diff_no_index(struct rev_info *revs,
int argc, const char **argv,
- int nongit, const char *prefix)
+ const char *prefix)
{
int i, prefixlen;
- int no_index = 0;
unsigned deprecated_show_diff_q_option_used = 0;
const char *paths[2];
- /* Were we asked to do --no-index explicitly? */
- for (i = 1; i < argc; i++) {
- if (!strcmp(argv[i], "--")) {
- i++;
- break;
- }
- if (!strcmp(argv[i], "--no-index"))
- no_index = 1;
- if (argv[i][0] != '-')
- break;
- }
-
- if (!no_index && !nongit) {
- /*
- * Inside a git repository, without --no-index. Only
- * when a path outside the repository is given,
- * e.g. "git diff /var/tmp/[12]", or "git diff
- * Makefile /var/tmp/Makefile", allow it to be used as
- * a colourful "diff" replacement.
- */
- if ((argc != i + 2) ||
- (path_inside_repo(prefix, argv[i]) &&
- path_inside_repo(prefix, argv[i+1])))
- return;
- }
- if (argc != i + 2) {
- if (!no_index) {
- /*
- * There was no --no-index and there were not two
- * paths. It is possible that the user intended
- * to do an inside-repository operation.
- */
- fprintf(stderr, "Not a git repository\n");
- fprintf(stderr,
- "To compare two paths outside a working tree:\n");
- }
- /* Give the usage message for non-repository usage and exit. */
- usagef("git diff %s <path> <path>",
- no_index ? "--no-index" : "[--no-index]");
- }
-
diff_setup(&revs->diffopt);
for (i = 1; i < argc - 2; ) {
int j;