diff-ni: allow running from a subdirectory.
[gitweb.git] / diff-lib.c
index 75ff0dd93d79ea77877151c50ae30580f1f00342..88e59b5794236e8ca3162c8dd823ea1a64b4683b 100644 (file)
@@ -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;