Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> writes: > Was it this simple? > > diff --git a/setup.c b/setup.c > index 43cd3f9..9b3a9ff 100644 > --- a/setup.c > +++ b/setup.c > @@ -6,6 +6,22 @@ static int inside_work_tree = -1; > > const char *prefix_path(const char *prefix, int len, const char *path) > { > + if (is_absolute_path(path)) { > + const char *work_tree = get_git_work_tree(); > + int n = strlen(work_tree); > + if (!strncmp(path, work_tree, n) && (path[n] == '/' || !path[n])) { > + if (path[n]) > + path += 1; > + path += n; > + if (prefix && !strncmp(path, prefix, len - 1)) { > + if (path[len - 1] == '/') > + path += len; > + else > + if (!path[len - 1]) > + path += len - 1; > + } > + } > + } > const char *orig = path; Decl after statement. I do not think there is fundamental reason to object to this change, as long as the prefixing is done to the path that is trying to name a path in the working tree. Also some codepath that does not require any work tree may want to call prefix_path(). I do not know what would happen in such a case. Although I didn't look at all the callers, I think the caller from config.c is not talking about a path in the work tree, and not all users of config.c need to have work-tree. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html