From: Junio C Hamano <junkio@cox.net>
Date: Sun, 4 Mar 2007 07:45:14 +0000 (-0800)
Subject: diff-ni: allow running from a subdirectory.
X-Git-Tag: v1.5.1-rc1~100
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ae792aa52bb0962079f500bd491363f2b48457b6;p=git

diff-ni: allow running from a subdirectory.

When run from a subdirectory of a repository, the command forgot
to adjust paths given to it with prefix.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---

diff --git a/diff-lib.c b/diff-lib.c
index 75ff0dd93d..88e59b5794 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -248,7 +248,19 @@ int setup_diff_no_index(struct rev_info *revs,
 				die("invalid diff option/value: %s", argv[i]);
 			i += j;
 		}
-	revs->diffopt.paths = argv + argc - 2;
+
+	if (prefix) {
+		int len = strlen(prefix);
+
+		revs->diffopt.paths = xcalloc(2, sizeof(char*));
+		for (i = 0; i < 2; i++) {
+			const char *p;
+			p = prefix_filename(prefix, len, argv[argc - 2 + i]);
+			revs->diffopt.paths[i] = xstrdup(p);
+		}
+	}
+	else
+		revs->diffopt.paths = argv + argc - 2;
 	revs->diffopt.nr_paths = 2;
 	revs->max_count = -2;
 	return 0;