On Montag, 8. Februar 2010, Nguyễn Thái Ngọc Duy wrote: > @@ -25,7 +25,7 @@ const char *prefix_path(const char *prefix, int len, > const char *path) len = strlen(work_tree); > total = strlen(sanitized) + 1; > if (strncmp(sanitized, work_tree, len) || > - (sanitized[len] != '\0' && sanitized[len] != '/')) { > + (len > 1 && sanitized[len] != '\0' && sanitized[len] != '/')) { > error_out: > die("'%s' is outside repository", orig); > } > @@ -403,7 +403,7 @@ const char *setup_git_directory_gently(int *nongit_ok) > if (!work_tree_env) > inside_work_tree = 0; > if (offset != len) { > - cwd[offset] = '\0'; > + cwd[offset ? offset : 1] = '\0'; > set_git_dir(cwd); > } else > set_git_dir("."); > @@ -427,6 +427,8 @@ const char *setup_git_directory_gently(int *nongit_ok) > inside_git_dir = 0; > if (!work_tree_env) > inside_work_tree = 1; > + if (offset == 0) /* reached root, set worktree to '/' */ > + offset = 1; > git_work_tree_cfg = xstrndup(cwd, offset); > if (check_repository_format_gently(nongit_ok)) > return NULL; Does not work: etc@master:1028> ~/Src/git/git/git add resolv.conf fatal: pathspec 'tc/resolv.conf' did not match any files I wonder how this works on Windows where we do not want to strip the slash from C:/ either. -- Hannes -- 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