X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=diff-tree.c;h=fc87902a3d2e6a53a619d603993a73893d4a4ae8;hb=e70a165d3db26dbab62e3430553a21d5e97b74ec;hp=4e80526afa3f55f71d0309c47b5eb1f04d6be402;hpb=dda2d79af2d2858b37bab7f6e088d0730c0959d1;p=git.git diff --git a/diff-tree.c b/diff-tree.c index 4e80526a..fc87902a 100644 --- a/diff-tree.c +++ b/diff-tree.c @@ -9,7 +9,8 @@ static int ignore_merges = 1; static int recursive = 0; static int show_tree_entry_in_recursive = 0; static int read_stdin = 0; -static int diff_output_format = DIFF_FORMAT_HUMAN; +static int diff_output_format = DIFF_FORMAT_RAW; +static int diff_line_termination = '\n'; static int detect_rename = 0; static int find_copies_harder = 0; static int diff_setup_opt = 0; @@ -276,14 +277,14 @@ static int call_diff_flush(void) orderfile, diff_filter); if (diff_queue_is_empty()) { - diff_flush(DIFF_FORMAT_NO_OUTPUT); + diff_flush(DIFF_FORMAT_NO_OUTPUT, diff_line_termination); return 0; } if (header) { - printf("%s%c", header, diff_output_format == DIFF_FORMAT_MACHINE ? 0 : '\n'); + printf("%s%c", header, diff_line_termination); header = NULL; } - diff_flush(diff_output_format); + diff_flush(diff_output_format, diff_line_termination); return 1; } @@ -394,16 +395,25 @@ static int diff_tree_stdin(char *line) return diff_tree_commit(commit, line); } -static char *diff_tree_usage = +static int count_paths(const char **paths) +{ + int i = 0; + while (*paths++) + i++; + return i; +} + +static const char diff_tree_usage[] = "git-diff-tree [--stdin] [-m] [-s] [-v] [--pretty] [-t] " "[] " COMMON_DIFF_OPTIONS_HELP; -int main(int argc, const char **argv) +int main(int argc, char **argv) { int nr_sha1; char line[1000]; unsigned char sha1[2][20]; + const char *prefix = setup_git_directory(); nr_sha1 = 0; for (;;) { @@ -486,12 +496,8 @@ int main(int argc, const char **argv) diff_output_format = DIFF_FORMAT_NAME; continue; } - if (!strcmp(arg, "--name-only-z")) { - diff_output_format = DIFF_FORMAT_NAME_Z; - continue; - } if (!strcmp(arg, "-z")) { - diff_output_format = DIFF_FORMAT_MACHINE; + diff_line_termination = 0; continue; } if (!strcmp(arg, "-m")) { @@ -526,11 +532,11 @@ int main(int argc, const char **argv) if (find_copies_harder && detect_rename != DIFF_DETECT_COPY) usage(diff_tree_usage); - if (argc > 0) { + paths = get_pathspec(prefix, argv); + if (paths) { int i; - paths = argv; - nr_paths = argc; + nr_paths = count_paths(paths); pathlens = xmalloc(nr_paths * sizeof(int)); for (i=0; i