summaryrefslogtreecommitdiff
path: root/builtin-diff-files.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin-diff-files.c')
-rw-r--r--builtin-diff-files.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/builtin-diff-files.c b/builtin-diff-files.c
new file mode 100644
index 0000000..046b7e3
--- /dev/null
+++ b/builtin-diff-files.c
@@ -0,0 +1,37 @@
+/*
+ * GIT - The information manager from hell
+ *
+ * Copyright (C) Linus Torvalds, 2005
+ */
+#include "cache.h"
+#include "diff.h"
+#include "commit.h"
+#include "revision.h"
+#include "builtin.h"
+
+static const char diff_files_usage[] =
+"git-diff-files [-q] [-0/-1/2/3 |-c|--cc|--no-index] [<common diff options>] [<path>...]"
+COMMON_DIFF_OPTIONS_HELP;
+
+int cmd_diff_files(int argc, const char **argv, const char *prefix)
+{
+ struct rev_info rev;
+ int nongit = 0;
+ int result;
+
+ prefix = setup_git_directory_gently(&nongit);
+ init_revisions(&rev, prefix);
+ git_config(git_default_config); /* no "diff" UI options */
+ rev.abbrev = 0;
+
+ if (!setup_diff_no_index(&rev, argc, argv, nongit, prefix))
+ argc = 0;
+ else
+ argc = setup_revisions(argc, argv, &rev, NULL);
+ if (!rev.diffopt.output_format)
+ rev.diffopt.output_format = DIFF_FORMAT_RAW;
+ result = run_diff_files_cmd(&rev, argc, argv);
+ if (DIFF_OPT_TST(&rev.diffopt, EXIT_WITH_STATUS))
+ return DIFF_OPT_TST(&rev.diffopt, HAS_CHANGES) != 0;
+ return result;
+}