Merge pull request #2058 from libgit2/rb/gitdir-windows-paths

Convert gitdir paths to posix on Windows
This commit is contained in:
Edward Thomson 2014-01-17 14:00:48 -08:00
commit fed98153ca

View File

@ -289,16 +289,20 @@ static int read_gitfile(git_buf *path_out, const char *file_path)
return -1; return -1;
git_buf_rtrim(&file); git_buf_rtrim(&file);
/* apparently on Windows, some people use backslashes in paths */
git_path_mkposix(file.ptr);
if (git_buf_len(&file) <= prefix_len || if (git_buf_len(&file) <= prefix_len ||
memcmp(git_buf_cstr(&file), GIT_FILE_CONTENT_PREFIX, prefix_len) != 0) memcmp(git_buf_cstr(&file), GIT_FILE_CONTENT_PREFIX, prefix_len) != 0)
{ {
giterr_set(GITERR_REPOSITORY, "The `.git` file at '%s' is malformed", file_path); giterr_set(GITERR_REPOSITORY,
"The `.git` file at '%s' is malformed", file_path);
error = -1; error = -1;
} }
else if ((error = git_path_dirname_r(path_out, file_path)) >= 0) { else if ((error = git_path_dirname_r(path_out, file_path)) >= 0) {
const char *gitlink = git_buf_cstr(&file) + prefix_len; const char *gitlink = git_buf_cstr(&file) + prefix_len;
while (*gitlink && git__isspace(*gitlink)) gitlink++; while (*gitlink && git__isspace(*gitlink)) gitlink++;
error = git_path_prettify_dir( error = git_path_prettify_dir(
path_out, gitlink, git_buf_cstr(path_out)); path_out, gitlink, git_buf_cstr(path_out));
} }